当前位置: 首页 > news >正文

javaMail发邮件 简单小例子 解决QQ邮箱530 SSL问题

为什么80%的码农都做不了架构师?>>>   hot3.png

package com;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.util.Properties;


import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;


import com.sun.mail.smtp.SMTPMessage;
import com.sun.mail.util.MailSSLSocketFactory;
class SimpleAuthenticator extends Authenticator{
 private String userName;
 private String password;
 public SimpleAuthenticator(String userName, String password) {
 super();
 this.userName = userName;
 this.password = password;
 }
 public PasswordAuthentication getPasswordAuthentication() {      
         return new PasswordAuthentication(this.userName, this.password);  
   
     }  
}
public class MailTest {
 public static void sendMail() throws UnsupportedEncodingException, GeneralSecurityException{
 String userName = "xxxx@qq.com";
 String password="xxxx";
 String subject = "发邮件进行测1111111试"; // 邮件标题
     String body = "怎么样 可以112222222了没!"; // 邮件内容
     Properties props=System.getProperties();
     MailSSLSocketFactory sf = new MailSSLSocketFactory();  
     sf.setTrustAllHosts(true);  
     props.put("mail.smtp.host", "smtp.qq.com");
     props.put("mail.smtp.auth","true");
     props.put("mail.smtp.socketFactory.port", 465);
     props.put("mail.smtp.starttls.enable","true");
     props.put("mail.smtp.ssl.socketFactory", sf); 
     props.put("mail.smtp.starttls.enable", "true");
     props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
     // props.setProperty("mail.smtp.port", "465");
    // Session session=Session.getDefaultInstance(props);
     Session session = Session.getDefaultInstance(props,new SimpleAuthenticator(userName, password)	);
     session.setDebug(true);
     SMTPMessage message=new SMTPMessage(session);
     try {
    	message.setRecipient(Message.RecipientType.TO,new InternetAddress("mmmm@163.com"));//收件人
    	message.setSubject(subject);
 message.setText(body);
 String nickName="王大锤";
 nickName=javax.mail.internet.MimeUtility.encodeText(nickName); 
 message.setFrom(new InternetAddress(nickName+" <xxxx@qq.com>"));//设置发件人 发件人必须要和Authenticator验证的帐号一致
 Transport transport = session.getTransport("smtp");
 transport.connect(userName, password);
 transport.send(message);
 transport.close();
 } catch (MessagingException e) {
 e.printStackTrace();
 }
 }
 public static void main(String[] args)  {
 try {
 MailTest.sendMail();
 } catch (Exception e) {
 e.printStackTrace();
 }
 }
}

转载于:https://my.oschina.net/u/865478/blog/94154

相关文章:

  • Linux 线程管理
  • tomcat 热布署
  • chrome扩展demo1-小时钟
  • java.io.Serializable引发的问题
  • oc之类排序
  • oKit项目管理软件正式提供在线服务
  • Red Hat 安装
  • 查看LoadRunner脚本请求日志和服务器返回值方法
  • iOS开发笔记 2、Cocoa简明
  • 烟花散尽漫说无(參考资料)
  • 我也谈谈《驳“永远不要对一个外行聊你的专业”【十全十美】》
  • iOS 界面 之 EALayout 无需反复编译,可视化实时界面,告别Storyboard AutoLayout Xib等等烦人的工具...
  • windows 7 启用虚拟Wifi 热点网络只需3步搞定
  • hibernate将enum映射成int或varchar类型
  • 如果一个按钮被覆盖如何响应?
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • [译] React v16.8: 含有Hooks的版本
  • 4. 路由到控制器 - Laravel从零开始教程
  • angular组件开发
  • Cookie 在前端中的实践
  • ES6 ...操作符
  • JavaScript学习总结——原型
  • Python连接Oracle
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 复杂数据处理
  • 来,膜拜下android roadmap,强大的执行力
  • 前端
  • 责任链模式的两种实现
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • const的用法,特别是用在函数前面与后面的区别
  • 我们雇佣了一只大猴子...
  • ​插件化DPI在商用WIFI中的价值
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (C语言)二分查找 超详细
  • (function(){})()的分步解析
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (离散数学)逻辑连接词
  • (理论篇)httpmoudle和httphandler一览
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .Net IOC框架入门之一 Unity
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET成年了,然后呢?
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET中统一的存储过程调用方法(收藏)
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /bin/bash^M: bad interpreter: No such file or directory