javaWeb实现邮件发送

版权声明:Mr.O版权所有 转载请标明出处 https://blog.csdn.net/qq_28189423/article/details/86576959

本内容主要用于java代码中,邮件的发送,具体步骤分成以下三点:

1、开启邮箱POP3服务

邮箱->设置->账户

开启POP3服务

点击生成授权码获取授权码  此授权码在之后将作为邮箱密码使用

2、使用context.xml的配置方便修改参数,也可以使用properties等其他方式配置。 

<Context>
	<!-- 邮箱 -->
	<Environment name="emailUser" value="[email protected]" type="java.lang.String"/>
	<!-- 邮箱密码 第三方密码通过邮箱中的POP3支持获得的授权码 -->
	<Environment name="emailPwd" value="qogizwftggbzgeca" type="java.lang.String"/>
	<!-- 邮箱服务器 qq邮箱服务器 -->
	<Environment name="emailHost" value="smtp.qq.com" type="java.lang.String"/>
	<!-- 使用密码认证 -->
	<Environment name="emailAuth" value="true" type="java.lang.String"/>
	<!-- 通信协议 smtp -->
	<Environment name="emailProtocol" value="smtp" type="java.lang.String"/>
	<!-- 通信端口号 25 -->
	<Environment name="emailPort" value="25" type="java.lang.Integer"/>
</Context>


3、定义静态方法发送邮件

需要引入jar包 javax.mail-1.5.1.jar

jar包下载地址  https://pan.baidu.com/s/1cpfcRp_arEIB8XO0F39uFQ

import java.util.Properties;

import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class SendJMail {
	
	/**
	 * 
	 * @param to  		收件人邮箱账号
	 * @param emailMsg  邮件内容
	 * @return
	 */
	public static boolean sendMail(String to, String emailMsg) {
		
		try {
			Context context = new InitialContext();
			String emailUser = (String)context.lookup("java:comp/env/emailUser");
			String emailPwd = (String)context.lookup("java:comp/env/emailPwd");
			String emailHost = (String)context.lookup("java:comp/env/emailHost");
			String emailAuth = (String)context.lookup("java:comp/env/emailAuth");
			String emailProtocol = (String)context.lookup("java:comp/env/emailProtocol");
			int emailPort = (Integer)context.lookup("java:comp/env/emailPort");
			
			//获取系统环境信息
			Properties props = System.getProperties();
			//设置邮件服务器
			props.setProperty("mail.smtp.host", emailHost); 
			//设置密码认证
			props.setProperty("mail.smtp.auth", emailAuth);
			//设置传输协议
			props.setProperty("mail.transport.protocol", emailProtocol);
			//创建session对象
			Session session = Session.getInstance(props);
			//设置输出日志
			session.setDebug(true);
			
			//邮件发送对象
			MimeMessage message = new MimeMessage(session);
			//设置发件人
			message.setFrom(new InternetAddress(emailUser));
			//设置邮件主题
			message.setSubject("测试邮件");
			//设置邮件内容
			//message.setText("Welcome to JavaMail World!");
			//如果带网页内容使用Content发送
			message.setContent((emailMsg),"text/html;charset=utf-8");

			//获取邮件发送管道
			Transport transport=session.getTransport();
			//连接管道
			transport.connect(emailHost,emailPort, emailUser, emailPwd);
			//发送邮件
			transport.sendMessage(message,new Address[]{new InternetAddress(to)});
			//关闭管道
			transport.close();
			return true;
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		catch (MessagingException e) {
			e.printStackTrace();
			return false;
		}
	}
}

联网状态下,调用本方法即可发送电子邮件。

猜你喜欢

转载自blog.csdn.net/qq_28189423/article/details/86576959