JAVA实现发送QQ邮件

1.使用jar包

  • mail-1.4.jar
  • activation-1.1.1.jar 

2.QQ邮箱需获取相应的权限

  QQ邮箱–>邮箱设置–>账户–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启POP3/SMTP服务,然后获取16位授权码(注意不要将授权码泄露,一个账户可以拥有多个授权码)

  

3.实现发送简单的纯文本信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//1.创建Properties配置服务器基本信息
Properties pro=new Properties();
pro.setProperty("mail.smtp.host","邮件服务器地址");
//设置传输协议
pro.setProperty("mail.transport.protocol","smtp");
//设置用户的认证方式
pro.setProperty("mail.smtp.auth","true");
//QQ设置SSL加密
MailSSLSocketFactory sf=new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
pro.setProperty("mail.smtp.ssl.enable","true");
pro.put("mail.smtp.ssl.socketFactory",sf);
 
//2.创建Session对象
Session session=Session.getInstance(pro);
//开启debug模式
session.setDebug(true);
 
//3.创建Transport对象
Transport transport=session.getTransport();
//连接邮件服务器
transport.connect("邮件服务器地址","发送人邮件地址","登录密码");
 
//4.创建MimeMessage对象
MimeMessage message=new MimeMessage(session);
//设置发件人地址
message.setFrom(new InternetAddress(sendAddress));
//设置收件人地址
message.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(getAddress));
//设置邮件主题
message.setSubject(subject,"UTF-8");
//设置邮件正文
message.setText(content, "text/html;charset=UTF-8");
//设置邮件的发送时间,默认立即发送
message.setSentDate(new Date());
//发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message,message.getAllRecipients());
//关闭连接
transport.close();

 4.发送带图片的QQ邮件(其他不变修改message.setText(content, "text/html;charset=UTF-8");为以下代码即可)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
MimeBodyPart image=new MimeBodyPart();
//加载图片封装为DataHandler对象
DataHandler handler=new DataHandler(new FileDataSource(图片存放的位置));
image.setDataHandler(handler);
//设置图片id
image.setContentID(唯一的ID字符串);
//准备文本
MimeBodyPart text=new MimeBodyPart();
text.setContent("这是一个图片<img src='cid:唯一的ID字符串'>","text/html;charset=utf-8");
//拼接邮件
MimeMultipart content=new MimeMultipart();
content.addBodyPart(image);
content.addBodyPart(text);
content.setSubType("related");<em id="__mceDel" style="background-color: rgba(255, 255, 255, 1); font-family: "PingFang SC", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px"> </em>

5.发送带附件的QQ邮件(其他不变修改message.setText(content, "text/html;charset=UTF-8");为以下代码即可)

1
2
3
4
5
6
7
8
9
10
MimeBodyPart image=new MimeBodyPart();
//加载图片封装为DataHandler对象
DataHandler handler=new DataHandler(new FileDataSource(图片存放的位置));
image.setDataHandler(handler);
//设置文件名
image.setFileName("唯一文件名");
//拼接邮件
MimeMultipart content=new MimeMultipart();
content.addBodyPart(image);
content.setSubType("mixed");
posted @   稚终KINO  阅读(333)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示