代码实现发送邮件功能

前言

本篇写的是基于java的邮件发送,基于本demo大家可以做别的拓展,附上源码博主亲测有图有真相,大家觉的好的话点点赞哈!

准备工作

1.准备架包

这里需要用到一个邮箱的jar下载好之后放导入项目中就好了。

email.jar 链接地址:https://pan.baidu.com/s/1PvMd6LqJXZvRP5R-ZUHYTw

提取码:2rj9

2.获取授权码

因为本接口需要对接腾讯qq邮箱的POP3/SMTP服务 它默认是关闭的,我们需要将它开启,并且拿到授权码来进行配置。

步骤:

第一步:

打开QQ邮箱----->点击设置------->点击选项中的账户----->拉下来找到SMTP服务

这里的话点击开启需要用手机发送短信然后拿到授权码。
在这里插入图片描述
第二步:

复制授权码等一下需要配置到代码中。

在这里插入图片描述

配置

SendmailUtil类

这里只需要改两个地方就ok了

  1. 修改:设置发件人邮箱地址这里写上自己的qq号就行了
  2. 修改:改为自己的授权码和账号就ok了transport.connect("自己的qq账号@qq.com", "刚刚拿到的授权码");
package com.liyingdong;

import java.util.Properties;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMessage.RecipientType;

public class SendmailUtil {

	public static String Email(String zhh) throws MessagingException {

		//设置随机验证码
		int sjs = (int) ((Math.random() * 9 + 1) * 100000);
		Properties properties = new Properties();

		properties.put("mail.transport.protocol", "smtp");// 连接协议

		properties.put("mail.smtp.host", "smtp.qq.com");// 主机名

		properties.put("mail.smtp.port", 465);// 端口号

		properties.put("mail.smtp.auth", "true");

		properties.put("mail.smtp.ssl.enable", "true");// 设置是否使用ssl安全连接 ---一般都使用

		properties.put("mail.debug", "true");// 设置是否显示debug信息 true 会在控制台显示相关信息

		// 得到回话对象

		Session session = Session.getInstance(properties);

		// 获取邮件对象
		Message message = new MimeMessage(session);

		// 设置发件人邮箱地址 *

		message.setFrom(new InternetAddress("[email protected]"));

		// 设置收件人地址*
		message.setRecipients(RecipientType.TO, new InternetAddress[] { new InternetAddress(zhh + "@qq.com") });

		// 设置邮件标题 *

		message.setSubject("这是第一封Java邮件");

		// 设置邮件内容 *

		message.setText(sjs + ""); // 为传过来的值

		// 得到邮差对象

		Transport transport = session.getTransport();

		// 连接自己的邮箱账户 *

		transport.connect("[email protected]", "uaigbxwopnseeafd");// 密码为刚才得到的授权码

		// 发送邮件
		transport.sendMessage(message, message.getAllRecipients());
		//返回验证码
		return sjs + "";

	}

}

测试类

你只需要传入指定人的qq号,然后要调用一下方法就行了


package com.liyingdong;

import javax.mail.MessagingException;

/**
 * 
* @ClassName: Test
* @Description: TODO(测试类)
* @author 李瀛东
* @date 2020年6月18日
*
 */
public class Test {

	public static void main(String[] args) {

		
		try {
			String  zhh="2082885180";//发送给指定账号
			String code = SendmailUtil.Email(zhh);
			System.out.println("邮箱验证码:"+code);
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

}

注意事项

其实只需要注意两点

  1. 运行的时候需要保持有网。
  2. 授权码更新的问题,授权码过几天就会进行更新,需要重新获取授权码进行配置

运行效果

控制台
在这里插入图片描述
收件人:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45384482/article/details/106841404