发送带有附件的邮件
@Test
public void fun2() throws AddressException, MessagingException {
// 得到session
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.163.com");// 设置服务器主机名
prop.setProperty("mail.smtp.auth", "true");// 设置需要认证
Authenticator auth = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("danyuzhu11@163.com",
"DANYU1122");
}
};
Session session = Session.getInstance(prop, auth);
// 创建MimeMessage
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("danyuzhu11@163.com"));// 设置发件人
msg.setRecipients(RecipientType.TO, "494281423@qq.com");// 设置收件人
// 设置正文
msg.setSubject("这是主题--邮件中带有附件");
/*
* 当发送包含附件的邮件时,邮件题为多部件形式
*
* 1、创建一个多部件内容MimeMultipart MimeMultipart是一个集合,用来装载多个主题部件
* 2、我们需要差un关键两个主题部件,一个是文本内容,一个是附件的内容
*/
MimeMultipart list = new MimeMultipart();// 设置多部分主题
// 创建MinieBodyPart
MimeBodyPart part1 = new MimeBodyPart();
part1.setContent("这是正文", "text/html;charset=utf-8");
list.addBodyPart(part1);
// 创建附件部分
MimeBodyPart part2 = new MimeBodyPart();
part2.attachFile(new File("D:/logo.png"));
part2.setFileName(MimeUtility.encodeText("附件名称.jpg"));
list.addBodyPart(part2);
msg.setContent(list);// 把它设置给邮件作为邮件的内容
// 发送邮件
Transport.send(msg);
}