java发送邮件进垃圾箱的解决办法

项目中需要给用户发送邮件功能,由于各大免费邮件服务商比如qq,163等都有邮件发送限制,所以需要搭建自己的邮件服务器发送邮件。搭建邮件服务器需要对外开启25端口,aws服务器默认关闭25端口,需要申请case(比较严格,不容易通过),所以只能换物理机搭建邮件服务器,服务器搭建完毕遇到的问题,通过java mail发送邮件一直进垃圾箱,而用Foxmail却可以成功发送。通过测试及分析总结可能原因如下:

1.邮件服务器出方向25端口未开启;

2.DNS解析不正确:需要在域名供应商上面去做DNS解析,需添加MX记录,dkim记录,spf记录,dmarc记录,imap记录,SMTP记录等。

3:搭建邮件服务器后需要做ip反向解析,需要ip服务商支持,有些机房不支持;

4.被反垃圾邮件组织拉入黑名单了,

 一下列出几个大的组织,进入网站查询自己的邮件服务器IP是否被列入黑名单:

   https://www.spamhaus.org/

   https://www.spamcop.net/

   http://www.anti-spam.org.cn/

5.发送的邮件内容含有敏感词等;

6.发送内容不是html格式的,关键代码如下:

StringBuffer messageText=new StringBuffer();//内容以html格式发送,防止被当成垃圾邮件
messageText.append("<span>Hi,您好:</span></br>");
messageText.append("<span>你的验证码是:"+code+"</span></br>");
messageText.append("<span>出于安全原因,该验证码将于10分钟后失效。请勿将验证码透露给他人。</span></br>");
message.setContent(messageText.toString(),"text/html;charset=UTF-8");
Transport.send(message);

最后发现纯文本格式的邮件送达率更高,换行需要用div包起来:<div></br></div>,少用链接,图片,越简单越好。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值