123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.jeeplus.common.mail;
- /**
- * 简单邮件(不带附件的邮件)发送器
- */
- import java.util.Date;
- import java.util.Properties;
- import javax.mail.Address;
- import javax.mail.BodyPart;
- import javax.mail.Message;
- import javax.mail.Multipart;
- 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;
-
- public class MailSendUtils {
- /**
- * 以文本格式发送邮件
- * @param mailInfo 待发送的邮件的信息
- */
- public boolean sendTextMail(MailBody mailInfo) throws Exception{
- // 判断是否需要身份认证
- MailAuthenticator authenticator = null;
- Properties pro = mailInfo.getProperties();
- if (mailInfo.isValidate()) {
- // 如果需要身份认证,则创建一个密码验证器
- authenticator = new MailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
- }
- // 根据邮件会话属性和密码验证器构造一个发送邮件的session
- Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
- // logBefore(logger, "构造一个发送邮件的session");
-
- // 根据session创建一个邮件消息
- Message mailMessage = new MimeMessage(sendMailSession);
- // 创建邮件发送者地址
- Address from = new InternetAddress(mailInfo.getFromAddress());
- // 设置邮件消息的发送者
- mailMessage.setFrom(from);
- // 创建邮件的接收者地址,并设置到邮件消息中
- Address to = new InternetAddress(mailInfo.getToAddress());
- mailMessage.setRecipient(Message.RecipientType.TO,to);
- // 设置邮件消息的主题
- mailMessage.setSubject(mailInfo.getSubject());
- // 设置邮件消息发送的时间
- mailMessage.setSentDate(new Date());
- // 设置邮件消息的主要内容
- String mailContent = mailInfo.getContent();
- mailMessage.setText(mailContent);
- // 发送邮件
- Transport.send(mailMessage);
- System.out.println("发送成功!");
- return true;
- }
-
- /**
- * 以HTML格式发送邮件
- * @param mailInfo 待发送的邮件信息
- */
- public boolean sendHtmlMail(MailBody mailInfo) throws Exception{
- // 判断是否需要身份认证
- MailAuthenticator authenticator = null;
- Properties pro = mailInfo.getProperties();
- //如果需要身份认证,则创建一个密码验证器
- if (mailInfo.isValidate()) {
- authenticator = new MailAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
- }
- // 根据邮件会话属性和密码验证器构造一个发送邮件的session
- Session sendMailSession = Session.getDefaultInstance(pro,authenticator);
-
- // 根据session创建一个邮件消息
- Message mailMessage = new MimeMessage(sendMailSession);
- // 创建邮件发送者地址
- Address from = new InternetAddress(mailInfo.getFromAddress());
- // 设置邮件消息的发送者
- mailMessage.setFrom(from);
- // 创建邮件的接收者地址,并设置到邮件消息中
- Address to = new InternetAddress(mailInfo.getToAddress());
- // Message.RecipientType.TO属性表示接收者的类型为TO
- mailMessage.setRecipient(Message.RecipientType.TO,to);
- // 设置邮件消息的主题
- mailMessage.setSubject(mailInfo.getSubject());
- // 设置邮件消息发送的时间
- mailMessage.setSentDate(new Date());
- // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
- Multipart mainPart = new MimeMultipart();
- // 创建一个包含HTML内容的MimeBodyPart
- BodyPart html = new MimeBodyPart();
- // 设置HTML内容
- html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");
- mainPart.addBodyPart(html);
- // 将MiniMultipart对象设置为邮件内容
- mailMessage.setContent(mainPart);
- // 发送邮件
- Transport.send(mailMessage);
- return true;
- }
- /**
- * @param SMTP
- * 邮件服务器
- * @param PORT
- * 端口
- * @param EMAIL
- * 本邮箱账号
- * @param PAW
- * 本邮箱密码
- * @param toEMAIL
- * 对方箱账号
- * @param TITLE
- * 标题
- * @param CONTENT
- * 内容
- * @param TYPE
- * 1:文本格式;2:HTML格式
- */
- public static boolean sendEmail(String SMTP, String PORT, String EMAIL,
- String PAW, String toEMAIL, String TITLE, String CONTENT,
- String TYPE) {
- // 这个类主要是设置邮件
- MailBody mailInfo = new MailBody();
- mailInfo.setMailServerHost(SMTP);
- mailInfo.setMailServerPort(PORT);
- mailInfo.setValidate(true);
- mailInfo.setUserName(EMAIL);
- mailInfo.setPassword(PAW);
- mailInfo.setFromAddress(EMAIL);
- mailInfo.setToAddress(toEMAIL);
- mailInfo.setSubject(TITLE);
- mailInfo.setContent(CONTENT);
- // 这个类主要来发送邮件
- MailSendUtils sms = new MailSendUtils();
- try {
- if ("1".equals(TYPE)) {
- return sms.sendTextMail(mailInfo);
- } else {
- return sms.sendHtmlMail(mailInfo);
- }
- } catch (Exception e) {
- return false;
- }
- }
-
-
-
- }
|