使用java实现qq邮箱信息的发送(纯java实现)
2023-09-11 14:16:33 时间
需要的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的发送啦!
相关文章
- java虚拟机学习-JVM内存管理:深入Java内存区域与OOM(3)
- 【JAVA】Eclipse中开启java和xml智能提示功能(图文,已解决!)
- java.lang.IllegalArgumentException: Wrong state classs
- java动态获取上传文件的编码类型
- 【java细节】Java代码忽略https证书:No subject alternative names present
- 最新秋招,Java八股文!含答案,JAVA核心知识点最详细版(面试必备)
- java实现QQ、微信等第三方账号登陆
- java在Linux执行命令Java在Windows执行命令
- 【Java】详解Java解析XML的四种方法
- 【Java】List排序
- Could not create local repository at G:javarepository -> [Help 1]
- 《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 2.2 创建Saluton程序
- 《Java EE核心框架实战》—— 2.5 将SQL语句作为字符串变量传入
- 《Java程序员面试秘笈》—— 1.8 守护线程的创建和运行
- Java ConcurrentHashMap (Java代码实战-005)
- Java线程锁,synchronized、wait、notify详解--java 管程
- Java打印输出:java天龙八部私服
- 【华为OD机试真题 java、python、c++、jsNode】查找充电设备组合(100%通过+复盘思路)
- (服务器&客户端)网络通信是怎么实现的?7000字爆肝----原来java网络编程技术功不可没(多线程,URL,InetAddressm,TCP,UDP)集结
- java中的final关键字
- java实现类似qq的窗口对聊
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
- Java Applet读写client串口——终极篇
- Java小白入门200例18之随机数的使用
- java泛型demo
- 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....
- 【Java I/O 流】文件的操作——java.io.File 类详解