项目需要用程序自动发送邮件,因为公司用的是微软的office,因此决定使用office365作为邮箱服务器。

查了一下,网上有很多教程,但是需要注意以下几点:

1,使用office365作为服务器,首先得有一个outlook邮箱账号,并且该账号必须设置允许POP,不设置允许POP是不行的。如果不想下载outlook客户端进行设置,可以直接在网上账户进行设置,点击链接POP 和 IMAP,登录进去进行设置,截图如下:

2,关于office365邮箱服务器地址,网上有各种版本,比如 m.outlook.com ,smtp.office365.com 或者 smtp.partner.outlook.cn,还有的说要下载证书,或者Java1.6可以,Java1.7不行。但是在上面的截图中可以明确看到,server name 是smtp-mail.outlook.com,端口号是587。

从网上复制的一些代码,稍微改了一下,亲测可以。Java版本是1.8,如下:

package email;import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.Properties;public class Office365 {public static void main(String[] args) {String sender = "your outlook@outlook.com";String password = "your password";// 收件人邮箱地址String receiver = "123456@qq.com";// office365 邮箱服务器地址及端口号String host = "smtp-mail.outlook.com";String prot = "587";try{Properties props = new Properties();// 开启debug调试props.setProperty("mail.debug", "true");  //false// 发送服务器需要身份验证props.setProperty("mail.smtp.auth", "true");// 设置邮件服务器主机名props.setProperty("mail.host", host);// 发送邮件协议名称props.setProperty("mail.transport.protocol", "smtp");props.setProperty("mail.smtp.port", prot);props.put("mail.smtp.starttls.enable", "true");// 设置环境信息Session session = Session.getInstance(props);// 创建邮件对象MimeMessage msg = new MimeMessage(session);// 设置发件人msg.setFrom(new InternetAddress(sender));// 设置收件人msg.addRecipient(Message.RecipientType.TO, new InternetAddress(receiver));// 设置邮件主题msg.setSubject("this is subject");// 设置邮件内容Multipart multipart = new MimeMultipart();MimeBodyPart textPart = new MimeBodyPart();textPart.setText("this is the text");multipart.addBodyPart(textPart);// 添加附件MimeBodyPart attachPart = new MimeBodyPart();DataSource source = new FileDataSource("D:\\tmpfile\\document\\MailUtil.java");attachPart.setDataHandler(new DataHandler(source));attachPart.setFileName("MailUtil.java");multipart.addBodyPart(attachPart);msg.setContent(multipart);Transport transport = session.getTransport();// 连接邮件服务器transport.connect(sender, password);// 发送邮件transport.sendMessage(msg, new Address[]{new InternetAddress(receiver)});// 关闭连接transport.close();}catch( Exception e ){e.printStackTrace();}}
}

Java 通过Office365 服务器发送邮件相关推荐

  1. java sql结果发送邮件_利用mailx和Office365 SMTP发送邮件

    Mailx是一个智能邮件处理系统,提供POSIX mailx命令功能,提供MIME.IMAP.POP3.SMTP和S/MIME扩展,通过调用sendmail来发送邮件. 安装mailx: # yum ...

  2. java qq邮箱服务器端口_spring mail借助qq邮箱服务器发送邮件

    spring mail封装了javaMail的邮件服务,让邮件服务使用起来更简单,下面以qq邮箱服务器为例,用spring mail服务来发送邮件 配置qq邮箱,"设置"--&qu ...

  3. java 监控linux服务器cpu使用率、内存使用率、磁盘使用率、java进程是否存活等服务

    java 监控linux服务器cpu.内存.java进程是否存活,发现异常发送邮件提醒 前一段时间在维护一个N年前的项目,这个项目有十几个服务器,每个服务器上有十几个服务.接手后的几个星期天天有事,要 ...

  4. 纯Java实现网易邮箱发送邮件

    纯Java实现网易邮箱发送邮件 基于Java开发的邮件发送程序.因为使用的是网易的smtp服务器,所以发件人邮箱要求网易邮箱.博主亲测126邮箱和163邮箱有效,yeah邮箱没有测试. 前提准备 需要 ...

  5. java 添加附件_java发送邮件(一)--补充添加附件

    今天来记录一下如何使用java来发送邮件 背景 之前项目有个需求,当产品出现故障时会把情况上送给服务器,服务器发送邮件将故障产品的位置以及故障信息等告知维修人员.发送邮件的接口不是我负责的,但是有兴趣 ...

  6. Java实现远程服务器监控,【Java】监控远程服务器JVM

    今天在用JMeter进行测试的时候,发现线程并发量到50的时候会导致阻塞情况,于是需要监控远程JVM,那么如何监控远程JVM呢? 首先,找到启动计量引擎的sh文件,例如我目前的计量引擎启停文件为str ...

  7. C#使用hotmail的SMTP服务器发送邮件

    使用微软邮件服务器方式 1. 发送者账户为hotmail账号,SMTP服务为: smtp.office365.com 2.身份验证:  hotmail账号  + 密码 client.Host = &q ...

  8. php语言smtp类,php mailer类调用远程SMTP服务器发送邮件实现方法

    这篇文章主要介绍了php mailer类调用远程SMTP服务器发送邮件实现方法,结合实例形式分析了php mailer类的调用及邮件发送相关技巧,需要的朋友可以参考下 本文实例讲述了php maile ...

  9. Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件

    使用本地服务发邮件,经常被过滤掉而且占用资源,发送成功率不高.所以使用外部SMTP服务器发送邮件成为了需求. SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰,简单地说就是要求必须在提供了账户名和 ...

最新文章

  1. 移植uboot第四步:设置NAND启动
  2. 【BJDCTF 2nd—MISC/Crypto】做题+复现记录
  3. mfc链表中的数据如何排序输出_java程序员面试中最容易被问到的18个算法题(附答案!)...
  4. css对各个浏览器兼容技巧
  5. Java基础学习总结(41)——JPA常用注解
  6. tornado 重定向404
  7. 已解决:An error occurred at line: 1 in the generated java file The type java.io.ObjectInputStream canno
  8. 开源MySQL数据传输中间件—DTLE
  9. 将PowerPCB 中的pcb文件导入到Protel中使用
  10. 网络工程师笔记--网络管理技术
  11. cesium加载shp格式数据
  12. html鼠标自动点击代码,网上学习鼠标10分钟自动点击 按键精灵使用设置方法 脚本编辑...
  13. oracle共享池使用率,oracle调优之--共享池使用问题(摘自文平书)
  14. 引爆你的集合灵感 [C#, LINQ]
  15. 如何删除WhatsApp消息
  16. 计算机软考职称属于哪个大类,计算机软考职称是什么
  17. [别被脱裤系列]2 还没深入数据库就浅出了
  18. 参加中国移动开发者大会有感
  19. VAS价值存托公链体系创世录 第一章
  20. 【华为OD机试真题 python】天然蓄水库【2023 Q1 | 100分】

热门文章

  1. 毕业季,说一说自己从学生初入职场的感受
  2. 【华为笔试】【模拟】【Java】竖直四子棋
  3. 如何看待药物治疗过程中的副作用?
  4. Windows下Idea,AndroidStudio的字体美化
  5. 《欢乐颂2》狗血的剧情才是生活该有的模样
  6. 问题 G: 流连人间的苏苏
  7. 洋洋洒洒688字带你彻底吃透Zuul的插件机制及定制化开发
  8. python123子字符串输出_【无为则无心Python基础】— 13.字符串的格式化输出(一)...
  9. torch.squeeze和torch.unsqueeze
  10. Win10 + WSL2 (ubuntu18.04 LTS) + vscode开发环境,win上linux图形化界面劝退实录