使用163邮箱服务器
一个普通邮件的模板如下:
SimpleEmail email=new SimpleEmail();
email.setHostName("smtp.163.com");//设置邮箱服务器
email.setAuthentication("xxx", "密码");//设置用户名和密码
email.setCharset("UTF-8");//防止中文乱码
try {
email.addTo("123456@qq.com");//收件人
email.setFrom("xxx@163.com");//发件人
email.setSubject("主题");//邮件主题
email.setMsg("正文内容");//内容
email.send();//发送
} catch (EmailException e) {
e.printStackTrace();
}
常见问题:
1.163邮箱的SMTP服务默认关闭,需要设置口令并开启。同时代码中setAuthentication("xxx", "密码");设置用户名和密码中的密码不是邮箱账户密码,而是在邮箱中设置的POP3/SMTP/IMAP口令。
2.中文乱码问题
email.setCharset("UTF-8") 设置主题的字符集为UTF-8
email.getMimeMessage().setText("测试邮件内容","UTF-8"); 设置内容的字符集为UTF-8,需要先email.buildMimeMessage();才能设置内容文本,一般不用设置
3.邮件收不到的相关问题。
常见的有163服务器退信错误,代码:554 DT:smp 163 退信代码说明详见163服务中心的说明 企业退信的常见问题
这是在做代码测试时很常见的退信错误,主要是由于163的反垃圾机制。
(1)邮件内容的原因:内容上有“测试”或是“test”的不可以,需要把发件的内容全部换成较为正经的内容。
(2)邮件服务端的问题:需要看看具体是哪家邮件服务器,在发送邮件给qq邮箱的时候注意。qq邮箱有反垃圾机制,对于一些发送频繁的邮件可能会被直接送进垃圾箱,实验需要对发送方设置白名单。
可直接设置白名单域smtp.163.com,或是对发送方设置地址白名单xxx@163.com
(3)如果以上方法不能正常解决,有可能发送过于频繁,等待一段时间再继续测试吧。
如果还是不行,emmm.....放弃吧!网易邮箱在554 DT的反垃圾机制的算法怕是出了问题,可能是个神坑!!
可以转用QQ邮箱的服务继续码。。。