使用Java实现qq邮箱发送邮件
作者:缺德的伯爵 时间:2023-10-14 18:24:36
本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下
今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送邮件!(这些个服务就是些协议,只有开启了之后就可以做一些操作)
步骤
1、登录QQ邮箱> 设置 > 账户
2、找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启 POP3/SMTP 服务 > 拿到授权码
3、创建maven项目
4、在pom.xml导入依赖包
<!-- java发送邮件jar包 -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
5、创建java类 类名取为:SendEmailManger(注意包别导错了)
package com.xdl.util;
import com.sun.mail.util.MailSSLSocketFactory;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
/**
* 邮件发送
* QQ邮箱--->别的邮箱
* @author shiyunpeng
*/
public class SendEmailManger extends Thread {
private String mailAdr;//邮箱
private String content;//邮件的内容
private String subject;//邮件的题目
public SendEmailManger(String mailAdr, String subject, String content) {
super();
this.mailAdr = mailAdr;
this.subject = subject;
this.content = content;
}
@Override
public void run() {
super.run();
try {
sendMail(mailAdr, subject, content);
} catch (Exception e) {
e.printStackTrace();
}
}
private void sendMail(String mailAdr, String subject, String content) throws Exception {
//加密的邮件套接字协议工厂
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
final Properties props = new Properties();
// 表示SMTP发送邮件,需要进行身份验证
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");
// smtp登陆的账号、密码 ;需开启smtp登陆
props.setProperty("mail.debug", "true");
props.put("mail.user", "发送者邮箱");
props.put("mail.password", "授权码");
// 特别需要注意,要将ssl协议设置为true,否则会报530错误
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
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);
// 设置发件人
try {
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
// 设置收件人
InternetAddress to = new InternetAddress(mailAdr);
message.setRecipient(Message.RecipientType.TO, to);
// 设置抄送
// InternetAddress cc = new InternetAddress("591566764@qq.com");
// message.setRecipient(RecipientType.CC, cc);
// 设置密送,其他的收件人不能看到密送的邮件地址
// InternetAddress bcc = new InternetAddress("mashen@163.com");
// message.setRecipient(RecipientType.CC, bcc);
// 设置邮件标题
message.setSubject(subject);
// 设置邮件的内容体
message.setContent(content, "text/html;charset=UTF-8");
// 发送邮件
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SendEmailManger d = new SendEmailManger("接收邮件的邮箱", "syp:", "我呵呵,啊打: <br/><br/>加油哦!!!!....");
d.start();
}
}
标签:java,发送邮件
0
投稿
猜你喜欢
c# socket编程udp客户端实现代码分享
2023-06-16 05:03:31
Java编程计算兔子生兔子的问题
2023-08-01 15:24:37
Android API开发之SMS短信服务处理和获取联系人的方法
2021-10-23 03:22:15
java-for循环问题
2022-01-22 12:46:53
基于android studio的layout的xml文件的创建方式
2022-10-31 10:52:06
Android自定义Adapter的ListView的思路及代码
2023-10-21 17:56:16
C#中把任意类型的泛型集合转换成SQLXML数据格式的实例
2022-12-24 08:16:21
SpringBoot在Controller层接收参数的n种姿势(超详细)
2023-01-28 00:54:39
Java调用shell命令涉及管道、重定向时不生效问题及解决
2021-07-18 17:02:25
Java中数组在内存中存放原理的讲解
2022-12-10 03:48:35
C#中如何使用Chart图表问题
2023-04-02 16:35:06
详解SpringCloud的负载均衡
2022-03-14 03:42:28
Flutter Android应用启动白屏的解决方案
2022-10-02 04:08:04
C#异步下载文件
2021-10-05 03:23:40
Android应用创建多个快捷方式
2022-10-08 11:26:00
C#浏览器提示跨域问题解决方案
2023-08-30 17:37:28
SpringBoot之导入静态资源详解
2021-06-22 05:01:30
Java 集合概览(小结)
2023-11-08 02:50:37
Spring Data Jpa框架最佳实践示例
2021-11-25 00:43:01
详解SpringBoot注册Windows服务和启动报错的原因
2022-12-28 17:10:09