一、利用javax.mail发送邮箱需要两个邮箱账号 一个测试发送账号,一个接受账号。

1、发件人邮箱 注意:新激活邮箱的QQ用户要14天之后才能使用SMTP;

2、某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”),对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。

3、发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com,网易163个人邮箱的 SMTP 服务器地址为: smtp.163.com qq个人邮箱的为: smtp.qq.com,注意:企业邮箱个人邮箱的服务器地址不同,每天发件上限也不同。

4、 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启), 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误。

5、端口:SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接,  需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)

二、注意:

1.各大邮箱的发件数量每天有上限, 163个人邮箱每天限发50封,详情请的请参考网站:
 http://www.360doc.com/content/15/0411/20/20545288_462481521.shtml
         2.邮箱内不要包含敏感词汇
         3.新激活邮箱的QQ用户要14天之后才能使用SMTP

4.如果运行完毕后没有报错,邮箱未接受到邮箱,可能被判断为垃圾邮件->请到邮箱自助查询->被拦截 (系统拦截)的邮件加入白名单

三、代码伺候

1、EmailService()  创建邮件服务

2、createMimeMessage() 创建一封只包含文本的简单邮件

3、main() 主函数

package com.test;import java.util.Date;
import java.util.Properties;import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;public class EmailUtil {// 发件人的 邮箱 注意:新激活邮箱的QQ用户要14天之后才能使用SMTPpublic static String myEmailAccount = "xxxxxxxxxxx@163.com";// PS: 某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”),// 对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。public static String myEmailPassword = "xxxxxxxxxxxxx";// 是授权码,不是邮箱密码,自行百度如何获取授权码// 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com// 网易163邮箱的 SMTP 服务器地址为: smtp.163.com qq的为: smtp.qq.compublic static String myEmailSMTPHost = "smtp.163.com";// 收件人邮箱(替换为自己知道的有效邮箱)public static String receiveMailAccount = "xxxxxxxx@qq.com";// PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启),// 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误,/** // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, // 需要改为对应邮箱的* SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看)*/public static String smtpPort = "465";/*** 1.各大邮箱的发件数量每天有上限, 163邮箱每天限发50封,详情请的请参考网站:*  http://www.360doc.com/content/15/0411/20/20545288_462481521.shtml* 2.邮箱内不要包含敏感词汇* 3.新激活邮箱的QQ用户要14天之后才能使用SMTP* 4.如果运行完毕后没有报错,邮箱未接受到邮箱,可能被判断为垃圾邮件->请到邮箱自助查询->被拦截 (系统拦截)的邮件加入白名单*/public static void main(String[] args) {try {EmailService(myEmailAccount, // 发件人邮箱myEmailPassword, // 发件人授权码myEmailSMTPHost, // smtp服务器"465", // smtp端口"发件人测试昵称", receiveMailAccount, // 收件人邮箱"java测试邮件主题", "测试java邮件邮件内容");} catch (Exception e) {e.printStackTrace();}}/*** 创建邮件服务* @param fajianren   发件人* @param shouquanma  发授权码* @param smtpService smtp服务器* @param shoujianren 收件人* @param smtpPort    smtp端口* @param sendName    发件人名字* @param subject     邮件主题* @param contents    邮件内容* @return void* @throws Exception*/public static void EmailService(String fajianren, String shouquanma,String smtpService, String smtpPort, String sendName,String receiveName, String subject, String contents)throws Exception {// 1. 创建参数配置, 用于连接邮件服务器的参数配置Properties props = new Properties(); // 参数配置props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求)props.setProperty("mail.smtp.host", smtpService); // 发件人的邮箱的 SMTP 服务器地址props.setProperty("mail.smtp.auth", "true"); // 需要请求认证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);// 新添加的props.setProperty("mail.smtp.ssl.enable", "true");// 2. 根据配置创建会话对象, 用于和邮件服务器交互Session session = Session.getDefaultInstance(props);// Session session =Session.getInstance(props, null);session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log// 3. 创建一封邮件MimeMessage message = createMimeMessage(session, fajianren, sendName,receiveName, subject, contents);// 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(fajianren, shouquanma);// 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人,// 抄送人, 密送人transport.sendMessage(message, message.getAllRecipients());// 7. 关闭连接transport.close();}/*** 创建一封只包含文本的简单邮件* * @param session   和服务器交互的会话* @param sendMail  发件人邮箱* @param receiveMail 收件人邮箱   * @param sendName    发件人名字* @param receiveName 收件人名字* @param subject     邮件主题* @param contents    邮件内容* @return void* @throws Exception*/public static MimeMessage createMimeMessage(Session session,String sendMail, String sendName, String receiveMail,String subject, String contents) throws Exception {// 1. 创建一封邮件MimeMessage message = new MimeMessage(session);// 2. From: 发件人message.setFrom(new InternetAddress(sendMail, sendName, "UTF-8"));// 3. To: 收件人(可以增加多个收件人、抄送、密送)message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, receiveMail));// 4. Subject: 邮件主题message.setSubject(subject, "UTF-8");// 5. Content: 邮件正文(可以使用html标签)message.setContent(contents, "text/html;charset=UTF-8");// 6. 设置发件时间message.setSentDate(new Date());// 7. 保存设置message.saveChanges();return message;}}

javax.mail发送邮箱相关推荐

  1. oracle ssl发送邮件,使用javax.mail发送带有ssl的电子邮件

    我想使用gmail作为smtp服务器发送电子邮件. 这是我的代码,我没有让它工作-- 运行testSettings()后,我得到调试输出,然后它就停止了.没有超时,没有错误,没有-- public v ...

  2. javax.mail 发送

    依赖 <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId& ...

  3. Java简单的本地邮箱服务器发送(javax.mail)

    推荐使用标题5 1.安装使用易游服务器以及Foxmail 易游服务器傻瓜式安装 Foxmail 向导部分请断网 2.简单的入门案例 1.创建mevan项目 2.引入坐标 <!-- Javamai ...

  4. Java使用javax.mail.jar发送邮件并同意发送附件

    因为Java在开发网页上占有绝大优势.所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必定,网络安全一再安全我们须要把账号的安全级别提到更高.因此这些对于开发者也就成了必须掌握的技能!我一 ...

  5. java使用javax.mail包发送电子邮件:设置账号、密码、主题、文本、附件

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) java ...

  6. java mail张_javaMail操作QQ邮箱发送邮箱 Demo

    最近用到想给项目中加一个功能,就是当项目中某些模块发生异常,在捕获异常后不仅仅写日志抛异常等!还要追加一个发送邮件给该模块的负责人,方便运维定位问题: maven管理的配置: javax.mail m ...

  7. javamail连接gmail邮箱时报错:javax.mail.AuthenticationFailedException

    最近邮箱功能好不容易上线了,但是发现有很多问题还考虑的不够周到,例如一些企业申请的各个邮箱服务器的企业邮箱账号,有些网上的邮箱正则表达式,无法匹配一些企业邮箱账号:作为一个SAAS平台,我们主要是在功 ...

  8. Java使用javax.mail.jar发送邮件并允许发送附件

    由于Java在开发网页上占有绝大优势,所以作为web端的领军人物,譬如发送短信和发送邮件这些就成了必然,网络安全一再安全我们需要把账号的安全级别提到更高!因此这些对于开发人员也就成了必须掌握的技能!我 ...

  9. java程序通过腾讯邮箱发送邮件失败:javax.mail.AuthenticationFailedException: 535 Error: authentication failed, syste

    1.问题描述 通过java程序实现邮箱发送验证码的功能 使用一段时间后出现发送邮件失败的问题 排查后提示:javax.mail.AuthenticationFailedException: 535 E ...

最新文章

  1. 2 行代码,将 .NET 执行时间降低 87%!
  2. Verilog初级教程(23)Verilog仿真中的显示任务
  3. 利用smarty生成静态页的关键代码
  4. SoaBox 1.1.6 GA 发布,SOA 模拟环境
  5. Delphi中调用API函数经验点滴(二)
  6. 一体化系统中心服务器,数据中心一体化:监测与控制
  7. 154. 寻找旋转排序数组中的最小值 II(有手就行)
  8. 触摸工业光掩模行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  9. 安卓模拟器genymotion连接eclipse成功但是不显示其中项目
  10. 创业者该如何给员工画饼、圆饼?
  11. 银行数据仓库体系实践(14)--数据应用之内部报表及数据分析
  12. 前路钉板系统在重建胸腰段稳定性中应用 [已发表]
  13. Windows 安装PHP SG11插件
  14. TypeError: Object of type xxx is not JSON serializable错误解决
  15. 操作系统笔记(本科必修课)
  16. 记录解决nonebot2中定时器报时区问题的错误
  17. CPU型号后缀字母所代表的含义
  18. 晋江文学城网站优化与诊断
  19. float double表示的有效位数
  20. 技能高考模拟试题三计算机类,计算机技能高考2016模拟试卷3

热门文章

  1. 如何监测服务器主机的流量——WGCLOUD
  2. AI也能作曲!OpenAI神经网络能生成任何流派音乐
  3. 牛叉的 erlang
  4. SQL SERVER触发器回顾(联级删除)
  5. 云桌面的linux系统下载软件,红旗Linux9.0下载
  6. hdu 1494 跑跑卡丁车~
  7. SAP 财务固定资产常用BAPI
  8. 交易员带你看行情|最新铁矿石基本面分析
  9. 用FLASH方便地处理中文
  10. maya nCloth