java web 收发邮件_Java总结(五)之实现javaweb发送邮件
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发送邮件相关推荐
- java mail 收发邮件
java mail 收发邮件 1.发件 2.收件 1.发件 package base.util; /* Some SMTP servers require a username and passwor ...
- java邮件登录系统设计_基于Java web的邮件管理系统的设计与实现(含源文件).doc
毕业设计诚信声明书 毕 业 设 计 中文题目 基于Java web的邮件管理系统的设计与实现 英文题目 Based on Java web email management system design ...
- Java Web 网络商城案例演示五(用户激活)
Java Web 网络商城案例演示五(用户激活) 1.用户激活 2.登录 3.退出 4.抽取公共页面 5.查询所有分类 6.首页热门商品_最新商品显示 7.商品详情显示 8.基础分页操作 9.首页分类 ...
- java web压缩过滤器_Java Web过滤器Filter(五)
Filter概述 Filter意为滤镜或者过滤器,用于在Servlet之外对request或者response进行修改.Filter提出滤镜链的概念,一个FilterChain包括多外Filter.客 ...
- java web 找回密码_java web实现 忘记密码(找回密码)功能及代码
java web实现 忘记密码(找回密码)功能及代码 (一).总体思路 (二).部分截图 (三).部分代码 (一).总体思路: 1.在 找回密码页面 录入 姓名.邮箱和验证码,录入后点击[提交]按钮, ...
- java web项目测试_java web项目怎么测试?
慕仰1329654 java web项目测试用Web的测试工具,如HtmlUnit,JWebUnit等.main()方法就可以测试,在main方法中获得connection对象将他输出就可以了.如果正 ...
- java web开发技巧_java web开发技巧
1 java web开发技巧 java学习没有诀窍,也没有捷径.只有脚踏实地学好java知识,把理论知识灵活运用实践,多学,多问,多操作,只要这样才能真正成为java编程高手.下面小编给大家说说jav ...
- 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 ...
- java web 手机验证_Java 手机Web开发 身份验证
Java web和手机端开发 遇到比较麻烦的就是身份验证 目前为止觉得最好的解决方案是 Java 中使用jwt 为什么要使用jwt,让网络数据更加安全,以防其他一些人无意恶搞 在这里简单说下:jwt是 ...
最新文章
- echart 多柱图只显示部分数据标签_2分钟上手、3小时学会无代码软件开发---Echarts数据可视化...
- 2017 Vue.js 2快速入门指南
- TextView跑步灯效果及在特殊情况下无效的解决方案
- 关于CPU指标的解释
- 深入浅出Android BufferQueue
- MAC OS 命令行使用详解
- Python学习之web框架 Flask
- 黑马程序员C++学习笔记(第三阶段核心:STL)--- 更新中
- ASIHTTPRequest框架进行文件下载
- Kubernetes Pod
- 小学生C++趣味编程 视频集
- [Python][Scrapy] Scrapy 官方文档
- lodop php 快递单_lodop打印控件打印申通快递单
- 流利阅读12.31 The science of giving gifts your loved ones won’t want to return
- 盘式过滤器详细介绍分析
- Linux 静态库和动态库的生成及使用
- 数据结构 | 有关树和二叉树的详解【内附考点精析】
- 计算机在教育领域中的应用方式,计算机技术在教育中的应用
- 学习NLP的第9天——基于HanLP实现的拼音转换
- 宏观经济学第13版多恩布什笔记和答案