java邮件发送工具类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q394895302/article/details/81004293

项目中要用到邮箱验证功能,所有写了一个在项目中用到的邮箱工具类,主要是用在本项目中的,参数都是调用方法的时候传递的值;具体实现代码如下:

package com.scmofit.gps.common;

import java.util.Properties;

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

public class EmailUtil {
	
	/**
	 * 
	 * @Title:sendEmail   
	 * @Description: 邮件发送
	 * @param:@param request 激活路径
	 * @param:@param from 发件人电子邮箱
	 * @param:@param authCode 授权码或密码
	 * @param:@param reader 收件人电子邮箱
	 * @param:@param imgUrl 图标icon
	 * @param:@param userName 注册用户名
	 * @param:@param expirationTime 失效时长(分钟)  
	 * @return:void      
	 * @throws
	 */
	public static void sendEmail(String request,String from,String authCode,String reader,String imgUrl,String userName,int expirationTime) {
		// 1.创建连接对象javax.mail.Session
		// 2.创建邮件对象 javax.mail.Message
		// 3.发送一封激活邮件
//		String host = "smtp.qq.com"; // 指定发送邮件的主机smtp.qq.com(QQ)|smtp.163.com(网易)
//		String code = UUID.randomUUID().toString().replaceAll("-", "");
		String host = "smtp.xxxxx.gov.cn";
		Properties properties = System.getProperties();// 获取系统属性

//		properties.setProperty("mail.smtp.host", host);// 设置邮件服务器
//		properties.setProperty("mail.smtp.auth", "true");// 打开认证
		
		properties.setProperty("mail.transport.protocol", "IMAP");
		properties.setProperty("mail.smtp.host", host);
		properties.setProperty("mail.smtp.port", "25");
		 // 指定验证为true
		properties.setProperty("mail.smtp.auth", "true");
		properties.setProperty("mail.smtp.timeout","0");
		try {
			//QQ邮箱需要下面这段代码,163邮箱不需要
//			MailSSLSocketFactory sf = new MailSSLSocketFactory();
//			sf.setTrustAllHosts(true);
//			properties.put("mail.smtp.ssl.enable", "true");
//			properties.put("mail.smtp.ssl.socketFactory", sf);
			
			// 1.获取默认session对象
			Session session = Session.getDefaultInstance(properties, new Authenticator() {
				public PasswordAuthentication getPasswordAuthentication() {
					return new PasswordAuthentication(from, authCode); // 发件人邮箱账号、授权码
				}
			});

			// 2.创建邮件对象
			Message message = new MimeMessage(session);
			// 2.1设置发件人
			message.setFrom(new InternetAddress(from));
			// 2.2设置接收人
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(reader));
			// 2.3设置邮件主题
			message.setSubject("邮箱激活");
			// 2.4设置邮件内容
			String content = "<html><head></head><body><div style='height: 50px;background-color: #5F92CA;color: #E9500c;font-size: 30px;'><img src='"+imgUrl+"'/>四川XXXXXXXXXX公司</div>\r\n" + 
					"	<h1>亲爱的<span style='color: red;'>"+userName+"</span>,您好:</h1>\r\n" + 
					"	  感谢您注册本站账号,您的登录用户名:<span style='color: red;'>"+userName+"</span><br /><br />\r\n" + 
					"	  请点击以下链接激活账号:<br />\r\n" + 
					"	<a href='"+request+"'>"+request+"</a>\r\n" + 
					"	<br />\r\n" + 
					"	(如果链接无法点击,请将它复制并粘贴到浏览器的地址栏中访问)\r\n" + 
					"	<br />\r\n" + 
					"	本邮件是系统自动发送的,请勿直接回复;感谢您的访问,祝您使用愉快。(该链接在5分钟内有效,"+expirationTime+"分钟后点击链接系统将重新发送激活链接)\r\n" + 
					"	<br />\r\n" + 
					"	<br />\r\n" + 
					"	<br />\r\n" + 
					"	<hr />\r\n" + 
					"	<div style='width: 100%;text-align: right;'>四川XXXXXXXXXX公司<br />\r\n" + DateUtil.getNowDates()+
					"	</div></body></html>";
			message.setContent(content, "text/html;charset=UTF-8");
			// 3.发送邮件
			Transport.send(message);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

代码中用到的包是用maven做的

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4</version>
        </dependency>

猜你喜欢

转载自blog.csdn.net/q394895302/article/details/81004293
今日推荐