();

map.put("state", "success");

String message = "邮件发送成功!";

Session session = null;

Properties props = System.getProperties();

props.put("mail.smtp.host", smtpServer);

if(isExchange){

if(domain == null || domain.equals("")){

throw new RuntimeException("domain is null");

}

props.setProperty("mail.smtp.auth.ntlm.domain", domain);

}

if (ifAuth) { // 服务器需要身份认证

props.put("mail.smtp.auth", "true");

MailAuthenticator smtpAuth = new MailAuthenticator(username, password);

session = Session.getDefaultInstance(props, smtpAuth);

} else {

props.put("mail.smtp.auth", "false");

session = Session.getDefaultInstance(props, null);

}

session.setDebug(true);

Transport trans = null;

try {

Message msg = new MimeMessage(session);

try {

Address from_address = new InternetAddress(from, displayName);

msg.setFrom(from_address);

} catch (java.io.UnsupportedEncodingException e) {

e.printStackTrace();

}

InternetAddress[] address = { new InternetAddress(to) };

msg.setRecipients(Message.RecipientType.TO, address);

msg.setSubject(subject);

Multipart mp = new MimeMultipart();

MimeBodyPart mbp = new MimeBodyPart();

mbp.setContent(content.toString(), "text/html;charset=gb2312");

mp.addBodyPart(mbp);

if (!file.isEmpty()) {// 有附件

Enumerationefile = file.elements();

while (efile.hasMoreElements()) {

mbp = new MimeBodyPart();

filename = efile.nextElement().toString(); // 选择出每一个附件名

FileDataSource fds = new FileDataSource(filename); // 得到数据源

mbp.setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPart

mbp.setFileName(fds.getName()); // 得到文件名同样至入BodyPart

mp.addBodyPart(mbp);

}

file.removeAllElements();

}

msg.setContent(mp); // Multipart加入到信件

msg.setSentDate(new Date()); // 设置信件头的发送日期

// 发送信件

msg.saveChanges();

trans = session.getTransport("smtp");

trans.connect(smtpServer, username, password);

trans.sendMessage(msg, msg.getAllRecipients());

trans.close();

} catch (AuthenticationFailedException e) {

map.put("state", "failed");

message = "邮件发送失败!错误原因:\n" + "身份验证错误!";

e.printStackTrace();

} catch (MessagingException e) {

message = "邮件发送失败!错误原因:\n" + e.getMessage();

map.put("state", "failed");

e.printStackTrace();

Exception ex = null;

if ((ex = e.getNextException()) != null) {

System.out.println(ex.toString());

ex.printStackTrace();

}

}

// System.out.println("\n提示信息:"+message);

map.put("message", message);

return map;

}

public static void main(String[] args) {

String smtpServer = "exchange.be***.com.cn";

String from = "*******@be***.com.cn";

String userName = "*******";

String password = "*******";

String to = "*******@qq.com";

String subject = "你好";

String content = "你好啊";

MailTool mail = new MailTool(smtpServer, from, "BES**YDJD", userName, password,

to, subject, content);

mail.send();

}

}

package tool.mail;

import javax.mail.Authenticator;

import javax.mail.PasswordAuthentication;

/**

*

* 服务器邮箱登录验证

*

*/

public class MailAuthenticator extends Authenticator {

/**

*

* 用户名(登录邮箱)

*/

private String username;

/**

* 密码

*/

private String password;

/**

*

* 初始化邮箱和密码

*

* @param username

*            邮箱

*

* @param password

*            密码

*/

public MailAuthenticator(String username, String password) {

this.username = username;

this.password = password;

}

String getPassword() {

return password;

}

@Override

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(username, password);

}

String getUsername() {

return username;

}

public void setPassword(String password) {

this.password = password;

}

public void setUsername(String username) {

this.username = username;

}

}

java邮箱exchange_Exchange服务器之java mail 使用:exchange邮箱相关推荐

  1. java 连接OPC服务器之 utgard 连接 KepServer

    java 连接OPC服务器之 utgard 连接 KepServer 我要做一个java开发的项目, 这个在网上很少案例, 大家基本都是做web开发的, 我其实之前也是.但是现在有这个需求, 就干了. ...

  2. exchange java ews_Exchange服务器之使用EWS读取Exchange邮件

    依赖的包 commons-codec-1.6.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar ews-java-api-2.0.jar http ...

  3. java拉起服务,从Java调用Restful服务

    UPDATE as follow up with this: Can I do this way?? if the xml being returned as 4 -.. If I am constr ...

  4. python 收取邮件 exchange_Exchange服务器之python 使用exchange发送邮件

    安装库exchangelib pip install exchangelib1 脚本内容 # coding=utf-8 # # Created on 2018/2/ from exchangelib  ...

  5. 关于微服务和 Java 需要知道的 5 件事

    概览 许多企业在不断努力加快开发速度,减少客户遇到的宕机时间 .微服务架构是更快地迭代.更高效地扩展和创建适应能力更强的应用程序的唯一途径.使用微服务构建的应用程序由各种各样的服务组成,这些服务执行不 ...

  6. Java mail使用QQ邮箱发送邮件配置方案

    Java mail使用QQ邮箱发送邮件配置方案 java mail配置了QQ邮箱作为服务器发送邮件,结果导致出现503异常: Authentication failed; nested excepti ...

  7. java.exe闪退_tomcat7.exe闪退 解决点击startup.bat后闪退的情况 - 电脑常识 - 服务器之家...

    tomcat7.exe闪退 解决点击startup.bat后闪退的情况 发布时间:2017-03-08 来源:服务器之家 最近开始学习jsp编程,当然在开始编程之前,我们要先把开发用的工具准备好,进行 ...

  8. 阿里云自动java和mysql数据库_阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程)...

    阿里云服务器之基于Linux系统部署上线JavaWeb项目和连接MySQL数据库(从购买云服务器到发布JavaWeb项目全套详细流程) (仅此纪念人生第一篇学习博客) 前阵子接了一个小小的JavaWe ...

  9. java mail使用qq邮箱发邮件的配置方法

    最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...

  10. java camel exchange类_Exchange服务器之camel 基本概念

    本文将带你了解Exchange服务器之camel 基本概念,希望本文对大家学Exchange有所帮助. camel 对exchange的几种处理consuming方式: 1. bean 2. bean ...

最新文章

  1. 准备IE--复习NP,NP从头开始,每天学一点,就多一点收获
  2. 2019计算机科学论文研讨大会,2019年中华口腔医学会口腔医学计算机专业委员会第十七次全国口腔医学数字化学术会议第一轮会议通知...
  3. Windows Phone 实用开发技巧(9):自定义Windows Phone 页面切换动画
  4. 【struts2+hibernate+spring项目实战】分页功能的完整的实现(通用分页、基类实现)
  5. PagedList.Mvc只有一行时不显示分页
  6. 全面的GC原理及调优
  7. java 上传文件编码_(java)有什么办法把MultipartFile上传的文件转为utf-8的编码吗
  8. drools6.5_使用Drools 6.0进行部署
  9. 解析底层原理!Android开发者面试如何系统复习?帮你突破瓶颈
  10. 对于AES和RSA算法的结合使用以及MD5加盐注册登录时的密码加密
  11. TensorFlow十三 LSTM练习
  12. Boss直聘上面HR是不是很恶心?
  13. python数字1 3怎么表示_Python3 数字类型
  14. Rplidar A1/A2使用及Hector_SLAM建图
  15. 做scratch游戏心得1
  16. cucumber rest assured做接口测试
  17. 【Docker系列】从头学起 Docker——docker run 命令详解
  18. 码蹄集 - MT2165 - 小码哥的抽卡之旅1
  19. 12--CSS导航栏(知识点复习)
  20. mysql统计分数段人数_mysql 按分数段,每个专业分数段统计人数

热门文章

  1. 跳槽理由—你的跳槽理由合理吗
  2. 比赛对阵表(女排世界杯对阵表)
  3. Justinmind Prototyper中如何使用变量达到一些效果
  4. 手把手教你集成Andriod百度地图SDK
  5. 什么是http协议?
  6. JavaSE----基础语法(数组)
  7. 网上找的更具纬度经度算计两点之间的距离,得到的结果不准确, 小程序获取用户位置信息返回的纬度经度与实际位置不正确。
  8. JMeter 如何生成指定取值范围、指定小数位数的随机浮点数
  9. Java数据结构树实验报告总结_20172302 《Java软件结构与数据结构》实验二:树实验报告...
  10. 梯形公式预测校正matlab_鲁棒预测控制(Robust MPC)