邮件发送

package com.certification.util;

import java.util.Date;
import java.util.Properties;

import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
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;

import com.certification.util.entity.EmailAuthenticator;


public class EmeilUtils {
   // 发送邮件的服务器的IP(或主机地址)
   private static String mailServerHost = "smtp.163.com";
   // 发送邮件的服务器的端口
   private static String mailServerPort = "25";
   // 发件人邮箱地址
   private static String fromAddress = "xx@163.com";
   // 登陆邮件发送服务器的用户名
   private static String userName = "xx@163.com";
   // 登陆邮件发送服务器的密码
   private static String password = "xx";
   // 是否需要身份验证
   private static boolean validate = true;

   
   public static boolean sendTextMail(String toAddress, String subject, String content) {

      EmailAuthenticator authenticator = null;

      Properties pro = new Properties();
      pro.put("mail.smtp.host", mailServerHost);
      pro.put("mail.smtp.port", mailServerPort);
      pro.put("mail.smtp.auth", validate ? "true" : "false");

      // 判断是否需要身份认证
      if (validate) {
         // 如果需要身份认证,则创建一个密码验证器
         authenticator = new EmailAuthenticator(userName, password);
      }
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session
      Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
      try {
         // 根据session创建一个邮件消息
         Message mailMessage = new MimeMessage(sendMailSession);
         // 创建邮件发送者地址
         Address from = new InternetAddress(fromAddress);
         // 设置邮件消息的发送者
         mailMessage.setFrom(from);
         // 创建邮件的接收者地址,并设置到邮件消息中
         Address to = new InternetAddress(toAddress);
         mailMessage.setRecipient(Message.RecipientType.TO, to);
         // 设置邮件消息的主题
         mailMessage.setSubject(subject);
         // 设置邮件消息发送的时间
         mailMessage.setSentDate(new Date());
         // 设置邮件消息的主要内容
         String mailContent = content;
         mailMessage.setText(mailContent);
         // 发送邮件
         Transport.send(mailMessage);
         return true;
      } catch (MessagingException ex) {
         ex.printStackTrace();
      }
      return false;
   }
   public static void main(String[] args) {
      sendHtmlMail("xxx@qq.com","这是一个测试邮件","没有任何意义");
   }
   
   public static boolean sendHtmlMail(String toAddress,String subject, String content) {
      // 判断是否需要身份认证
      EmailAuthenticator authenticator = null;
      Properties pro = new Properties();
      pro.put("mail.smtp.host", mailServerHost);
      pro.put("mail.smtp.port", mailServerPort);
      pro.put("mail.smtp.auth", validate ? "true" : "false");
      // 如果需要身份认证,则创建一个密码验证器
      if (validate) {
         authenticator = new EmailAuthenticator(userName, password);
      }
      // 根据邮件会话属性和密码验证器构造一个发送邮件的session
      Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
      try {
         // 根据session创建一个邮件消息
         Message mailMessage = new MimeMessage(sendMailSession);
         // 创建邮件发送者地址
         Address from = new InternetAddress(fromAddress);
         // 设置邮件消息的发送者
         mailMessage.setFrom(from);
         // 创建邮件的接收者地址,并设置到邮件消息中
         Address to = new InternetAddress(toAddress);
         // Message.RecipientType.TO属性表示接收者的类型为TO
         mailMessage.setRecipient(Message.RecipientType.TO, to);
         // 设置邮件消息的主题
         mailMessage.setSubject(subject);
         // 设置邮件消息发送的时间
         mailMessage.setSentDate(new Date());
         // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象
         Multipart mainPart = new MimeMultipart();
         // 创建一个包含HTML内容的MimeBodyPart
         BodyPart html = new MimeBodyPart();
         // 设置HTML内容
         html.setContent(content, "text/html; charset=utf-8");
         mainPart.addBodyPart(html);
         // MiniMultipart对象设置为邮件内容
         mailMessage.setContent(mainPart);
         // 发送邮件
         Transport.send(mailMessage);
         return true;
      } catch (MessagingException ex) {
         ex.printStackTrace();
      }
      return false;
   }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值