163邮箱java通用下载_java_java实现163邮箱发送邮件到qq邮箱成功案例,下载和上传附件、发送短信和 - phpStudy...
java实现163邮箱发送邮件到qq邮箱成功案例
下载和上传附件、发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相关代码,具体解释可以参考代码中注释:
package test;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
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 com.sun.mail.util.MailSSLSocketFactory;
///**
// *
// * @author tuzongxun123
// * @Description 邮件发送测试类
// */
public class sendMailTest {
public static void main(String[] args) throws Exception {
// 配置信息
Properties pro = new Properties();
pro.put("mail.smtp.host", "smtp.163.com");
pro.put("mail.smtp.auth", "true");
// SSL加密
MailSSLSocketFactory sf = null;
sf = new MailSSLSocketFactory();
// 设置信任所有的主机
sf.setTrustAllHosts(true);
pro.put("mail.smtp.ssl.enable", "true");
pro.put("mail.smtp.ssl.socketFactory", sf);
// 根据邮件的会话属性构造一个发送邮件的Session,这里需要注意的是用户名那里不能加后缀,否则便不是用户名了
//还需要注意的是,这里的密码不是正常使用邮箱的登陆密码,而是客户端生成的另一个专门的授权码
MailAuthenticator authenticator = new MailAuthenticator("tuzongxun123",
"客户端授权码");
Session session = Session.getInstance(pro, authenticator);
// 根据Session 构建邮件信息
Message message = new MimeMessage(session);
// 创建邮件发送者地址
Address from = new InternetAddress("tuzongxun123@163.com");
// 设置邮件消息的发送者
message.setFrom(from);
// 验证收件人邮箱地址
List toAddressList = new ArrayList<>();
toAddressList.add("1160569243@qq.com");
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("java邮件测试");
message.setSubject("为什么错了");
// 邮件容器
MimeMultipart mimeMultiPart = new MimeMultipart();
// 设置HTML
BodyPart bodyPart = new MimeBodyPart();
// 邮件内容
// String htmlText = "java邮件测试111";
String htmlText = "为什么错了";
bodyPart.setContent(htmlText, "text/html;charset=utf-8");
mimeMultiPart.addBodyPart(bodyPart);
// 添加附件
List fileAddressList = new ArrayList();
fileAddressList
.add("C:\\Users\\tuzongxun123\\Desktop\\新建 Microsoft Office Word 文档.docx");
if (fileAddressList != null) {
BodyPart attchPart = null;
for (int i = 0; i < fileAddressList.size(); i++) {
if (!fileAddressList.get(i).isEmpty()) {
attchPart = new MimeBodyPart();
// 附件数据源
DataSource 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);
}
}
}
class MailAuthenticator extends Authenticator {
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password;
/**
* 创建一个新的实例 MailAuthenticator.
*
* @param username
* @param 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;
}
}
注:我有个同事使用我这个代码更换为他的账号和客户端授权码后,一运行就报错,然后重置了一下邮箱的客户端授权码后,错误便消失了。
以上就是本文的全部内容,希望对大家学习java程序设计有所帮助。相关阅读:
JVM角度调试优化MyEclipse
thinkPHP下ueditor的使用方法详解
php有道翻译api调用方法实例
原生javascript模仿win8等待提示圆圈进度条
JS中typeof与instanceof之间的区别总结
JSP文件下载功能的4种方法
Win7如何设置屏幕刷新率?Win7设置电脑屏幕刷新率的方法
Win8如何使用应用通知功能管理应用通知
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
php实现通用的从数据库表读取数据到数组的函数实例
鼠标失灵怎么办?win7利用键盘模拟鼠标操作的教程
Android GridView实现滚动到指定位置的方法
Win10应用更新开始提供日志 能知道到底升级了什么内容
jQuery动态创建html元素的常用方法汇总
163邮箱java通用下载_java_java实现163邮箱发送邮件到qq邮箱成功案例,下载和上传附件、发送短信和 - phpStudy...相关推荐
- golang如何发送邮件(qq邮箱)
文章目录 golang发送邮件(qq邮箱) 前期准备 代码编写 效果展示 golang发送邮件(qq邮箱) 前期准备 golang发送邮件的功能,我们今天介绍golang发送qq邮件,相信大家都有qq ...
- java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例
下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相 ...
- java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例
这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...
- java中怎么调用邮箱自动回信息_使用java发送短信和邮件
(1)发送短信 1.1在中国网建SMS上注册一个用户名,并获取短信密钥(非登录密码) 1.2代码 import java.io.IOException; import org.apache.commo ...
- java 短信猫发送短信的方法
http://zghbwjl.blog.163.com/blog/static/12033667220129175158806/ http://www.smscom.cn/sms_javasoft/ ...
- java 指令发送短信_Java短信发送机的实现
今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等. 经过大概2个小时的奋斗,终于写好了,并且在多部不同品牌的机器运行良好,而且很实 ...
- Java使用网易云信发送短信验证码
一.注册登录 1.1 网易云信网址短信 - 网易云信 1.2 点击如何使用,进行注册,邮箱使用自己的,因为需要激活账号,公司名称可以随便写. 1.3 进入你的邮箱激活登录后,创建应用,创建应用信息可以 ...
- 网易云信短信接口java_【java】网易云信发送短信接口和验证短信验证码接口
官网:https://dev.yunxin.163.com/docs/product/IM%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF/%E6%9C%8D%E5%8A%A1 ...
- JavaMail发送邮件到qq邮箱的过程中遇到的问题及解决办法
今天在使用javamail发送邮件到qq邮箱的过程中,遇到了一些问题 刚开始按网上的代码写 // 发送纯文本信息 Properties prop = new Properties(); prop.se ...
最新文章
- 《火星救援VR》原班人马打造全新AR游戏,让可爱小飞龙伴随你左右
- yolov3 权重转换
- oracle tuning 工具
- python读取单元格的值csv,比较单元格值的csv文件python
- ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架
- 腾讯游戏主美:二次元卡通渲染有哪些黑科技?
- P3205 [HNOI2010]合唱队
- springboot项目中mybatis实现数据的基本查询
- Java 并发编程之 ThreadLocal 线程局部变量
- 三个常用c++11特性
- 编译安装mysql5.7.24踩的坑
- 百面机器学习—13.L1正则化与稀疏性
- Android蓝牙开发实战总结
- 尚硅谷大数据之Linux
- 解决JSP中文乱码问题
- 输入卡号生成银行卡图片python_python 模拟贷个卡号生成规则过程解析
- 小象学院人工智能机器学习全新升级版
- SQLSERVER的中文排序规则
- 微信公众号怎样运营涨粉?
- 2021鹏业安装算量软件常见问题整理(二十)
热门文章
- Syntax Error: Error: Missing binding G:\ones\fontend\oms\node_modules\_node-sass@7.0.1@node-sass\ven
- uc7. 0流览器java下载_UC浏览器下载 7.0 正式版 Java- UC浏览器是UC 优视科技开发-pc6下载站...
- Android投屏帧率码率
- 阿里云视频直播服务获取签名
- Pytorch LSTM实现中文单词预测(附完整训练代码)
- 数据结构经典习题【part2】
- L1-047 装睡 (10分)
- 【机器学习】word2vec学习笔记(一):word2vec源码解析
- 一对一直播脚本松鼠直播管家的操作原理
- Codeforces 1649E Tyler and Strings 数论,数据结构