您的位置:首页 > 其它

【掉坑】Postfix默认邮件大小

2021-02-26 21:50 417 查看

bug起因:

公司使用postfix搭建的邮件服务器,我们提供统一邮件发送接口,最近有同事反馈,发出去的邮件收不到。因为邮件收不到影响因素很多,比如垃圾邮件内容,垃圾发件箱,垃圾发送IP地址等等。

排查掉坑:

于是排查日志,发现前人打印的日志并没有错误日志,于是查看tomcat的后台日志,竟也没有异常。于是重新查看代码,发现异常部分,竟没有任何处理,也没有日志,晕乎,于是赶紧加上错误日志输出,重新本地测试。

爬出坑外:

加上日志以后,测试了几次发送邮件,接收均正常,然后测试了发送附件,大约3M的附件,也没有问题。只能找同事将原邮件重新发送一遍,这次监控日志有了错误信息,很明显,邮件内容太大。

com.sun.mail.smtp.SMTPSendFailedException: 552 5.3.4 Error: message file too big

于是查看生产postfix邮箱配置:

/usr/sbin/postconf | grep size

berkeley_db_create_buffer_size = 16777216
berkeley_db_read_buffer_size = 131072
body_checks_size_limit = 51200
bounce_size_limit = 50000
header_size_limit = 102400
mailbox_size_limit = 51200000
message_size_limit = 10240000
tcp_windowsize = 0

message_size_limit一看便知大约是10M的样子,自我感觉已经够大了,也不能不限制邮件大小,于是乎,自然想到将附件压缩一下再发送,测试以后,果然没有问题。

再次确认问题:

同事的附件只有8M的大小,是一个word文档,按理是没有超过10M的,于是再次排查代码,附件接收这块接口约定是16进制的字符串,脑子里一过,比base64编码还要长,8M的字节经过16进制编码,那绝对超过10M了,所以导致邮件发送失败。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: