不久前研究了一下用Java程序发送电子邮件,个人总结主要包含三大步骤:
一、首先要确保你发送消息的邮箱需要开启POP3/SMTP服务和 IMAP/SMTP服务:
具体开启方式以163邮箱为例:
进入邮箱【首页】——>【设置】——>【POP3/SMTP/IMAP】——>【设置POP3/SMTP/IMAP】,
把【POP3/SMTP服务】和【IMAP/SMTP服务】全部勾上,此时会弹出一个框要你设置(授权码),
那就去设置,总之,记住这个(授权码),后面用的上。
二、下载activation.jar、mail.jar这两个包,如果是JDK1.7以上(包括JDK1.7)版本,则可以只下载第二个包
三、编码:
//1、创建一个Properties对象(原因:javax.mail.Session需要这个参数,下面会提到)
Properties p = new Properties();
//2、设置连接协议,使用简单的邮件传输协议
p.put("mail.transport.protocol","smtp");
//3、连接的主机
p.put("mail.smtp.host","smtp.163.com");
//4、设置是否需要经过身份验证
p.put("mail.smtp.auth","true");
//5、端口号(个人测试了一下163可以不写)
p.put("mail.smtp.port",25);
//6、设置是否需要经过SSL安全连接
p.put("mail.smtp.ssl.enable","true");
//7、设置是否需要查看debug消息,如果设置为true,则可以在控制台看到debug消息
p.put("mail.debug","true");
//8、得到javax.mail.Session会话对象
Session session = Session.getInstance(p);
//9、获取邮件对象
Message message = new Message(session);
//10、设置发件人邮件地址
message.setFrom(new InternetAddress("发件人邮箱地址"));
//11、设置收件人地址
message.setRecipients(RecipientType.TO, new InternetAddress[]{
new InternetAddress("收件人邮箱地址")
});
//10、设置邮件标题
message.setSubject("这是第一封Java邮件");
//11、设置邮件内容,以及编码格式
message.setContent(""
+ "内容:这是我发的第一封Java邮件"
+ "【百度一下】",
"text/html;charset=utf-8");
//12、得到邮差对象
Transport transport = session.getTransport();
//13、连接到自己的邮箱
transport.connect("发件人邮箱地址", "开启POP3/SMTP时得到的授权码");
//14、发送邮件
transport.sendMessage(message, message.getAllRecipients());