JavaMail Exchange Authentication

后端 未结 8 2053
长情又很酷
长情又很酷 2020-12-03 05:53

I\'m trying to use Exchange authentication from my app using JavaMail to do this. Could some one give me a guide to do this? After authentication I need to send mails that\'

8条回答
  •  离开以前
    2020-12-03 06:49

    It is a good question! I have solved this issue.

    First, you should import the jar ews-java-api-2.0.jar. if you use maven, you would add the following code into your pom.xml

    
      com.microsoft.ews-java-api
      ews-java-api
      2.0
    
    

    Secondly, you should new java class named MailUtil.java.Some Exchange Servers don't start SMTP service by default, so we use Microsoft Exchange WebServices(EWS) instead of SMTP service.

    MailUtil.java

    package com.spacex.util;
    
    
    import microsoft.exchange.webservices.data.core.ExchangeService;
    import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
    import microsoft.exchange.webservices.data.core.service.item.EmailMessage;
    import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
    import microsoft.exchange.webservices.data.credential.WebCredentials;
    import microsoft.exchange.webservices.data.property.complex.MessageBody;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import java.net.URI;
    
    /**
     * Exchange send email util
     *
     * @author vino.dang
     * @create 2017/01/08
     */
    public class MailUtil {
    
        private static Logger logger = LoggerFactory.getLogger(MailUtil.class);
    
    
    
        /**
         * send emial
         * @return
         */
        public static boolean sendEmail() {
    
            Boolean flag = false;
            try {
                ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); // your server version
                ExchangeCredentials credentials = new WebCredentials("vino", "abcd123", "spacex"); // change them to your email username, password, email domain
                service.setCredentials(credentials);
                service.setUrl(new URI("https://outlook.spacex.com/EWS/Exchange.asmx")); //outlook.spacex.com change it to your email server address
                EmailMessage msg = new EmailMessage(service);
                msg.setSubject("This is a test!!!"); //email subject
                msg.setBody(MessageBody.getMessageBodyFromText("This is a test!!! pls ignore it!")); //email body
                msg.getToRecipients().add("123@hotmail.com"); //email receiver
    //        msg.getCcRecipients().add("test2@test.com"); // email cc recipients
    //        msg.getAttachments().addFileAttachment("D:\\Downloads\\EWSJavaAPI_1.2\\EWSJavaAPI_1.2\\Getting started with EWS Java API.RTF"); // email attachment
                msg.send(); //send email
                flag = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
    
            return flag;
    
        }
    
    
        public static void main(String[] args) {
    
            sendEmail();
    
        }
    }
    

    if you want to get more detail, pls refer to https://github.com/OfficeDev/ews-java-api/wiki/Getting-Started-Guide

提交回复
热议问题