Java发送邮件工具类

Java发送邮件工具类java如何发送邮件?这里有一个简单易用的java代码发送邮件的工具类

大家好,又见面了,我是你们的朋友全栈君。

0. 准备工作

发送邮箱需要去开启 POP3/SMTP服务, 下面所有的密码都是授权码!!!!
qq邮箱的设置在QQ邮箱-->设置-->账号-->进行设置
这里写图片描述
这里写图片描述

1.一般邮箱

package com.zgd.bos.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils { 
   
	//邮件服务器主机地址
// private static String HOST="localhost";
	private static String HOST="smtp.163.com";
	//帐号
// private static String ACCOUNT = "test@zgd.com";
	private static String ACCOUNT = "test@163.com";
	//密码
// private static String PASSWORD = "123";
	private static String PASSWORD = "zhang123";
	
	
	
	/** * @param toUser 发送邮件给谁 * @param title 邮件的标题 * @param emailMsg 邮件信息 */
	public static void sendMail(String toUser,String title, String emailMsg)throws AddressException, MessagingException { 
   
		// 1.创建一个程序与邮件服务器会话对象 Session
		Properties props = new Properties();
		//设置发送的协议
		props.setProperty("mail.transport.protocol", "SMTP");
		
		//设置发送邮件的服务器
		props.setProperty("mail.host", HOST);
		props.setProperty("mail.smtp.auth", "true");// 指定验证为true

		// 创建验证器
		Authenticator auth = new Authenticator() { 
   
			public PasswordAuthentication getPasswordAuthentication() { 
   
				//设置发送人的帐号和密码 帐号 授权码
				return new PasswordAuthentication(ACCOUNT, PASSWORD);
			}
		};
		//会话
		Session session = Session.getInstance(props, auth);

		// 2.创建一个Message,它相当于是邮件内容
		Message message = new MimeMessage(session);

		//设置发送者
		message.setFrom(new InternetAddress(ACCOUNT));

		//设置发送方式与接收者
		message.setRecipient(RecipientType.TO, new InternetAddress(toUser)); 

		//设置邮件主题
		message.setSubject(title);
		// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");

		//设置邮件内容
		message.setContent(emailMsg, "text/html;charset=utf-8");

		// 3.创建 Transport用于将邮件发送
		Transport.send(message);
	}
	
	
	public static void main(String[] args) throws AddressException, MessagingException { 
   
// MailUtils.sendMail("test@foxmail.com", "祝福邮件2", "哈哈哈");
		MailUtils.sendMail("test@foxmail.com", "祝福邮件2", "这是正文");
	}
	
}

2.qq邮箱

package com.zgd.bos.utils;

import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class MailUtils {
	//邮件服务器主机地址
//	private static String HOST="localhost";
	private static String HOST="smtp.qq.com";
	//帐号
//	private static String ACCOUNT = "zzzgdx@zgd.com";
	private static String ACCOUNT = "guodongzhu@163.com";
	//密码
//	private static String PASSWORD = "123";
	private static String PASSWORD = "zhang123";
	
	
	
	/**
	 * @param toUser  发送邮件给谁
	 * @param title   邮件的标题 
	 * @param emailMsg  邮件信息
	 */
	public static void sendMail(String toUser,String title, String emailMsg)throws AddressException, MessagingException {
		// 1.创建一个程序与邮件服务器会话对象 Session
		Properties props = new Properties();
		//设置发送的协议
		props.setProperty("mail.transport.protocol", "SMTP");
		
		//设置发送邮件的服务器
		props.setProperty("mail.host", HOST);
		props.setProperty("mail.smtp.auth", "true");// 指定验证为true

		// 创建验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
				//设置发送人的帐号和密码      帐号		   授权码
				return new PasswordAuthentication(ACCOUNT, PASSWORD);
			}
		};
		//会话
		Session session = Session.getInstance(props, auth);

		// 2.创建一个Message,它相当于是邮件内容
		Message message = new MimeMessage(session);

		//设置发送者
		message.setFrom(new InternetAddress(ACCOUNT));

		//设置发送方式与接收者
		message.setRecipient(RecipientType.TO, new InternetAddress(toUser)); 

		//设置邮件主题
		message.setSubject(title);
		// message.setText("这是一封激活邮件,请<a href='#'>点击</a>");

		//设置邮件内容
		message.setContent(emailMsg, "text/html;charset=utf-8");

		// 3.创建 Transport用于将邮件发送
		Transport.send(message);
	}
	
	
	public static void main(String[] args) throws AddressException, MessagingException {
//		MailUtils.sendMail("test@foxmail.com", "祝福邮件2", "哈哈哈");
		MailUtils.sendMail("test@foxmail.com", "祝福邮件2", "哈哈哈这是正文");
	}
	
}


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146508.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 读写文件的两种方式

    java 读写文件的两种方式1.情景展示在实际开发过程中,对于文件的读写操作也是经常碰到的,如何用java完成对文件的准确无误的读写呢?2.场景分析在java中,我们可以通过数据流(二进制)来完成对文件的操作;其中,数据

    2022年7月1日
    22
  • 安卓handler源码(androidstudio源码)

    Android多线程还有HandleThread,看名字就可以能感觉到得到,会是handler和Thread的综合使用。那到底什么怎么样的呢,就跟随Android的源码来看看他的工作原理是什么样的。我们先看看他的类注解:先看看官方对他的介绍:【Handyclassforstartinganewthreadthathasalooper.Theloopercanth…

    2022年4月17日
    55
  • 人工智能、云计算、大数据、物联网的关系是什么?「建议收藏」

    人工智能、云计算、大数据、物联网的关系是什么?「建议收藏」  人工智能、云计算、大数据、物联网的关系是什么?    提到智能技术大家首先联想到的就是人工智能、大数据、云计算、物联网等。而很多人对这些名词间的关系模棱两可。因此有必要首先介绍下其间的联系。为了便于读者理解,这里不引用每个名词的通用定义,而采用通俗易懂的方式进行解释。人工智能从狭义角度讲就是以CNN卷积神经网络为代表的模型算法,具体的应用图像识别和语音识别。  目前社会上…

    2022年10月7日
    3
  • springboot启动类–SpringApplication.run()详解

    springboot启动类–SpringApplication.run()详解前言实习的第一个项目是利用springboot完成一个需求,在项目搭建的过程中真正感受到springboot的强大,springboot的起步依赖以及自动配置特性简直不要太爽,在项目搭建的过程中解放了我们的小手。而springboot的启动也非常简单,只需要启动springboot的启动类,springboot会帮助我们准备所有的环境,包括server,监听器,装配spring的上下文等等,s…

    2025年9月3日
    7
  • 漂亮的表格样式(使用CSS样式表控制表格样式)

    漂亮的表格样式(使用CSS样式表控制表格样式)

    2021年9月7日
    52
  • Idea激活码最新教程2023.2.6版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2023.2.6版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2023 2 6 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2023 2 6 成功激活

    2025年5月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号