packagecom.xiets.javamaildemo;importjavax.mail.Session;importjavax.mail.Transport;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeMessage;importjava.util.Date;importjava.util.Properties;/*** JavaMail 版本: 1.6.0

* JDK 版本: JDK 1.7 以上(必须)*/

public classSendEmail {//发件人的 邮箱 和 密码(替换为自己的邮箱和密码)//PS: 某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”),//对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。

public static String myEmailAccount = "自己的邮箱账号";public static String myEmailPassword = "*****";//发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com//网易163邮箱的 SMTP 服务器地址为: smtp.163.com

public static String myEmailSMTPHost = "smtp.gmail.com";//收件人邮箱(替换为自己知道的有效邮箱)

public static String receiveMailAccount = "7651*****@qq.com";public static void main(String[] args) throwsException {//1. 创建参数配置, 用于连接邮件服务器的参数配置

Properties props = new Properties(); //参数配置

props.setProperty("mail.transport.protocol", "smtp"); //使用的协议(JavaMail规范要求)

props.setProperty("mail.smtp.host", myEmailSMTPHost); //发件人的邮箱的 SMTP 服务器地址

props.setProperty("mail.smtp.auth", "true"); //需要请求认证//PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),//如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,//打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。

/*// SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,

// 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助,

// QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)*/

final String smtpPort = "465";

props.setProperty("mail.smtp.port", smtpPort);

props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

props.setProperty("mail.smtp.socketFactory.fallback", "false");

props.setProperty("mail.smtp.socketFactory.port", smtpPort);//2. 根据配置创建会话对象, 用于和邮件服务器交互

Session session =Session.getInstance(props);

session.setDebug(true); //设置为debug模式, 可以查看详细的发送 log//3. 创建一封邮件

MimeMessage message =createMimeMessage(session, myEmailAccount, receiveMailAccount);//4. 根据 Session 获取邮件传输对象

Transport transport =session.getTransport();//5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错//

//PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log,//仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误//类型到对应邮件服务器的帮助网站上查看具体失败原因。//

//PS_02: 连接失败的原因通常为以下几点, 仔细检查代码://(1) 邮箱没有开启 SMTP 服务;//(2) 邮箱密码错误, 例如某些邮箱开启了独立密码;//(3) 邮箱服务器要求必须要使用 SSL 安全连接;//(4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务;//(5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。//

//PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。

transport.connect(myEmailAccount, myEmailPassword);//6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人

transport.sendMessage(message, message.getAllRecipients());//7. 关闭连接

transport.close();

}/*** 创建一封只包含文本的简单邮件

*

*@paramsession 和服务器交互的会话

*@paramsendMail 发件人邮箱

*@paramreceiveMail 收件人邮箱

*@return*@throwsException*/

public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throwsException {//1. 创建一封邮件

MimeMessage message = newMimeMessage(session);//2. From: 发件人(昵称有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改昵称)

message.setFrom(new InternetAddress(sendMail, "某宝网", "UTF-8"));//3. To: 收件人(可以增加多个收件人、抄送、密送)

message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, "XX用户", "UTF-8"));//4. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题)

message.setSubject("打折钜惠", "UTF-8");//5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容)

message.setContent("XX用户你好, 今天全场5折, 快来抢购, 错过今天再等一年。。。", "text/html;charset=UTF-8");//6. 设置发件时间

message.setSentDate(newDate());//7. 保存设置

message.saveChanges();returnmessage;

}

}

java web 收发邮件_Java总结(五)之实现javaweb发送邮件相关推荐

  1. java mail 收发邮件

    java mail 收发邮件 1.发件 2.收件 1.发件 package base.util; /* Some SMTP servers require a username and passwor ...

  2. java邮件登录系统设计_基于Java web的邮件管理系统的设计与实现(含源文件).doc

    毕业设计诚信声明书 毕 业 设 计 中文题目 基于Java web的邮件管理系统的设计与实现 英文题目 Based on Java web email management system design ...

  3. Java Web 网络商城案例演示五(用户激活)

    Java Web 网络商城案例演示五(用户激活) 1.用户激活 2.登录 3.退出 4.抽取公共页面 5.查询所有分类 6.首页热门商品_最新商品显示 7.商品详情显示 8.基础分页操作 9.首页分类 ...

  4. java web压缩过滤器_Java Web过滤器Filter(五)

    Filter概述 Filter意为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改.Filter提出滤镜链的概念,一个FilterChain包括多外Filter.客 ...

  5. java web 找回密码_java web实现 忘记密码(找回密码)功能及代码

    java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...

  6. java web项目测试_java web项目怎么测试?

    慕仰1329654 java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等.main()方法就可以测试,在main方法中获得connection对象将他输出就可以了.如果正 ...

  7. java web开发技巧_java web开发技巧

    1 java web开发技巧 java学习没有诀窍,也没有捷径.只有脚踏实地学好java知识,把理论知识灵活运用实践,多学,多问,多操作,只要这样才能真正成为java编程高手.下面小编给大家说说jav ...

  8. java web应用开发_Java Web应用开发基础

    模块1 Java Web应用开发概述 1.1 Web基础知识 1.1.1 Web应用及其开发 1.1.2 动态网页 1.1.3 B/S结构 1.1.4 JSP简介 1.2 创建第一个Web项目 1.2 ...

  9. java web 手机验证_Java 手机Web开发 身份验证

    Java web和手机端开发 遇到比较麻烦的就是身份验证 目前为止觉得最好的解决方案是 Java 中使用jwt 为什么要使用jwt,让网络数据更加安全,以防其他一些人无意恶搞 在这里简单说下:jwt是 ...

最新文章

  1. echart 多柱图只显示部分数据标签_2分钟上手、3小时学会无代码软件开发---Echarts数据可视化...
  2. 2017 Vue.js 2快速入门指南
  3. TextView跑步灯效果及在特殊情况下无效的解决方案
  4. 关于CPU指标的解释
  5. 深入浅出Android BufferQueue
  6. MAC OS 命令行使用详解
  7. Python学习之web框架 Flask
  8. 黑马程序员C++学习笔记(第三阶段核心:STL)--- 更新中
  9. ASIHTTPRequest框架进行文件下载
  10. Kubernetes Pod
  11. 小学生C++趣味编程 视频集
  12. [Python][Scrapy] Scrapy 官方文档
  13. lodop php 快递单_lodop打印控件打印申通快递单
  14. 流利阅读12.31 The science of giving gifts your loved ones won’t want to return
  15. 盘式过滤器详细介绍分析
  16. Linux 静态库和动态库的生成及使用
  17. 数据结构 | 有关树和二叉树的详解【内附考点精析】
  18. 计算机在教育领域中的应用方式,计算机技术在教育中的应用
  19. 学习NLP的第9天——基于HanLP实现的拼音转换
  20. 宏观经济学第13版多恩布什笔记和答案

热门文章

  1. laravel表单验证
  2. 八、高级依赖关系配置
  3. Android WebService
  4. meteor是什么东西?
  5. Visual Studio.NET 2008开发一册通--LINQ从基础到项目实战这本书怎么样
  6. 使用Highcharts实现柱状图展示
  7. Leetcode811.Subdomain Visit Count子域名访问计数
  8. 微信小程序 - 自定义swiper(dot)指示点
  9. loadrunner录制脚本参数化之间的关联设置
  10. JavaScript判断数组是否有重复值