protected ExchangeService initializeIfNecessary(ProcessContext context) throws ProcessException { ExchangeVersion ver = ExchangeVersion.valueOf(context.getProperty(EXCHANGE_VERSION).getValue()); ExchangeService service = new ExchangeService(ver); final String timeoutInMillis = String.valueOf(context.getProperty(CONNECTION_TIMEOUT).evaluateAttributeExpressions().asTimePeriod(TimeUnit.MILLISECONDS)); service.setTimeout(Integer.parseInt(timeoutInMillis)); String userEmail = context.getProperty(USER).evaluateAttributeExpressions().getValue(); String password = context.getProperty(PASSWORD).evaluateAttributeExpressions().getValue(); ExchangeCredentials credentials = new WebCredentials(userEmail, password); service.setCredentials(credentials); Boolean useAutodiscover = context.getProperty(USE_AUTODISCOVER).asBoolean(); if(useAutodiscover){ try { service.autodiscoverUrl(userEmail, new RedirectionUrlCallback()); } catch (Exception e) { throw new ProcessException("Failure setting Autodiscover URL from email address.", e); } } else { String ewsURL = context.getProperty(EWS_URL).getValue(); try { service.setUrl(new URI(ewsURL)); } catch (URISyntaxException e) { throw new ProcessException("Failure setting EWS URL.", e); } } return service; }
protected Folder getFolder(ExchangeService service) { Folder folder; if(folderName.equals("INBOX")){ try { folder = Folder.bind(service, WellKnownFolderName.Inbox); } catch (Exception e) { throw new ProcessException("Failed to bind Inbox Folder on EWS Server", e); } } else { FolderView view = new FolderView(10); view.setTraversal(FolderTraversal.Deep); SearchFilter searchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, folderName); try { FindFoldersResults foldersResults = service.findFolders(WellKnownFolderName.Root,searchFilter, view); ArrayList<Folder> folderIds = foldersResults.getFolders(); if(folderIds.size() > 1){ throw new ProcessException("More than 1 folder found with the name " + folderName); } folder = Folder.bind(service, folderIds.get(0).getId()); } catch (Exception e) { throw new ProcessException("Search for Inbox Subfolder failed.", e); } } return folder; }
/** * Obtains a grouped list of item by searching the contents of a specific * folder. Calling this method results in a call to EWS. * * @param <TItem> the generic type * @param cls the cls * @param parentFolderId the parent folder id * @param searchFilter the search filter * @param view the view * @param groupBy the group by * @return A list of item containing the contents of the specified folder. * @throws Exception the exception */ protected <TItem extends Item> ServiceResponseCollection<FindItemResponse<TItem>> findItems( Class<TItem> cls, FolderId parentFolderId, SearchFilter searchFilter, ViewBase view, Grouping groupBy) throws Exception { List<FolderId> folderIdArray = new ArrayList<FolderId>(); folderIdArray.add(parentFolderId); return this.findItems(folderIdArray, searchFilter, null, /* queryString */ view, groupBy, ServiceErrorHandling.ThrowOnError); }
FindItemsResults<Item> findResults = service.findItems(folder.getId(), sf, view); service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties); service.close(); } catch (Exception e) { throw new ProcessException("Failed retrieving new messages from EWS.", e);
URI exchangeServiceUrl = null; if (this.getRequestedServerVersion().ordinal() > ExchangeVersion.Exchange2007_SP1 .ordinal()) { try { exchangeServiceUrl = this.getAutodiscoverUrl(emailAddress, this .getRequestedServerVersion(), validateRedirectionUrlCallback); this.setUrl(this .adjustServiceUriFromCredentials(exchangeServiceUrl)); return; } catch (AutodiscoverLocalException ex) { this.traceMessage(TraceFlags.AutodiscoverResponse, String .format("Autodiscover service call " + "failed with error '%s'. " this.traceMessage(TraceFlags.AutodiscoverResponse, String .format("Autodiscover service call " + "failed with error '%s'. " exchangeServiceUrl = this.getAutodiscoverUrl(emailAddress, ExchangeVersion.Exchange2007_SP1, validateRedirectionUrlCallback); this.setUrl(this.adjustServiceUriFromCredentials(exchangeServiceUrl));
ExchangeService service = new ExchangeService(); ExchangeCredentials credentials = new WebCredentials( "username", "pass"); service.setCredentials( credentials ); service.setUrl( new URI("http://your/wsdlUrl.asmx?wsdl") );
ExchangeService service = new ExchangeService(); ExchangeCredentials credentials = new WebCredentials("Administrator@yourdomain.com", "Password", "yourdomain.com"); service.setCredentials(credentials); service.setUrl(new URI("http://yourserver/EWS/Exchange.asmx")); service.setPreAuthenticate(true);
/** * Constructor for instantiating Exchange data source. * * @param settings the settings to use when reading from Microsoft Exchange * @throws Exception if an error occurs */ public ExchangeSourceImpl(final ExchangeSettings settings) throws Exception { LOG.info("Connecting to Exchange (" + settings.getExchangeHost() + ") as " + settings.getExchangeUsername() + "..."); final ExchangeCredentials credentials = new WebCredentials(settings.getExchangeUsername(), settings.getExchangePassword(), settings.getExchangeDomain()); service = new ExchangeService(ExchangeVersion.valueOf(settings.getExchangeVersion())); service.setCredentials(credentials); if (settings.needsExchangeProxy()) { final WebProxy webProxy = new WebProxy(settings.getExchangeProxyHost(), settings.getExchangeProxyPort()); service.setWebProxy(webProxy); } service.setUrl(new URI("https://" + settings.getExchangeHost() + "/EWS/Exchange.asmx")); service.setTraceEnabled(ENABLE_DEBUGGING); LOG.info("Connected to Exchange."); }
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); ExchangeCredentials credentials = new WebCredentials(userName, password); service.setCredentials(credentials); service.autodiscoverUrl(autoDiscoverUrl); service.setTraceEnabled(true); ItemView view = new ItemView(20); FindItemsResults<Item> findResults; do { findResults = service.findItems(WellKnownFolderName.RecoverableItemsDeletions, view); for (Item item : findResults.getItems()) { System.out.println(item); } view.setOffset(view.getOffset() + 20); } while (findResults.isMoreAvailable());
ExchangeService mailbox = new ExchangeService(ExchangeVersion.Exchange2007_SP1); mailbox.setUrl(new URL("https://remote.domain.com/EWS/exchange.asmx").toURI()); ExchangeCredentials credentials = new WebCredentials("user.name", "password", "domain"); mailbox.setCredentials(credentials); ExtendedPropertyDefinition titlePropDef = new ExtendedPropertyDefinition(0x3A45, MapiPropertyType.String); Contact c = new Contact(mailbox); c.setGivenName("GivenName"); c.setSurname("Surname"); c.getEmailAddresses().setEmailAddress(EmailAddressKey.EmailAddress1, new EmailAddress("asdf@asdf.com")); c.setExtendedProperty(titlePropDef, "TitleXYZ"); c.save(WellKnownFolderName.Contacts); Contact result = (Contact) mailbox.findItems(WellKnownFolderName.Contacts, new ItemView(1)).iterator().next(); PropertySet propertySet = new PropertySet(BasePropertySet.FirstClassProperties); propertySet.add(titlePropDef); result = Contact.bind(mailbox, result.getId(), propertySet); System.out.println("count: " + result.getExtendedProperties().getCount()); for(ExtendedProperty p : result.getExtendedProperties()) { System.out.println(p.toString()); }
private static ExchangeService getService() throws Exception { ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010); ExchangeCredentials credentials = new WebCredentials("USERNAME","PASS"); service.setCredentials(credentials); service.setUrl(new URI("DOMAIN")); return service; }
exchangeService.setCredentials(new WebCredentials(username, password)); exchangeService.setTraceEnabled(true); exchangeService.setEnableScpLookup(true); exchangeService.autodiscoverUrl(email, new RedirectionUrlCallback()); } catch (Exception usernameException) { // NOSONAR - EWS Java API throws Exception, that's life LOG.info(String.format( username, usernameException.getMessage())); try { exchangeService.setCredentials(new WebCredentials(username, password, domain)); exchangeService.setTraceEnabled(true); exchangeService.setEnableScpLookup(true); exchangeService.autodiscoverUrl(email, new RedirectionUrlCallback()); } catch (Exception usernameDomainException) { // NOSONAR - EWS Java API throws Exception, that's life LOG.info(String.format( exchangeService.setCredentials(new WebCredentials(email, password)); exchangeService.setTraceEnabled(true); exchangeService.setEnableScpLookup(true); exchangeService.autodiscoverUrl(email, new RedirectionUrlCallback()); } catch (Exception emailException) { // NOSONAR - EWS Java API throws Exception, that's life LOG.warn(String.format(
public class Main { /** * @param args */ public static void main(String[] args) throws Exception { ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); ExchangeCredentials credentials = new WebCredentials("myusername","mypassword", "mydomain"); exchangeService.setCredentials(credentials); exchangeService.setUrl(new URI("https://myhostname/EWS/Exchange.asmx")); exchangeService.setTraceEnabled(true); EmailMessage msg; msg = new EmailMessage(exchangeService); msg.setFrom(new EmailAddress("myuser@myserver.com")); msg.setSubject("Test Mail"); msg.getToRecipients().add("myuser@gmail.com"); msg.setBody(MessageBody.getMessageBodyFromText("Email sent by Miscrosoft Java EWS API.")); msg.getAttachments().addFileAttachment("c:\\temp\\myattachement.pdf"); msg.send(); }
ExchangeService exchange = new ExchangeService(); service.AutodiscoverUrl("myemail@mycompany.com"); service.Credentials = new NetworkCredential("myemail", "mypassword", "MYDOMAIN");
ExchangeService service = new ExchangeService(); //login to your exchange server with credentials etc & set your service url ..... //issue your search for a given user using EmailMesssageSchema.From FindItemsResults <Item> results = service.findItems(WellKnownFolderName.Inbox, new SearchFilter.IsEqualTo(EmailMessageSchema.From, "SomeUser"), new ItemView(100));
ExchangeService exchange = new ExchangeService(); exchange .AutodiscoverUrl("myemail@mycompany.com"); exchange .Credentials = new NetworkCredential("myemail", "mypassword", "MYDOMAIN");
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); ExchangeCredentials credentials = new WebCredentials("emailAddress", "password"); service.setCredentials(credentials);
/** * Initializes the Url property to the Exchange Web Services URL for the * specified e-mail address by calling the Autodiscover service. * * @param emailAddress the email address * @throws Exception the exception */ public void autodiscoverUrl(String emailAddress) throws Exception { this.autodiscoverUrl(emailAddress, this); }
final CalendarView calendarView = new CalendarView(startDate.toDate(), endDate.toDate(), MAX_RESULTS); calendarView.setPropertySet(createIdOnlyPropertySet()); final FindItemsResults<Appointment> appointments = service.findAppointments(WellKnownFolderName.Calendar, calendarView); final Iterable<Item> items = new ArrayList<Item>(appointments.getItems()); service.loadPropertiesForItems(items, createCalendarPropertySet()); for (final Appointment appointment : appointments.getItems()) { DateTime eventStartDate = convertToJodaDateTime(appointment.getStart());
/** * Obtains a list of appointments by searching the contents of a specific * folder. Calling this method results in a call to EWS. * * @param parentFolderName the parent folder name * @param calendarView the calendar view * @return A collection of appointments representing the contents of the * specified folder. * @throws Exception the exception */ public FindItemsResults<Appointment> findAppointments( WellKnownFolderName parentFolderName, CalendarView calendarView) throws Exception { return this.findAppointments(new FolderId(parentFolderName), calendarView); }