package com.linktai.utils; import java.io.File; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; import org.junit.Test; import org.springframework.stereotype.Component; import com.linktai.pojo.Mail; /** * 邮箱工具类,用于发送邮件 * * @author chenlijia * */ public class MailUtils { // 邮箱配置 public static String myEmailAccount = "[email protected]"; public static String myEmailPassword = "********"; public static String myEmailSMTPHost = "smtp.exmail.qq.com"; public String subjectEn; public String ContentEn; public String subjectCn; public String ContentCn; public String getSubjectEn() { return subjectEn; } public void setSubjectEn(String subjectEn) { this.subjectEn = subjectEn; } public String getContentEn() { return ContentEn; } public void setContentEn(String contentEn) { ContentEn = contentEn; } public String getSubjectCn() { return subjectCn; } public void setSubjectCn(String subjectCn) { this.subjectCn = subjectCn; } public String getContentCn() { return ContentCn; } public void setContentCn(String contentCn) { ContentCn = contentCn; } public boolean sendMessage(Mail mail, String name, String lang) { Properties props = new Properties(); props.setProperty("mail.transport.protocol", "smtp"); props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.host", myEmailSMTPHost); props.setProperty("mail.smtp.auth", "true"); final String smtpPort = "465"; props.setProperty("mail.smtp.port", smtpPort); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.socketFactory.port", smtpPort); props.setProperty("mail.smtp.ssl.enable", "true"); Session session = Session.getInstance(props); // session.setDebug(true); MimeMessage message = new MimeMessage(session); try { message.setFrom(new InternetAddress(myEmailAccount, "linktime", "utf-8")); message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(mail.getRecever(), name, "utf-8")); message.setSubject(lang.equals("en") ? subjectEn : subjectCn); //body内容 MimeBodyPart text = new MimeBodyPart(); text.setContent(lang.equals("en") ? ContentEn : ContentCn, "text/html; charset=utf-8"); //附件 MimeBodyPart attachment = new MimeBodyPart(); DataHandler dh2 = new DataHandler(new FileDataSource((mail.getFiles()))); attachment.setDataHandler(dh2); attachment.setFileName(MimeUtility.encodeText(dh2.getName())); MimeMultipart mm = new MimeMultipart(); mm.addBodyPart(text); mm.addBodyPart(attachment); mm.setSubType("mixed"); message.setContent(mm); message.setSentDate(new Date()); message.saveChanges(); Transport transport = session.getTransport(); transport.connect(myEmailAccount, myEmailPassword); transport.sendMessage(message, message.getAllRecipients()); transport.close(); return true; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } return false; } }
JAVA发送带附件邮件
猜你喜欢
转载自blog.csdn.net/momomoniqwer/article/details/79373184
今日推荐
周排行