项目需要用程序自动发送邮件,因为公司用的是微软的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,如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85package 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 服务器发送邮件的全部内容,更多相关Java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复