sendmail发送邮件失败的解决流程
思韵闪耀
2013-03-18
0

1.  公司的邮件发送平台(用户登录注册,营销推广,人力资源等),今天有反应一封测试中的新模板邮件发送失败。

2. 现有流程是: java将待发送信息写入linux 下mysql db--->c读取table,通过smtp协议connect多台smtp服务器(后台可设定管理)发送邮件。并发模式为:多进程(不同业务),多线程(同一业务的用户邮箱列表分发投递到多台sendmail服务器)。

3. c组调试获取err log "get data=552 5.6.0 Headers too large (32768 max)"。 查找资料是因为sendmail对邮件的档头header,默认有32768Bype的限制。

4. vi /etc/mail/sendmail.cf,  modify MaxHeadersLength=9999999,  restart sendmail

5. ok,问题解决

-------------------后记------------------------------------

## 邮件群发平台存在一个待优化的问题就是:

目前待发送的邮箱列表是在初始加载时均分( nTotalTasks / nSmtpSrvCnts )到各台服务器发送,但实际情况是各台快慢差别很大。(早干完活的就在那"看戏",最后就剩一个苦逼的在跑,任务一直没有结束)

优化方案:

1. 将task量的分配最小化。1个线程连1台smtp服务器,1次取1条mail, 线程间用pthread_mutex_lock/unlock()避免取到同条任务,flag标记取走状态。

2. 最慢的那台"苦逼"的原因,除了服务器性能和网络状况,主要是因为按序分配给他的大部分邮箱号是不存在或无法到达的(如恶意批量注册),邮箱域名的dns解析超时(30s),所以贼慢。 解决办法是优化sendmail配置参数同时线程设定socket timeout。

## 后期可考虑新增的功能:

1. 支持抄送和小容量的附件发送。

2. 将系统监控报警/通知的邮件发送整合到此平台下。

## 不晓得各邮件运营商反垃圾邮件的算法规则。(业务部门反馈,我也没办法,谁让他们整天乱发)

1. 控制发送量的大小、频率,时常更换smtp服务器IP可能有点效果。

2. 提示用户点击信任此发件人


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

开源邮件服务器对比,看看哪...
开源邮件服务器对比,看看哪款适合你开源的企业邮件系统通常提供完整的...
2025-07-24
要在 Alibaba Cl...
要在 Alibaba Cloud Linux 上安装 Docker...
2025-07-22
要在 Alibaba Cl...
要在 Alibaba Cloud Linux 系统中添加 alin...
2025-07-22
将IIS设置克隆到新服务器...
将IIS设置克隆到新服务器的最佳方法是使用IIS配置文件。以下是详...
2025-06-06
搭建Git服务器及本机克隆...
Git是什么?Git是目前世界上最先进的分布式版本控制系统。SVN...
2025-03-17
ubuntu环境下搭建gi...
操作环境:服务器:Ubuntu 24.04.2 LTS+git 2...
2025-03-17

热门资讯

Discus X论坛配置sen... Discuz x2.5 后台邮件设置方法其实和X2/x1.5基本一样,但很多同学都不注意一些细节,比...
redhat Linux系统配... 1 .检查Send Mail 的安装包 [root@sql root]# rpm -qa | gre...
使用Sendmail的反垃圾邮... 在最近几年,无处不在的垃圾邮件已使得所有邮件箱不堪重负,不断地需要工具以抗击这一无穷尽的垃圾邮件流。...