本次用maven创建项目
引入maven依赖
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
具体实现,该Demo用的是QQ邮箱服务器
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
@Service
public class MailService {
// 发件人邮箱
public static String USER_NAME="xxx@qq.com";
// 服务器地址 这里我用了QQ邮箱的服务器
public static String HOST="smtp.exmail.qq.com";
// 授权码 非邮箱登录密码
public static String AUTH_CODE="xxx";
// 发件人邮箱
public static String FROM="xxx@qq.com";
/**
* 发送邮件
* @param user 发件人邮箱
* @param password 授权码(注意不是邮箱登录密码)
* @param host 服务器地址
* @param from 发件人
* @param to 接收者邮箱
* @param subject 邮件主题
* @param content 邮件内容
* @return success 发送成功 failure 发送失败
* @throws Exception
*/
public String sendMail( String to, String subject, String content)throws Exception {
try {
String user=USER_NAME;
String password=AUTH_CODE;
String host=HOST;
String from=FROM;
// 发送者认证权限
JavaMailSenderImpl mailSender=new JavaMailSenderImpl();
// 根据自己的情况设置发用户名
mailSender.setUsername(user);
// 根据自己的情况 设置password
mailSender.setPassword(password);
Properties prop = new Properties();
// 将这个参数设为true,让服务器进行认证用户名和密码是否正确
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.timeout", "25000");
// 25端口已被QQ邮箱关闭,需要通过SSL或TLS传输,使用465端口
prop.put("mail.smtp.host", host);
prop.put("mail.smtp.socketFactory.class", SSL_FACTORY);
prop.put("mail.smtp.socketFactory.fallback", "false");
prop.put("mail.smtp.port", "465");
prop.put("mail.smtp.socketFactory.port", "465");
mailSender.setJavaMailProperties(prop);
//设定mail server
mailSender.setHost(host);
//建立邮件消息,发送邮件和html邮件的区域
MimeMessage mailMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "utf-8");
// 发送人邮箱
messageHelper.setFrom(from);
// 设置收件人邮箱
messageHelper.setTo(to);
// 主题
messageHelper.setSubject(subject);
// true 表示启动HTML格式的邮箱
messageHelper.setText("<html><head></head><body>" + content
+ "</body></html>", true);
//发送邮件
mailSender.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
return "failure";
}
return "success";
}
public static void main(String[] args) throws Exception {
List<String> l=new ArrayList<String>();
l.add("1");
l.add("2");
l.add("3");
l.add("4");
StringBuffer sb=new StringBuffer();
for(int i=0;i<l.size();i++){
sb.append(l.get(i));
sb.append("<br/>");
}
MailService mail=new MailService();
mail.sendMail("xxx@qq.com", "我是主题", sb.toString());
}
}
注意:每个邮箱服务器有限制发送的条数,如下可参考: