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...相关推荐

  1. golang如何发送邮件(qq邮箱)

    文章目录 golang发送邮件(qq邮箱) 前期准备 代码编写 效果展示 golang发送邮件(qq邮箱) 前期准备 golang发送邮件的功能,我们今天介绍golang发送qq邮件,相信大家都有qq ...

  2. java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例

    下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相 ...

  3. java 给qq邮箱发邮件_java实现163邮箱发送邮件到qq邮箱成功案例

    这篇文章主要为大家分享了java实现163邮箱发送邮件到qq邮箱成功案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 下载和上传附件.发送短信和发送邮件,都算是程序中 ...

  4. java中怎么调用邮箱自动回信息_使用java发送短信和邮件

    (1)发送短信 1.1在中国网建SMS上注册一个用户名,并获取短信密钥(非登录密码) 1.2代码 import java.io.IOException; import org.apache.commo ...

  5. java 短信猫发送短信的方法

    http://zghbwjl.blog.163.com/blog/static/12033667220129175158806/ http://www.smscom.cn/sms_javasoft/ ...

  6. java 指令发送短信_Java短信发送机的实现

    今天早上回来就产生了一个想法,不如用j2me实现一个短信发送机的程序,然后只需要填入几个数字就可以实现短信的自动发送等. 经过大概2个小时的奋斗,终于写好了,并且在多部不同品牌的机器运行良好,而且很实 ...

  7. Java使用网易云信发送短信验证码

    一.注册登录 1.1 网易云信网址短信 - 网易云信 1.2 点击如何使用,进行注册,邮箱使用自己的,因为需要激活账号,公司名称可以随便写. 1.3 进入你的邮箱激活登录后,创建应用,创建应用信息可以 ...

  8. 网易云信短信接口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 ...

  9. JavaMail发送邮件到qq邮箱的过程中遇到的问题及解决办法

    今天在使用javamail发送邮件到qq邮箱的过程中,遇到了一些问题 刚开始按网上的代码写 // 发送纯文本信息 Properties prop = new Properties(); prop.se ...

最新文章

  1. 《火星救援VR》原班人马打造全新AR游戏,让可爱小飞龙伴随你左右
  2. yolov3 权重转换
  3. oracle tuning 工具
  4. python读取单元格的值csv,比较单元格值的csv文件python
  5. ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架
  6. 腾讯游戏主美:二次元卡通渲染有哪些黑科技?
  7. P3205 [HNOI2010]合唱队
  8. springboot项目中mybatis实现数据的基本查询
  9. Java 并发编程之 ThreadLocal 线程局部变量
  10. 三个常用c++11特性
  11. 编译安装mysql5.7.24踩的坑
  12. 百面机器学习—13.L1正则化与稀疏性
  13. Android蓝牙开发实战总结
  14. 尚硅谷大数据之Linux
  15. 解决JSP中文乱码问题
  16. 输入卡号生成银行卡图片python_python 模拟贷个卡号生成规则过程解析
  17. 小象学院人工智能机器学习全新升级版
  18. SQLSERVER的中文排序规则
  19. 微信公众号怎样运营涨粉?
  20. 2021鹏业安装算量软件常见问题整理(二十)

热门文章

  1. Syntax Error: Error: Missing binding G:\ones\fontend\oms\node_modules\_node-sass@7.0.1@node-sass\ven
  2. uc7. 0流览器java下载_UC浏览器下载 7.0 正式版 Java- UC浏览器是UC 优视科技开发-pc6下载站...
  3. Android投屏帧率码率
  4. 阿里云视频直播服务获取签名
  5. Pytorch LSTM实现中文单词预测(附完整训练代码)
  6. 数据结构经典习题【part2】
  7. L1-047 装睡 (10分)
  8. 【机器学习】word2vec学习笔记(一):word2vec源码解析
  9. 一对一直播脚本松鼠直播管家的操作原理
  10. Codeforces 1649E Tyler and Strings 数论,数据结构