研究了近一天的时间,经过查阅相关资料,终于对java发送邮件的机制,原理有了一点点的理解,但愿可以帮到你们!html

1.首先要向你的项目里导入1个jar包:mail-1.4.4.jar便可(实现qq和163邮箱发送其余邮箱(此案例只演示一种))java

2.代码以下所示session

public classTestDemo1 {static String SSL_EMAIL = "javax.net.ssl.SSLSocketFactory";

//须要传的值都在main方法调用的sendmail里传!public static voidmain(String[] args) {

String s= sendmail(username, pass, from, to, subject, content);

System.out.println(s);

}/***

*@paramusername 发件人邮件的用户名

*@parampass 发件人邮件的密码(此密码必定要是受权码 受权码:在发件人邮箱内开启smtp/pop3协议所得到的受权码)

*@paramfrom 发件人邮箱

*@paramto 收件人邮箱

*@paramsubject 邮件标题

*@paramcontent 邮件内容

*@return

*/

public static String sendmail(final String username, finalString pass,

String from, String to, String subject, String content) {//Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());//设置系统参数

Properties props =System.getProperties();

props.setProperty("mail.smtp.socketFactory.class", SSL_EMAIL);

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

props.setProperty("mail.store.protocol", "smtp");

props.setProperty("mail.smtp.host", "smtp.qq.com");//props.setProperty("mail.smtp.port", "465");

props.setProperty("mail.smtp.socketFactory.port", "465");

props.put("mail.smtp.auth", "true");//建立邮件会话

Session session = Session.getInstance(props, newAuthenticator() {protectedPasswordAuthentication getPasswordAuthentication() {return newPasswordAuthentication(username, pass);

}

});//建立邮件信息

Message msg = newMimeMessage(session);try{

msg.setFrom(newInternetAddress(username));

msg.setRecipients(Message.RecipientType.TO,

InternetAddress.parse(to,false));

msg.setSubject(subject);

msg.setText(content);

msg.setSentDate(newDate());

Transport.send(msg);return "1";

}catch(MessagingException e) {returne.getMessage();

}

}

}

3.发送邮件切记的有一下几点:并发

(1)发送邮件方必定要开通smtp/pop3协议!socket

(2)发送邮件方必定要用开通后的受权码当作密码来设置!ide

(3)当改变发送方的邮件类型时(好比说一开始你用的XXX@qq.com,要换成XXX@163.com)必定要换mail.smtp.host优化

qq的是smtp.qq.com,163的是smtp.163.comui

(4)下面是常见的错误类型:最多见的为 550 DT:SPM  和535(535为你的发送邮件方信息填写错了,多是受权码过时,也多是用户名写错了)spa

•421 HL:REP 该IP发送行为异常,存在接收者大量不存在状况,被临时禁止链接。请检查是否有用户发送病毒或者垃圾邮件,并核对发送列表有效性;

•421 HL:ICC 该IP同时并发链接数过大,超过了网易的限制,被临时禁止链接。请检查是否有用户发送病毒或者垃圾邮件,并下降IP并发链接数量;

•421 HL:IFC 该IP短时间内发送了大量信件,超过了网易的限制,被临时禁止链接。请检查是否有用户发送病毒或者垃圾邮件,并下降发送频率;

•421 HL:MEP 该IP发送行为异常,存在大量伪造发送域域名行为,被临时禁止链接。请检查是否有用户发送病毒或者垃圾邮件,并使用真实有效的域名发送;

•450 MI:CEL 发送方出现过多的错误指令。请检查发信程序;

•450 MI:DMC 当前链接发送的邮件数量超出限制。请减小每次链接中投递的邮件数量;

•450 MI:CCL 发送方发送超出正常的指令数量。请检查发信程序;

•450 RP:DRC 当前链接发送的收件人数量超出限制。请控制每次链接投递的邮件数量;

•450 RP:CCL 发送方发送超出正常的指令数量。请检查发信程序;

•450 DT:RBL 发信IP位于一个或多个RBL里。请参考http://www.rbls.org/关于RBL的相关信息;

•450 WM:BLI 该IP不在网易容许的发送地址列表里;

•450 WM:BLU 此用户不在网易容许的发信用户列表里;

•451 DT:SPM ,please try again 邮件正文带有垃圾邮件特征或发送环境缺少规范性,被临时拒收。请保持邮件队列,两分钟后重投邮件。需调整邮件内容或优化发送环境;

•451 Requested mail action not taken: too much fail authentication 登陆失败次数过多,被临时禁止登陆。请检查密码与账号验证设置;

•451 RP:CEL 发送方出现过多的错误指令。请检查发信程序;

•451 MI:DMC 当前链接发送的邮件数量超出限制。请控制每次链接中投递的邮件数量;

•451 MI:SFQ 发信人在15分钟内的发信数量超过限制,请控制发信频率;

•451 RP:QRC 发信方短时间内累计的收件人数量超过限制,该发件人被临时禁止发信。请下降该用户发信频率;

•451 Requested action aborted: local error in processing 系统暂时出现故障,请稍后再次尝试发送;

•500 Error: bad syntaxU 发送的smtp命令语法有误;

•550 MI:NHD HELO命令不容许为空;

•550 MI:IMF 发信人电子邮件地址不合规范。请参考http://www.rfc-editor.org/关于电子邮件规范的定义;

•550 MI:SPF 发信IP未被发送域的SPF许可。请参考http://www.openspf.org/关于SPF规范的定义;

•550 MI:DMA 该邮件未被发信域的DMARC许可。请参考http://dmarc.org/关于DMARC规范的定义;

•550 MI:STC 发件人当天的链接数量超出了限定数量,当天再也不接受该发件人的邮件。请控制链接次数;

•550 RP:FRL 网易邮箱不开放匿名转发(Open relay);

•550 RP:RCL 群发收件人数量超过了限额,请减小每封邮件的收件人数量;

•550 RP:TRC 发件人当天内累计的收件人数量超过限制,当天再也不接受该发件人的邮件。请下降该用户发信频率;

•550 DT:SPM 邮件正文带有不少垃圾邮件特征或发送环境缺少规范性。需调整邮件内容或优化发送环境;

•550 Invalid User 请求的用户不存在;

•550 User in blacklist 该用户不被容许给网易用户发信;

•550 User suspended 请求的用户处于禁用或者冻结状态;

•550 Requested mail action not taken: too much recipient  群发数量超过了限额;

•552 Illegal Attachment 不容许发送该类型的附件,包括以.uu .pif .scr .mim .hqx .bhx .cmd .vbs .bat .com .vbe .vb .js .wsh等结尾的附件;

•552 Requested mail action aborted: exceeded mailsize limit 发送的信件大小超过了网易邮箱容许接收的最大限制;

•553 Requested action not taken: NULL sender is not allowed 不容许发件人为空,请使用真实发件人发送;

•553 Requested action not taken: Local user only  SMTP类型的机器只容许发信人是本站用户;

•553 Requested action not taken: no smtp MX only  MX类型的机器不容许发信人是本站用户;

•553 authentication is required  SMTP须要身份验证,请检查客户端设置;

•554 DT:SPM 发送的邮件内容包含了未被许可的信息,或被系统识别为垃圾邮件。请检查是否有用户发送病毒或者垃圾邮件;

•554 DT:SUM 信封发件人和信头发件人不匹配;

•554 IP is rejected, smtp auth error limit exceed 该IP验证失败次数过多,被临时禁止链接。请检查验证信息设置;

•554 HL:IHU 发信IP因发送垃圾邮件或存在异常的链接行为,被暂时挂起。请检测发信IP在历史上的发信状况和发信程序是否存在异常;

•554 HL:IPB 该IP不在网易容许的发送地址列表里;

•554 MI:STC 发件人当天内累计邮件数量超过限制,当天再也不接受该发件人的投信。请下降发信频率;

•554 MI:SPB 此用户不在网易容许的发信用户列表里;

•554 IP in blacklist 该IP不在网易容许的发送地址列表里。.net

若是有想群发,添加附件,邮件内容能够用html标签写内容的,请查看个人博客

这次发表的博客,有本身想法,也有向其余前辈的借鉴,有错的地方你们多多留言提点,我会继续作的更好!

163邮箱 java发送html邮件,java邮件发送 qq与163邮箱互发和qq和163邮箱发送其余邮箱实例...相关推荐

  1. Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件

    Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件 前言 一.战前准备 1.导入依赖 2.配置文件 3.邮箱工具类 二.战争开始 1.QQ邮箱发送 2.网易邮箱发送 战后反思 前言 我们可能 ...

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

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

  3. java发送QQ群邮件,Java使用腾讯企业邮箱 、javamail 、 SSL 发送邮件/群发

    引入相关依赖: javax.mail mail 1.4.7 commons-io commons-io 2.4 如果使用spring的发邮件,还需要添加依赖: org.springframework ...

  4. java发送内嵌图片邮件

    前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/huj ...

  5. java 发送图片邮件_JavaMail邮件发送-为你的邮件增加背景音乐和背景图片

    先搞一个增加背景图片 首先要准备图片,这个图片可以是本地的也可以是远程的 如果你使用本地的,那么会有一些问题,稍后再说,大家也帮忙给看看问题 如果是使用了远程,那很简单,就是发送一个HTML格式的邮件 ...

  6. Java实现批量发送带附件的邮件

    新功能上线时要经常发包到测试或生产服务器进行模块部署,但由于安全限制只能通过邮件传输小于10M的附件这种方式把jar包上传到服务器.所以往往要发送几十个邮件手动发送比较麻烦,偷懒写了个粘贴即用的Dem ...

  7. java邮件发送代码_用Java实现最简单的邮件发送代码

    1. import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; /* * 在真正使用创建的过程中,往往会让我 ...

  8. java 邮件 附件_java中javamail发送带附件的邮件实现方法

    本文实例讲述了java中javamail发送带附件的邮件实现方法.分享给大家供大家参考.具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口.它是Sun发布的用来处理em ...

  9. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

  10. java 发送邮件添加附件,Java实现带附件的邮件发送功能

    这篇文章主要为大家详细介绍了Java实现带附件的邮件发送功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现邮件发送功能的具体代码,供大 ...

最新文章

  1. 1152 Google Recruitment (20 分)【难度: 简单 / 知识点: 模拟】
  2. C# / VB.NET合并PDF指定页
  3. 计算机控制作业及答案,《微机系统与维护》课程作业及答案(二)
  4. [SQL实战]之查找employees表
  5. iOS 中client和server的 Web Service 网络通信 (2)
  6. Ubuntu Eclipse 解决中文乱码
  7. (附源码)ssm网上零食销售系统 毕业设计 180826
  8. Android之简洁天气
  9. 轻松实现页面提交时,显示“提交中..” (转帖)
  10. 人人都是首席质量官--读后感
  11. english_搭配
  12. 前沿研究丨李德毅院士:基于驾驶脑的智能驾驶车辆硬件平台架构
  13. 请问 S2S 和C2S 是什么样的模式,两者之间的区别又是什么样的?
  14. 理解Anchor、RPN真值与预测量、RPN卷积网络
  15. 如何使用ANT在命令行进行编译和测试
  16. 2017第三届美亚杯全国电子数据取证大赛个人赛wp
  17. 西澳大利亚大学计算机专业,西澳大利亚大学世界排名多少位(西澳大利亚大学热门专业介绍)...
  18. .pnmrc和.vuerc和.yarnrc等等文件
  19. 案例 | 中央企业数字化转型实践
  20. 【数据结构】手撕单链表

热门文章

  1. HDFS副本存放机制
  2. 双十一期间Kafka以这种方式丢消息让我促不及防
  3. mysql 查询开始时间和结束时间是一个月的数据sql
  4. c语言 多种方式求字符串长度
  5. KDS加密软件的实际应用
  6. Go语言 —— 前景
  7. 解决局域网文件共享“****无法复制,指定的网络名不可用”
  8. LaTeX插入参考文献教程 | 非BibTeX格式
  9. SpringBoot自定义Starter(二十四)
  10. 222Beta多样性限制性排序CPCoA/CCA/RDA/LDA