使用Java发送邮件

jar包的下载地址:https://mvnrepository.com/artifact/javax.mail/mail/1.4.7

package com.shang;

import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;
import java.util.Properties;

/**
 * 发送邮件工具类
 * 
 * @author shang
 * @date 2019年3月19日
 */

public class SendEmailUtil {

public static void main(String[] args) {
		String receiver = "xxx@163.com";
		String subject = "测试邮件";
		String msg = "<div style='color: red;'>你有一个验证,<div>请<a href = http://www.baidu.com>点击</a>查看!</div>";
		sendMail(receiver, subject, msg);
	}

	/**
	 * 发送邮件的方法
	 * 
	 * @param receiver 收件人邮箱
	 * @param subject  邮件主题
	 * @param msg      邮件内容
	 */
	public static void sendMail(String receiver, String subject, String msg) {
		//创建Properties对象
		Properties props = new Properties();
		// 设置邮箱客户端类型
		props.setProperty("mail.transport.protocol", "SMTP");
		// 设置邮箱服务器,这里设置的是新浪的邮箱服务器.可以根据自己的需求进行更改为对应的邮箱服务器
		props.setProperty("mail.host", "smtp.sina.com");
		// 指定验证为true
		props.setProperty("mail.smtp.auth", "true");
		// 创建验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				// 发邮件的账号和密码,此处需要到邮箱官网开启SMTP,P0P3,IMAP服务,然后获取授权码作为第三方登录密码,没有开启授权码,则设置为登录密码
				//如何开启自行百度
				return new PasswordAuthentication("xxx@sina.com", "xxxxxx");
			}
		};

		// 创建一个Session
		Session session = Session.getInstance(props, auth);
		// 创建一个Message,它相当于是邮件对象
		Message message = new MimeMessage(session);
		try {
			// 设置发件人
			message.setFrom(new InternetAddress("xxx@sina.com"));
			// 设置发送方式与接收者
			message.setRecipient(RecipientType.TO, new InternetAddress(receiver));
			// 设置邮件主题
			message.setSubject(subject);
			// 设置邮件内容
			// 方式一:setText();邮件的内容为文本格式,换行使用\n
			// message.setText("邮箱内容是:\n你有一个消息通知!");
			// 方式二:setContent;邮件内容可以添加链接,内容可以识别HTML
			message.setContent(msg, "text/html;charset=utf-8");
			// 创建 Transport用于将邮件发送
			Transport.send(message);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		}

	}

}

收到的邮件格式:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴黎有个小铁匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值