自己实际项目中的一个方法,直接看代码就能看懂
public static boolean sendMail(String smtpFromMail, String pwd, int port, String host,
String subject, String toMail, String content,
List<String> files)
{
try
{
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
Session session = Session.getDefaultInstance(props);
session.setDebug(false);
String[] emailTo = toMail.split(",");
for (String string : emailTo)
{
MimeMessage mm = new MimeMessage(session);
mm.setFrom(new InternetAddress(smtpFromMail, subject));
mm.addRecipient(Message.RecipientType.TO, new InternetAddress(string));
mm.setSubject(subject);
mm.addHeader("charset", "UTF-8");
MimeBodyPart mp = new MimeBodyPart();
String contentStr = "<h4>" + content + "</h4>";
for (String file : files)
{
if (!file.endsWith("pdf"))
{
int start = file.lastIndexOf("/");
int end = file.lastIndexOf(".");
String fileName = file.substring(start + 1, end);
contentStr += "<h4>" + fileName + "使用情况如下:</h4><img src='cid:" + fileName
+ ".jpg'><br>";
}
}
mp.setContent(contentStr, "text/html;charset=gb2312");
MimeMultipart mmp = new MimeMultipart();
mmp.addBodyPart(mp);
for (String file : files)
{
if (!file.endsWith("pdf"))
{
int start = file.lastIndexOf("/");
int end = file.lastIndexOf(".");
String fileName = file.substring(start + 1, end);
MimeBodyPart mp2 = new MimeBodyPart();
mp2.setDataHandler(new DataHandler(new FileDataSource(file)));
mp2.setContentID(fileName + ".jpg");
mmp.addBodyPart(mp2);
}
}
mmp.setSubType("related");
MimeBodyPart mp4 = new MimeBodyPart();
mp4.setContent(mmp);
MimeBodyPart mp5 = null;
for (String file : files)
{
if (file.endsWith(".pdf"))
{
File usFile = new File(file);
mp5 = new MimeBodyPart();
DataSource source = new FileDataSource(file);
mp5.setDataHandler(new DataHandler(source));
sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
mp5.setFileName(
"=?GBK?B?" + enc.encode(usFile.getName().getBytes()) + "?=");
}
}
MimeMultipart mmp2 = new MimeMultipart();
mmp2.addBodyPart(mp4);
mmp2.addBodyPart(mp5);
mmp2.setSubType("mixed");
mm.setContent(mmp2);
mm.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(host, port, smtpFromMail, pwd);
transport.sendMessage(mm, mm.getAllRecipients());
transport.close();
}
}
catch (
Exception e)
{
logger.error("邮件发送异常,请检查配置是否正确。");
e.printStackTrace();
return false;
}
return true;
}