Java代码实现 email 邮件发送

1.加入依赖pom文件

        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>
        <!--apache email -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.4</version>
        </dependency>

2.代码实现邮件发送-上面依赖jar包可以引到Message/Transport

package com.sheng.executor;

import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

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.MimeBodyPart;
import javax.mail.internet.MimeMultipart;


/**
 * @Author jiangzhisheng
 * @Date 2020/5/12 17:50
 * @Version 1.0
 */
public class SendEmail {
	/**
	 * 发件人邮箱地址
	 */
	private static String fromEmail = "auto@163.com";
	/**
	 * 发件人,和邮箱地址保持一致
	 */
	private static String user = "auto@163.com";
	/**
	 * 收件人邮箱
	 */
	private static String toMail = "****@qq.com";
	/**
	 * 发件人邮箱客户端授权码 - 这里使用的网易163邮箱,且授权码是唯一的,切记要记住
	 */
	private static String password = "******";
	/**
	 * 发件人的邮箱服务器 - 网易163邮箱记得打开POP3/SMTP/IMAP服务
	 */
	private static String mailHost = "smtp.163.com";

	/**
	 * 发送验证信息的邮件
	 * @param toEmail
	 * @param content
	 * @param title
	 */
	public static boolean sendMail(String toEmail, String content, String title) {
		Properties properties = new Properties();
		/**
		 * 设置发送邮件的邮件服务器的属性
		 */
		properties.put("mail.smtp.host", mailHost);
		/**
		 * 用户名和密码的校验授权,这样才能通过验证(必须为true)
		 */
		properties.put("mail.smtp.auth", "true");
		/**
		 * 用刚刚设置好的properties对象构建一个session
		 * 这个session是让开发人员看执行过程的,下面建立发送邮箱连接
		 */
		Session session = Session.getDefaultInstance(properties);
		/**
		 * debug调试显示发送邮件的过程中在console处的过程信息,
		 */
		session.setDebug(true);
		/**
		 * 用session为参数定义消息对象
		 */
		MimeMessage message = new MimeMessage(session);
		try {
			/**
			 * 发件人地址
			 */
			message.setFrom(new InternetAddress(fromEmail));
			/**
			 * 收件人地址
			 */
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
			/**
			 * 邮件标题
			 */
			message.setSubject(title);
			/**
			 * 向multipart对象中添加邮件的各个部分内容,包括内容和附件
			 */
			Multipart multipart = new MimeMultipart();
			/**
			 * 邮件内容
			 */
			BodyPart contentPart = new MimeBodyPart();
			/**
			 * 设置文本类型和编码格式utf-8
			 */
			contentPart.setContent(content, "text/html;charset=utf-8");
			multipart.addBodyPart(contentPart);
			message.setContent(multipart);
			message.saveChanges(); // 保存变化
			/**
			 * 连接服务器的邮箱
			 */
			Transport transport = session.getTransport("smtp");
			/**
			 * 发送邮件 服务器/邮箱地址/授权码
			 */
			transport.connect(mailHost, user, password);
			transport.sendMessage(message, message.getAllRecipients());
			transport.close();
			System.out.println("测试邮件已发送成功!!!");
		} catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}

	public static void main(String[] args) {
		String content= "你好啊,亲爱的召唤师,超高爆率精品手游《一人之下》等你来战!!!点击链接<a href='http://www.baidu.com'>进入游戏</a>有100元惊喜大礼包噢";
		String title = "测试小通知";
		sendMail(toMail, content, title);
	}

}

3.网易163邮箱必须打开POP3/SMTP/IMAP服务

登录网易163 - 设置 -  POP3/SMTP/IMAP - 接下来开启就行了,很简单(第一次开启的话,授权码最好记住了)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值