import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import java.util.Properties;
/**
* Created by Unilog-34 on 2018/09/17.
*/
@Configuration
public class EmailUtil {
private String from = "13991022971@163.com";
private String password = "35525182";
@Bean(name = "JavaMailSender")
public JavaMailSenderImpl getJavaMailSender() {
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
Properties prop = new Properties();
prop.setProperty("mail.debug", "true");
prop.setProperty("mail.smtp.auth", "true");
prop.setProperty("mail.transport.protocol", "smtp");
prop.setProperty("mail.smtp.timeout", "25000");
prop.setProperty("mail.smtp.ssl.enable", "true");
//ssl
prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.smtp.socketFactory.fallback", "false");
prop.setProperty("mail.smtp.socketFactory.port", "465");
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, password);
}
};
Session session = Session.getDefaultInstance(prop, authenticator);
senderImpl.setJavaMailProperties(prop);
senderImpl.setHost("smtp.163.com");
senderImpl.setUsername(from);
senderImpl.setPassword(password);
senderImpl.setDefaultEncoding("UTF-8");
senderImpl.setPort(465);
return senderImpl;
}
}
import cn.com.unilog.crm.service.base.EmailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* Created by Unilog-34 on 2018/09/17.
*/
@Service
public class EmailServiceImpl implements EmailService{
private final String from = "m13991022971@163.com";
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendSimpleEmail(String to, String subject, String content) {
SimpleMailMessage message = new SimpleMailMessage();//创建简单邮件消息
message.setFrom(from);//设置发送人
message.setTo(to);//设置收件
message.setSubject(subject);//设置主题
message.setText(content);//设置内容
try {
javaMailSender.send(message);
System.out.print("简单邮件已经发送。");
} catch (Exception e) {
System.out.print("发送简单邮件时发生异常!"+ e);
}
}
@Override
public void sendHtmlEmail(String to, String subject, String content) {
MimeMessage message = javaMailSender.createMimeMessage();//创建一个MINE消息
try {
//true表示需要创建一个multipart message
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
javaMailSender.send(message);
System.out.print("html邮件发送成功");
} catch (MessagingException e) {
System.out.print("发送html邮件时发生异常!"+e);
}
}
@Override
public void sendAttachmentsEmail(String to, String subject, String content, String filePath) {
MimeMessage message = javaMailSender.createMimeMessage();//创建一个MINE消息
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);// true表示这个邮件是有附件的
FileSystemResource file = new FileSystemResource(new File(filePath));//创建文件系统资源
String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
helper.addAttachment(fileName, file);//添加附件
javaMailSender.send(message);
System.out.print("带附件的邮件已经发送。");
} catch (MessagingException e) {
System.out.print("发送带附件的邮件时发生异常!"+ e);
}
}
@Override
public void sendInlineResourceEmail(String to, String subject, String content, String rscPath, String rscId) {
MimeMessage message = javaMailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(rscPath));
//添加内联资源,一个id对应一个资源,最终通过id来找到该资源
helper.addInline(rscId, res);//添加多个图片可以使用多条 <img src='cid:" + rscId + "' > 和 helper.addInline(rscId, res) 来实现
javaMailSender.send(message);
System.out.print("嵌入静态资源的邮件已经发送。");
} catch (MessagingException e) {
System.out.print("发送嵌入静态资源的邮件时发生异常!"+ e);
}
}
}
https://www.jb51.net/article/112237.htm