Java 发送邮件. 添加标题,附件, 链接等
EmailSender.SendEmail()
方法发送邮件, 需要配置发送邮件的服务器配置
方法参数:
subject : 邮件主题
content: 邮件正文
to : 邮件接收人
cc : 邮件抄送人
attachments: 邮件附件
注意:
正文可以添加, html格式, 但邮件正文配置时, 必须有Html格式.
正文换行必须是<br>, 而不能是\r\n换行字符
链接也是Html格式. <a></a>标签
String content = "Dear,<br>" +
"This is test message. <br>" +
"链接: <a href=XXXXXX>Test</a>";
package com.company;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.*;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
public class EmailSender {
public static void SendEmail(String subject, String content, String to, String cc, File attachments){
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", "XXX"); // 指定发送邮件的主机
properties.setProperty("mail.smtp.post", "25");
properties.put("mail.smtp.auth", "true"); //允许授权用户
// 获取默认session对象
Session session = Session.getDefaultInstance(properties,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("XXX", "*******"); //发件人邮件用户名、授权码
}
});
// session.setDebug(true); //开启后有调试信息
try{
MimeMessage message = new MimeMessage(session); // 创建默认的 MimeMessage 对象。
// Set From: 头部头字段,
// 发件人电子邮箱
message.setFrom(new InternetAddress("XXX"));
// Set To: 发送人
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// Set To: 抄送人
message.addRecipient(Message.RecipientType.CC, new InternetAddress(cc));
// Set Subject: 邮件主题
message.setSubject(subject);
// 添加附件
// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart();
// 添加邮件正文
BodyPart contentPart = new MimeBodyPart();
contentPart.setContent(content, "text/html;charset=UTF-8");
multipart.addBodyPart(contentPart);
// 添加附件的内容
if (attachments != null && attachments.length > 0) {
BodyPart attachmentBodyPart = null;
try {
attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachments);
attachmentBodyPart.setDataHandler(new DataHandler(source));
//MimeUtility.encodeWord可以避免文件名乱码
attachmentBodyPart.setFileName(MimeUtility.encodeWord(attachments.getName()));
multipart.addBodyPart(attachmentBodyPart);
}
catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
// 将multipart对象放到message中
message.setContent(multipart);
// 发送消息
Transport.send(message);
System.out.println("Sent message successfully...");
}
catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
浙公网安备 33010602011771号