admin管理员组

文章数量:1663660

pom配置文件

<!-- 支持发送邮件 -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mail</artifactId>
			<version>1.4.5</version>
		</dependency>

工具类一:

import net.sf.json.JSONObject;

public class CalculatorUtil {

	public static String getJSONString(int code){
		JSONObject json = new JSONObject();
		json.put("code", code);
		return json.toString();
		}

	public static String getJSONString(int code, String msg){
		JSONObject json = new JSONObject();
		json.put("code", code);
		json.put("msg", msg);
		return json.toString();
	}
}

工具类二:

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.util.MailSSLSocketFactory;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

public class SendmailUtil {
	//邮件服务器主机名
	// QQ邮箱的 SMTP 服务器地址为: smtp.qq
	private static String myEmailSMTPHost = "smtp.qq";

	/*
	 * //发件人邮箱 private static String myEmailAccount = "837125276@qq";
	 * //发件人邮箱密码(授权码) //在开启SMTP服务时会获取到一个授权码,把授权码填在这里 private static String
	 * myEmailPassword = "lmblnkohvbgrbcaa";
	 */

	//发件人邮箱
	private static String myEmailAccount = "*****";
	//在开启SMTP服务时会获取到一个授权码,把授权码填在这里
	private static String myEmailPassword = "******";

	/**
     * 邮件单发(自由编辑短信,并发送,适用于私信)
     *
     * @param toEmailAddress 收件箱地址
     * @param emailTitle 邮件主题
     * @param emailContent 邮件内容
     * @throws Exception
     */
	public static void sendEmail(String toEmailAddress, String emailTitle, String emailContent) throws Exception{
		Properties props = new Properties();

		// 开启debug调试
		props.setProperty("mail.debug", "true");

		// 发送服务器需要身份验证
		props.setProperty("mail.smtp.auth", "true");

		// 端口号
		props.put("mail.smtp.port", 465);
		//设置邮件服务器主机名
		props.setProperty("mail.smtp.host", myEmailSMTPHost);

		// 发送邮件协议名称
		props.setProperty("mail.transport.protocol", "smtp");

		/**SSL认证,注意腾讯邮箱是基于SSL加密的,所以需要开启才可以使用**/
		MailSSLSocketFactory sf = new MailSSLSocketFactory();
		sf.setTrustAllHosts(true);
		System.err.println("sdsdsds");
		//设置是否使用ssl安全连接(一般都使用)
		props.put("mail.smtp.ssl.enable", "true");
		props.put("mail.smtp.ssl.socketFactory", sf);

		//创建会话
		Session session = Session.getInstance(props);

		//获取邮件对象
		//发送的消息,基于观察者模式进行设计的
		Message msg = new MimeMessage(session);

		//设置邮件标题
		msg.setSubject(emailTitle);

		//设置邮件内容
		//使用StringBuilder,因为StringBuilder加载速度会比String快,而且线程安全性也不错
		StringBuilder builder = new StringBuilder();

		//写入内容
		builder.append("\n" + emailContent);

		//写入我的官网
		builder.append("!");

		//定义要输出日期字符串的格式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		//在内容后加入邮件发送的时间
		builder.append("\n时间:" + sdf.format(new Date()));

		//设置显示的发件时间
		msg.setSentDate(new Date());

		//设置邮件内容
		msg.setText(builder.toString());

		//设置发件人邮箱
		// InternetAddress 的三个参数分别为: 发件人邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
		msg.setFrom(new InternetAddress(myEmailAccount,"阿里巴巴", "UTF-8"));

		//得到邮差对象
		Transport transport = session.getTransport();

		//连接自己的邮箱账户
		//密码不是自己QQ邮箱的密码,而是在开启SMTP服务时所获取到的授权码
		//connect(host, user, password)
		transport.connect( myEmailSMTPHost, myEmailAccount, myEmailPassword);

		//发送邮件
		transport.sendMessage(msg, new Address[] { new InternetAddress(toEmailAddress) });

		//将该邮件保存到本地
		OutputStream out = new FileOutputStream("MyEmail.eml");
		msg.writeTo(out);
		out.flush();
		transport.close();
	}

工具类三:

import java.util.Random;

public class VerifyCodeUtil{

	//验证码生成范围
	//public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
	public static final String VERIFY_CODES = "0123456789";

	/**
     * 使用系统默认字符源生成验证码
     * @param verifySize 验证码长度
     * @return
     */
	public static String generateVerifyCode(int verifySize){
		return generateVerifyCode(verifySize, VERIFY_CODES);
	}

	/**
     * 使用指定源生成验证码
     * @param verifySize 验证码长度
     * @param sources 验证码字符源
     * @return
     */
	public static String generateVerifyCode(int verifySize, String sources){
		if(sources == null || sources.length() == 0){
			sources = VERIFY_CODES;
		}
		int codesLen = sources.length();
		Random rand = new Random(System.currentTimeMillis());
		StringBuilder verifyCode = new StringBuilder(verifySize);
		for(int i = 0; i < verifySize; i++){
			verifyCode.append(sources.charAt(rand.nextInt(codesLen - 1)));
		}
		return verifyCode.toString();
	}
}

测试类:

public static void main(String[] args) {
		//收件人邮箱地址
		String toEmailAddress="****";
		try{
			//生成验证码
			String verifyCode = VerifyCodeUtil.generateVerifyCode(6);

			//邮件主题
			String emailTitle = "【阿里巴巴】";

			//邮件内容
			String emailContent = "您好!我司【阿里巴巴】为了响应国家2020年全面消灭贫困人员计划的顺利以及响应全面建设小康社会的号召,检测到您为重度贫困人员,请您打开支付宝首页搜“562523736”领红包,领到大红包的小伙伴赶紧使用哦!红包金额0-" + verifyCode + "不等,每天有效";

			//发送邮件
			SendmailUtil.sendEmail(toEmailAddress, emailTitle, emailContent);
		}catch(Exception e){
			}
		}

本文标签: 接口邮箱SpringBoot