java 代码实现163邮箱发送邮件到QQ邮箱
1.创建一个用户类,来接收发送邮件的邮箱地址和授权密码(需要注意的是,这里的密码不是正常使用邮箱的登陆密码,而是客户端生成的另一个专门的授权码 ,这里需要开启相应的发送邮件的服务,这里开启的是pop3/smtp服务)
package appsoft.cd.applications.cd_gcxm.web;import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;class MailAuthenticator extends Authenticator { /** 用户名 */private String username;/** 密码 */ private String password; public MailAuthenticator(String username, String password) {this.username = username;this.password = password;
}
public String getPassword() { return password;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password);
}
public String getUsername() { return username;
}
public void setPassword(String password) { this.password = password;
}
public void setUsername(String username) { this.username = username;
} }
2.编写相应的测试方法(这里的发送邮件的方法是带有相应的附件的,只是做了本地测试,所有相应的邮箱地址都写在了代码里面,这里可以根据需要自己灵活封装读取做变动),具体代码如下:
package appsoft.cd.applications.cd_gcxm.web;import java.util.Properties;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;public class SendToEmils { public static void main(String[] args) throws Exception { // 配置信息 Properties properties = new Properties(); properties.put("mail.smtp.host", "smtp.163.com");properties.put("mail.smtp.auth", "true");// 根据邮件的会话属性构造一个发送邮件的Session,//这里需要注意的是用户名那里不能加后缀,否则便不是用户名了 //还需要注意的是,这里的密码不是正常使用邮箱的登陆密码,而是客户端生成的另一个专门的授权码 MailAuthenticator authenticator = new MailAuthenticator("邮箱地址", "授权码"); Session session = Session.getInstance(properties, authenticator); // 根据Session 构建邮件信息 Message message = new MimeMessage(session);// 创建邮件发送者地址 Address from = new InternetAddress("邮箱地址"); // 设置邮件消息的发送者 message.setFrom(from);// 验证收件人邮箱地址 List<String> toAddressList = new ArrayList<String>();toAddressList.add("发送的邮箱地址"); StringBuffer buffer = new StringBuffer();if (!toAddressList.isEmpty())
{ String regEx = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"; Pattern p = Pattern.compile(regEx);for (int i = 0; i < toAddressList.size(); i++) { Matcher match = p.matcher(toAddressList.get(i));if (match.matches()) {buffer.append(toAddressList.get(i)); if (i < toAddressList.size() - 1) { buffer.append(","); } } } } String toAddress = buffer.toString(); if (!toAddress.isEmpty()) { // 创建邮件的接收者地址 Address[] to = InternetAddress.parse(toAddress);// 设置邮件接收人地址 message.setRecipients(Message.RecipientType.TO, to);// 邮件主题 message.setSubject("这是测试的邮件"); // 邮件容器 MimeMultipart mimeMultiPart = new MimeMultipart(); // 设置HTML BodyPart bodyPart = new MimeBodyPart();// 邮件内容 String htmlText = "测试的邮件发送成功了"; bodyPart.setContent(htmlText, "text/html;charset=utf-8"); mimeMultiPart.addBodyPart(bodyPart); // 添加附件 List<String> fileAddressList = new ArrayList<String>(); fileAddressList.add("E:\\Test\\附件文件名称"); if (fileAddressList != null) { BodyPart attchPart = null; for (int i = 0; i < fileAddressList.size(); i++) { if (!fileAddressList.get(i).isEmpty()) { attchPart = new MimeBodyPart(); // 附件数据源 FileDataSource source = new FileDataSource( fileAddressList.get(i)); // 将附件数据源添加到邮件体 attchPart.setDataHandler(new DataHandler(source)); // 设置附件名称为原文件名 attchPart.setFileName(MimeUtility.encodeText(source.getName())); mimeMultiPart.addBodyPart(attchPart); } } } message.setContent(mimeMultiPart); message.setSentDate(new Date()); // 保存邮件 message.saveChanges(); // 发送邮件 Transport.send(message); } } }
测试邮件发送成功,这里我是用163邮箱给QQ邮箱做的测试,测试是成功通过的,可以使用自己的qq邮箱申请授权码进行测试
java 代码实现163邮箱发送邮件到QQ邮箱相关推荐
- java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例
下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相 ...
- java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例
这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...
- 163邮箱java通用下载_java_java实现163邮箱发送邮件到qq邮箱成功案例,下载和上传附件、发送短信和 - phpStudy...
java实现163邮箱发送邮件到qq邮箱成功案例 下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现 ...
- nodejs完成从163邮箱发送邮件到qq邮箱
/*发送邮件第三方模块nodemailer专门用于发送邮件1 下载 命令行下载:npm install nodemailer2 在需要使用的文件中导入下载的第三方模块+ let nodemailer ...
- 使用QQ邮箱发送邮件,QQ邮箱的smtp设置
首先要开启QQ邮箱的smtp服务,默认是关闭的. 登录QQ邮箱,点"设置" - "帐户". 找到"POP3/SMTP服务"和"IM ...
- java 代码发送邮件添加附件_Java实现163邮箱发送邮件到QQ邮箱
先创建一个maven的普通项目 添加依赖,附在文档末尾 其中几个注意的地方 主方法入口 有一个包下载不下来,手动导入下 准备一个配置文件和主方法类 针对配置文件编写一个类用来接收配置文件中的配置信息 ...
- java 163邮箱发邮件_Java实现163邮箱发送邮件到QQ邮箱
先创建一个maven的普通项目 添加依赖,附在文档末尾 其中几个注意的地方 主方法入口 有一个包下载不下来,手动导入下 准备一个配置文件和主方法类 针对配置文件编写一个类用来接收配置文件中的配置信息 ...
- JavaMail发送邮件到qq邮箱的过程中遇到的问题及解决办法
今天在使用javamail发送邮件到qq邮箱的过程中,遇到了一些问题 刚开始按网上的代码写 // 发送纯文本信息 Properties prop = new Properties(); prop.se ...
- golang如何发送邮件(qq邮箱)
文章目录 golang发送邮件(qq邮箱) 前期准备 代码编写 效果展示 golang发送邮件(qq邮箱) 前期准备 golang发送邮件的功能,我们今天介绍golang发送qq邮件,相信大家都有qq ...
最新文章
- 世界知名XML专家力作 ——《重构HTML:改善Web应用的设计》
- 动态取得当前程序的版本号
- 计算机视觉与图像处理、模式识别、机器学习学科之间的关系
- 思科网络技术学院CCNA教程
- 【Java】类加载过程
- Android之使用MediaMetadataRetriever类获取视频第一帧
- 2022春节档新片预售总票房达1.08亿
- CPU中的Little Endian与Big Endian
- python openpyxl创建excel文件-python之openpyxl生成excel文件
- 基于单片机的人体心率脉搏检测系统
- [境内法规]中国人民银行关于印发《反洗钱现场检查管理办法(试行)》的通知—银发〔2007〕175号
- pandas填充空数组_Pandas 数据处理:空值清理、联级、合并、缺省空值填充
- “你打算怎么构建云安全资源池”
- 国密SM算法有哪些?
- python蜂鸣器_Python与硬件学习笔记:蜂鸣器(转)
- matlab求n阶行列式,发福利了,线性代数n阶行列式计算器!(需要的拿走吧)
- 现代制造业信息化建设的主要内容
- 计算机网络大学宿舍组网方案设计,学生公寓组网方案推荐 精品推荐
- 开源公告|腾讯代码安全指南开源,涉及C/C++、Go等六门编程语言
- UNI-APP_uni-app uni.getUserProfile微信授权,微信授权信息显示微信用户解决
热门文章
- kali更新源没有mysql_Kali更新源添加
- java单链表通讯录_[源码和文档分享]C++实现的基于链表的通讯录管理系统
- 黄海高程和海拔高程之间的转换
- linux资源共享方法
- CORD-19数据集以及相关分析代码介绍
- PNA肽核酸修饰多肽Pro-Phe-Arg-pNA (S-2302)|Dnp-Gly-X-L-Pro-Gly-pNA
- 从零开始上传开源项目到Maven中央仓库
- 2021年全球十大数据安全事件
- [转]用Hadoop,还是不用Hadoop?
- c语言用typedef定义结构体,C语言结构体定义 typedef struct