import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.mail.javamail.MimeMessagePreparator;
public class MialService {
private JavaMailSender mailSender;
private String fromMail;
public JavaMailSender getMailSender() {
return mailSender;
}
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
public String getFromMail() {
return fromMail;
}
public void setFromMail(String fromMail) {
this.fromMail = fromMail;
}
public void sendMail(String toMailAddr, String subject, String content) {
SimpleMailMessage smm = new SimpleMailMessage();
smm.setTo(toMailAddr);
smm.setFrom(fromMail);
smm.setSubject(subject);
smm.setText(content);
mailSender.send(smm);
}
/** */
/**
* 发送带附件的邮件
*
* 邮件发送器
* @throws Exception
*/
public void sendMimeMessage(final String toMailAddr, final String subject,
final String contents, final List files) throws Exception {
MimeMessagePreparator mimeMail = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage)
throws MessagingException {
mimeMessage.setRecipient(Message.RecipientType.TO,
new InternetAddress(toMailAddr));
mimeMessage.setFrom(new InternetAddress(fromMail));
mimeMessage.setSubject(subject, "gb2312");
Multipart mp = new MimeMultipart();
// 向Multipart添加正文
MimeBodyPart content = new MimeBodyPart();
content.setText(contents);
// 向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(content);
if (files != null && files.size() > 0) {
// 向Multipart添加附件
Iterator it = files.iterator();
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
while (it.hasNext()) {
MimeBodyPart attachFile = new MimeBodyPart();
String filename = it.next().toString();
FileDataSource fds = new FileDataSource(filename);
attachFile.setDataHandler(new DataHandler(fds));
attachFile.setFileName("=?GBK?B?"
+ enc.encode(fds.getName().getBytes()) + "?=");
mp.addBodyPart(attachFile);
}
files.clear();
}
// 向Multipart添加MimeMessage
mimeMessage.setContent(mp);
mimeMessage.setSentDate(new Date());
}
};
// 发送带附件的邮件
mailSender.send(mimeMail);
}
/** */
/**
* 发送带附件的html邮件
*
* @param 邮件发送器
* @throws Exception
*/
public void sendMimehtmlandmultiple(final String toMailAddr,final String mailName,
final String subject,final String contents) throws Exception {
MimeMessage mime = mailSender.createMimeMessage();
MimeMessageHelper helper;
try {
helper = new MimeMessageHelper(mime, true, "utf-8");
helper.setFrom(fromMail);
//helper.setTo(new InternetAddress(toMailAddr,MimeUtility.encodeWord(mailName,"utf-8","Q")));
helper.setTo(toMailAddr);
helper.setSubject(subject);
// 需要将附件显示在html中
// 在标签中用cid:xx 标记,使用helper.addInline()方法添加
helper.setText(contents, true);
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mailSender.send(mime);
}
}
java mail
最新推荐文章于 2023-06-24 17:57:09 发布