需要的jar包准备:
附上jar包下载链接:mail的jar包下载链接
activation的jar包下载
接下来在我们的浏览器中获取我们的email的邮箱授权码
登录网页上的qq邮箱,找到里面的设置下面的账户
在往下面找到我们的各个服务,如下:
获取授权码
接下来在idea中或者eclipse中创建普通项目就行,在导入我们先前所下载的jar包到lib目录下
接下来就代码实现了
都写在一个类中,代码有点繁琐。。
package zhenghuisheng;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
/**
* qq邮箱授权码:ymihnzrtibgfebjd
*/
public class Email1 {
//授权码
private static String password = "ymihnzrtibgfebjd";
//发送人的qq
private static String myqq = null;
//收件人的qq
private static String userqq = null;
//标题
private static String title = null;
//要输入的内容
private static String textContext = null;
public static void main (String[] args) throws Exception {
myqq = "12345674";
userqq = "12345676";
title = "蔡导晚上好";
textContext = "没错,我就是蔡导,我是演员哈哈";
//使用lamda表达式,
// 可以消息轰炸,哈哈,有点狠
new Thread(()->{
for (int i = 0; i < 10; i++) {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD hh:mm:ss");
String datetime = sdf.format(date);
try {
//调用方法测试
sendEmail(myqq,userqq,title,textContext,datetime);
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}).start();
System.out.println("发送成功!");
}
public static void sendEmail(String myqq, String userqq , String title, String textContext,String time) throws Exception{
Properties properties = new Properties();
//设置qq邮箱的服务器
properties.setProperty("mail.host","smtp.qq.com");
//邮件发送协议
properties.setProperty("mail.transport.protocol","smtp");
//验证用户名以及邮箱授权码
properties.setProperty("mail.smtp.auth","true");
//关于qq邮箱,还要设置SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable","true");
properties.put("mail.smtp.ssl.socketFactory",sf);
//开始发送邮件
//创建定义整个应用程序所需的环境信息的session
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( myqq + "@qq.com",password);
}
});
//开启session,查看程序的运行状态
session.setDebug(true);
//通过session得到transport对象
Transport ts = session.getTransport();
//使用邮箱的用户名和授权码连上邮箱服务器
ts.connect("smtp.qq.com",myqq + "@qq.com",password);
//创建邮件
MimeMessage mimeMessage = new MimeMessage(session);
//指明邮件的发件人
mimeMessage.setFrom(new InternetAddress(myqq + "@qq.com"));
//指明邮件的收件人
mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress( userqq + "@qq.com"));
//邮件的标题
mimeMessage.setSubject(title);
//邮件的文本内容
mimeMessage.setContent(textContext + time,"text/html;charset=utf-8");
//发送邮件
ts.sendMessage(mimeMessage,mimeMessage.getAllRecipients());
//关闭连接
ts.close();
}
}
在运行时在控制台就能看到消息发送的进度了!
可以先试着自己给自己发送
就能发现简单的代码就能实现这个qq的email的发送啦!