java实现发送QQ邮箱

摘要:
一、前期准备准备两个qq邮箱号,本例使用的是自己的两个邮箱syc582535560@foxmail.com2212444549@qq.com下载javax.mail.jarjar包如使用maven,在pom.xml里添加javax.mailmail1.4.1˂/vers

一、前期准备

准备两个qq邮箱号,本例使用的是自己的两个邮箱

syc582535560@foxmail.com 2212444549@qq.com

下载javax.mail.jar jar包

如使用maven,在pom.xml里添加

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

邮件的发送方要开启POP3 和SMTP服务--即发送qq邮件的账号要开启POP3 和SMTP服务

登陆qq邮箱—点击设置—点击—账户—找到:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 —点击开启

开启后会得到一个授权码! –注意:这个一定要记住,一会用到

建立测试代码

public class Mail {
private static MimeMessage message;
public static void main(String[] args) throws MessagingException {
// Security.addProvider(new Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//QQ邮箱服务器
String smtpHost="smtp.qq.com";
//邮箱用户名,即QQ账号(自定义)
final String username = "syc582535560@foxmail.com";
//邮箱授权码(自定义)
final String password = "hafgyzlgfdzkbcdh";
//要发送到的邮箱(自定义)
String to = "2212444549@qq.com";
//自己的邮箱(自定义)
String from = "syc582535560@foxmail.com";
Transport transport;
Properties props = new Properties();
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.auth", "true");
props.put("mail.smtp.host",smtpHost);
props.put("mail.smtp.username", username);
props.put("mail.smtp.password", password);
Session session = Session.getDefaultInstance(props, new Authenticator() {
//身份认证
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
InternetAddress[] addresses = {new InternetAddress(to)};
message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO,addresses);
message.setSubject("singhead数据库缺失的号码段");//发送标题(自定义)
message.setSentDate(new Date());
message.setText("singhead数据库缺失的号码段");//发送内容(自定义)
transport = session.getTransport("smtp");
transport.connect(smtpHost, username, password);
transport.send(message);
System.out.println("email has been sent");
}
}

写好测试代码之后,点击运行即可、

需下载mail.jar包

获取16位SMTP命令步骤
在这里插入图片描述
在这里插入图片描述
默认是关闭的 ,将他开启获取16位SMTP命令
java实现发送QQ邮箱第3张
点击进行验证获取16位SMTP命令
java实现发送QQ邮箱第4张

package com.zking.test;

import java.util.Properties;

import javax.mail.Authenticator;
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 Yte {
	  public static void main(String[] args) throws AddressException,MessagingException {       
		   
	        // 创建Properties 类用于记录邮箱的一些属性
	        Properties props = new Properties();
	        // 表示SMTP发送邮件,必须进行身份验证
	        props.put("mail.smtp.auth", "true");
	        //此处填写SMTP服务器
	        props.put("mail.smtp.host", "smtp.qq.com");
	        //端口号,QQ邮箱端口587
	        props.put("mail.smtp.port", "587");
	        // 此处填写,写信人的账号
	        props.put("mail.user", "xxxxxxxxxx@qq.com");
	        // 此处填写16位STMP口令
	        props.put("mail.password", "xxxxxxxx");

	        // 构建授权信息,用于进行SMTP进行身份验证
	        Authenticator authenticator = new Authenticator() {

	            protected PasswordAuthentication getPasswordAuthentication() {
	                // 用户名、密码
	                String userName = props.getProperty("mail.user");
	                String password = props.getProperty("mail.password");
	                return new PasswordAuthentication(userName, password);
	            }
	        };
	        // 使用环境属性和授权信息,创建邮件会话
	        Session mailSession = Session.getInstance(props, authenticator);
	        // 创建邮件消息
	        MimeMessage message = new MimeMessage(mailSession);
	        // 设置发件人
	        InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
	        message.setFrom(form);

	        // 设置收件人的邮箱
	        InternetAddress to = new InternetAddress("xxxxxxxxxx@qq.com");
	        message.setRecipient(RecipientType.TO, to);

	        // 设置邮件标题
	        message.setSubject("标题");

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

	        // 最后当然就是发送邮件啦
	        Transport.send(message);
		   
		   
	   }
}

免责声明:文章转载自《java实现发送QQ邮箱》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Unity游戏开发】不接SDK也能在游戏内拉起加QQ群操作?sort命令下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

shell 脚本 检测域名是否正常

shell 脚本 检测域名是否正常 yumming(){ #函数 web=`cat /root/web.txt` #需要检测的域名 for sum in ${web[*]} #讲需要检测的域名以数组的形式 do curl=`curl -I -m 10 -o /dev/null -s -w %{http_code} $sum...

QQ等级计算方法及图标

在线时长从去年下半年开始统计,使用腾讯QQ(包括在线,隐身,离开状态),使用腾讯TM,或是在Wince平台下用手机登录腾讯QQ,均计入在线时长。在线状态下不即时更新在线时长,每次下线后,更新本次的在线时长和等级。在线时长等级由太阳,月亮,星星三个图标标识。 在线时长积满20小时,即可获得一颗星星,获得第二颗星星需要再累积30小时,获得第三颗星星需要再累积4...

每日技术总结:jquery datetimepicker,微博QQ好友QQ空间微信等分享接口

前言: 1.jquery datetimepicker 今天遇到一个日期控件格式的问题,默认选中显示的并不是设定的值,而是当天的日期。于是去查了一遍文档。 参考文章:jquery datetimepicker 配置参数 官方文档:DateTimePicker jQuery plugin select date and time (找了很久) 耗时2小时,翻...

iOS 第三方登录之 QQ登录

  一. 首先需要下载腾讯qq登录所需的库,下载地址是http://open.qq.com/ 。 需要用到的有TencentOpenAPI.framework 和TencentOpenApi_IOS_Bundle.bundle,将两者加入工程。 二.下面就来实现QQ第三方登录 1.声明属性,且viewcontroller实现TencentSessionD...

腾讯QQ头像/QQ网名等相关获取API接口

QQ头像 http://q2.qlogo.cn/headimg_dl?dst_uin=QQ号&spec=100 QQ网名 http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=QQ号 http://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg...

QQ 静态截图程序模拟实现

QQ 静态截图程序模拟实现 看到QQ这样的截图实在忍心不住想,是怎以实现的?想了许久想到一个实现法子,下面就让我给大家展示一下,模拟QQ静态模拟截图,我写的代码比较乱,是想到哪写到哪,我想肯实还有比这更简单的办法!!程序实现思路,程序是基于对话框,无标题栏,系统菜单,最小化框,最大化框,无边框....,程序初始化时,把整个桌面屏幕截图,保存下...