package net.bolue.mail;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
public class SpringMailSender {
// Spring的郵件工具類,實作了MailSender和JavaMailSender接口
private JavaMailSenderImpl mailSender;
public SpringMailSender() {
// 初始化JavaMailSenderImpl,當然推薦在spring配置檔案中配置,這裡是為了簡單
mailSender = new JavaMailSenderImpl();
// 設定參數
mailSender.setHost("smtp.qq.com");
mailSender.setUsername("[email protected]");
mailSender.setPassword("asterisks");
}
public void attachedSend() throws MessagingException {
//使用JavaMail的MimeMessage,支付更加複雜的郵件格式和内容
MimeMessage msg = mailSender.createMimeMessage();
//建立MimeMessageHelper對象,處理MimeMessage的輔助類
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
//使用輔助類MimeMessage設定參數
helper.setFrom(mailSender.getUsername());
helper.setTo("[email protected]");
helper.setSubject("Hello Attachment");
helper.setText("This is a mail with attachment");
//加載檔案資源,作為附件
ClassPathResource file = new ClassPathResource("Chrysanthemum.jpg");
//加入附件
helper.addAttachment("attachment.jpg", file);
//發送郵件
mailSender.send(msg);
}
public void richContentSend() throws MessagingException {
MimeMessage msg = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
helper.setFrom(mailSender.getUsername());
helper.setTo("[email protected]");
helper.setSubject("Rich content mail");
//第二個參數true,表示text的内容為html,然後注意<img/>标簽,src='cid:file','cid'是contentId的縮寫,'file'是一個标記,需要在後面的代碼中調用MimeMessageHelper的addInline方法替代成檔案
helper.setText(
"<body><p>Hello Html Email</p><img src='cid:file'/></body>",
true);
FileSystemResource file = new FileSystemResource(
"C:\\Users\\Public\\Pictures\\Sample Pictures\\Chrysanthemum.jpg");
helper.addInline("file", file);
mailSender.send(msg);
}
}