<!--郵件-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
設(shè)置一下配置
private static JavaMailSenderImpl getMailSender() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
//鏈接服務(wù)器
javaMailSender.setHost(ApolloConfManage.getBaseConfigString("email.serverAddress"));
//賬號(hào)
javaMailSender.setUsername(getMailUserName());
//密碼
javaMailSender.setPassword(ApolloConfManage.getBaseConfigString("email.password"));
javaMailSender.setDefaultEncoding("UTF-8");
Properties properties = new Properties();
//設(shè)置鏈接超時(shí)
properties.setProperty("mail.smtp.timeout", "1000");
//設(shè)置通過ssl協(xié)議使用465端口發(fā)送、使用默認(rèn)端口(25)時(shí)下面三行不需要
//開啟認(rèn)證
properties.setProperty("mail.smtp.auth", "true");
//設(shè)置ssl端口
properties.setProperty("mail.smtp.socketFactory.port", "465");
properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
javaMailSender.setJavaMailProperties(properties);
return javaMailSender;
}
發(fā)復(fù)雜郵件方法(里面開啟了多線程,群發(fā)的時(shí)候效率高點(diǎn))
private static void send(final String title, final String body, final String[] toMail) {
final String mailUserName = getMailUserName();
final JavaMailSenderImpl javaMailSender = getMailSender();
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("send-mail-%d").build();
ExecutorService singleThreadPool = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
singleThreadPool.execute(new Runnable() {
@Override
public void run() {
try {
//復(fù)雜郵件
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
//郵件發(fā)送助手
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "utf-8");
//發(fā)送方
helper.setFrom(mailUserName);
//標(biāo)題
helper.setSubject("環(huán)境:" + APPLICATION_ENV + title);
//正文
helper.setText(body, true);
//接受方
helper.setTo(toMail);
log.info("給收件人: {} 發(fā)送郵件,主題為: {}", Arrays.toString(toMail), title);
//發(fā)送郵件
javaMailSender.send(mimeMessage);
} catch (Exception e) {
log.error(e.getLocalizedMessage(), e);
}
}
});
singleThreadPool.shutdown();
}
簡(jiǎn)單郵件,上面獲取郵件對(duì)象換一下
//簡(jiǎn)單郵件
SimpleMailMessage message = new SimpleMailMessage();
//郵件標(biāo)題
message.setSubject("標(biāo)題");
//郵件內(nèi)容
message.setText("內(nèi)容->郵件測(cè)試");
//發(fā)送者
message.setTo(" xxx");
//接收者
message.setFrom("xxx");
mailSender.send(message);