Java Exchange企业邮件服务器 发Email

  1. 下载EWS Java 相应的jar包
  2. 创建Java项目,并导入相应的jar包
  3. 以下是Email发送函数
  4. 函数中涉及一个MailsenderIfo类,此类为邮件的基本信息类
  5. 函数中涉及一个MailInfoGetFromProp类,此类为从磁盘中的Java配置文件中读取出邮件的基本信息。java配置文件的路径为java运行环境下的当前路径+properties.txt(配置文件名)。
  6. 配置文件properties.txt,保存邮件的基本信息,可供用户根据相应的需求更改发送邮件的信息。外部接口。
  7. java读取磁盘文件函数
  8. 主函数
  9. 只要工程和相应的包都引入了就能正常的发邮件
/*邮件发送函数*/
package BugFreeMailServer;

import java.io.File;
import microsoft.exchange.webservices.data.EmailMessage;
import microsoft.exchange.webservices.data.ExchangeCredentials;
import microsoft.exchange.webservices.data.ExchangeService;
import microsoft.exchange.webservices.data.ExchangeVersion;
import microsoft.exchange.webservices.data.MessageBody;
import microsoft.exchange.webservices.data.WebCredentials;

public class SendMail {

     public static int sendEmail_1( MailSenderIfo mailInfo) throws Exception {

            int sendReslt = 0;//发送结果标记位1为成功,0为失败
            // 实例化ExchageService
            ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
            // 指定用户名,密码,和域名
            ExchangeCredentials credentials = new WebCredentials(mailInfo.getUserName(),mailInfo.getUserPasswd(),mailInfo.getDomain());
            //进行认证
            service.setCredentials(credentials);
            //设置Exchange连接的服务器地址
            //service.setUrl(new URI("SGHXCH09.cn.int.tgr.net"));
            //设置Exchange连接服务器地址,根据邮箱地址自动识别服务器地址
            service.autodiscoverUrl(mailInfo.getMailServerHost());
            //创建Email对象 
            EmailMessage msg= new EmailMessage(service);
            //添加Email信息
            //主题
            msg.setSubject(mailInfo.getmSubject()); 
            //收件人
            msg.getToRecipients().add(mailInfo.getmTo());

            //加载抄送人,先判断是否有抄送人,然后根据抄送人信息中的;分号来判断抄送人的个数,并加载到邮件抄送人中 
            if (mailInfo.getmCC().equals("")) 
            {
                System.out.println("没有抄送者"); //没有抄送人

            }else{
                String[] temp = mailInfo.getmCC().split(";");  //分号隔离每个抄送人
                for (int i = 0; i < temp.length; i++)
                {
                    msg.getCcRecipients().add(temp[i]); //抄送人
                }

            }

            //从文件中读取出文件的信息,并作为邮件的内容显示在邮件内容中,
            if (mailInfo.getmTxtPath().equals("")){

                if(mailInfo.getmBody().equals("")){
                    System.out.println("没有y邮件内容");
                }else{
                    msg.setBody(MessageBody.getMessageBodyFromText(mailInfo.getmBody())); //内容
                }

            }else{

                File file = new File(mailInfo.getmTxtPath());

                msg.setBody(MessageBody.getMessageBodyFromText(TxtToString.txtToString(file,mailInfo.getmBody()))); //内容

            }

            //加载邮件的附件 , 先判断附件地址是否存在,存在就加载到邮件附件中
            if (mailInfo.getmUrl().equals("")){

                System.out.println("没有附件");

            }else{

                msg.getAttachments().addFileAttachment(mailInfo.getmUrl()); //附件
                System.out.println("有附件");                  
            }

            try {
                msg.send(); //发送
                sendReslt = 1; //发送成功标志置1
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("不能找到附件目录,或者邮件发送失败"); 
            }
            return sendReslt;

        } 

}

“`

经验分享 程序员 微信小程序 职场和发展