27.发送邮件工具类

/*** 邮件工具类** @author zj* @date 2022/03/14 16:39**/
public class EMailUtil {/*** 创建简单的文本邮件** @param session     session对象* @param mailFrom    邮件发送方地址* @param mailTo      邮件接收方地址* @param mailTittle  邮件标题* @param mailContent 邮件内容* @return MimeMessage*/public static MimeMessage simpleMail(Session session, String mailFrom, String mailTo, String mailTittle, String mailContent) {//创建默认的MimeMessage 对象MimeMessage msg = new MimeMessage(session);try {//邮件发送人msg.setFrom(mailFrom);//邮件接收人msg.setRecipients(Message.RecipientType.TO, mailTo);//邮件标题头msg.setSubject(mailTittle);//邮件发送日期msg.setSentDate(new Date());//邮件文本内容msg.setContent(mailContent, "text/html;charset=UTF-8");} catch (Exception mex) {mex.printStackTrace();}return msg;}/*** 创建带有附件的邮件** @param session     session对象* @param contentMap  邮件配置和邮件内容* @param attachments 邮件附件* @return MimeMessage*/public static MimeMessage attachMail(Session session, Map contentMap, List attachments) {// 创建邮件对象MimeMessage mimeMessage = new MimeMessage(session);try {//邮件发送人mimeMessage.setFrom(contentMap.get("mailFrom").toString());//邮件接收人mimeMessage.setRecipients(Message.RecipientType.TO, contentMap.get("mailTo").toString());//邮件主题mimeMessage.setSubject(contentMap.get("mailTittle").toString());//创建多重消息MimeMultipart multipart = new MimeMultipart();//邮件正文BodyPart contentPart = new MimeBodyPart();contentPart.setContent(contentMap.get("mailContent").toString(), "text/html;charset=UTF-8");multipart.addBodyPart(contentPart);//邮件附件if (attachments != null) {for (File attachment : attachments) {BodyPart attachmentPart = new MimeBodyPart();DataSource source = new FileDataSource(attachment);attachmentPart.setDataHandler(new DataHandler(source));//避免中文乱码的处理attachmentPart.setFileName(MimeUtility.encodeWord(attachment.getName()));multipart.addBodyPart(attachmentPart);}}mimeMessage.setContent(multipart, "UTF-8");//保存邮件mimeMessage.saveChanges();} catch (Exception mex) {mex.printStackTrace();}return mimeMessage;}/*** 发送邮件方法** @param contentMap 邮件配置和邮件内容map*/public static void sendEmail(Map contentMap) {sendEmail(contentMap, null);}/*** 发送邮件方法** @param contentMap 邮件配置和邮件内容map* @param attaches   邮件配置带附件*/public static void sendEmail(Map contentMap, List attaches) {try {//获取系统属性Properties pros = new Properties();pros.setProperty("mail.transport.protocol", "smtp");// 使用的协议pros.setProperty("mail.smtp.host", contentMap.get("host").toString());// 发件人的邮箱的SMTP服务器地址pros.setProperty("mail.smtp.auth", "true");// 需要请求认证//设置邮件服务器Session session = Session.getInstance(pros);if (attaches == null) {//发送简单的文本邮件MimeMessage msg = simpleMail(session, contentMap.get("mailFrom").toString(), contentMap.get("mailTo").toString(), contentMap.get("mailTittle").toString(), contentMap.get("mailContent").toString());Transport.send(msg, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());System.out.println("Sent simpleMail successfully...");} else {//发送带附件邮件MimeMessage mimeMessage = attachMail(session, contentMap, attaches);Transport.send(mimeMessage, contentMap.get("mailFrom").toString(), contentMap.get("passwd").toString());System.out.println("Sent attaches Email successfully...");}} catch (Exception mex) {mex.printStackTrace();}}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部