邮件发送失败,Sendmail Headers too large
2018-01-23 14:57
357 查看
今天遇到一个奇怪问题,用户反馈邮件发送失败。远程查查吧,大小、收件人等等啥的都未超限制。怪了 . ??
于是与用户了解发送时间,去邮件系统服务器sendmail日志查,发现关键信息
“stat=Headers too large (32768 max)”。哈哈,原来是邮件头超了,再查查用户foxmail那封邮件,查查邮件源码,发现源码中 References:字段的内容太多,从14年到18年的信息都有。原来是用户习惯在邮件的基础上点击全部回复,于是一封14年写的邮件,就重复重复再重复,一直回复到啦18年,惊!
解决方案:
可以编辑 /etc/mail/submit.cf,修改sendmail支持最大头部 :
Maximum length of the sum of all headers
#O MaxHeadersLength=32768
O MaxHeadersLength=256000
或者,让用户重新写一封。。。。。
下面是邮件头部格式记录
--------------------------------------------❤------------------------------------------
Subject: 邮件主题
Return-Path: 提供了邮件操作的电子轨迹,应提供给发送人一个回复路径.
Received: 提供了邮件操作的电子轨迹,每一台接收到邮件的机器都会自动添加以“Received:”开始的那一行。如果你收的邮件有多个以它开头的行,表明这封邮件可能是被转发或被退回的错误邮件。缩进的那一行是本行的继续。
From: 它记录了这封邮件来自哪个或哪些人的地址,但并不一定是邮件的发送人,
Sender: 如果存在的话应该总是包含实际邮件发送人的有效邮件地址.
X-organization: 以X-开始的字段是用于增加更多信息的”用户自定义”字段.
X-Phone: 同上
Reply-to: 指出了这封信和回复地址.
Errors-to: 告诉Sendmail 应该将出错信息送到哪里
To: 收件人
Cc: 副本抄送
Bcc: 匿名发送, Bcc行包含某些人地址,这些人接收这封邮件,但是收件人列表的其他人并不知道这一点.
Message-ID: 邮件唯一标识符.
Subject: 主旨
Comment: 注释,很少用.
Date: 日期
Resent-From: 重发或转发邮件添加"resent"信头
Resent-To:
Resent-Cc:
Resent-Bcc
Resent-Date:
Resent-Message-Id:
Return-Receipt-To: 如果它是一个消息的信头中的一行,当这封邮件被投递给最终目的地时,一个返回收据被发送到这个信头行规定的地址,
Apparently-To: 当惟一的收信人信息在信封上时,它被添加到邮件中
Precedence: 它如果存在,会用后面给定的值来标明该项邮件的优先权值.
References: 通过In-Reply-To域和References域中关联找到所有与需检 邮件内容相关的邮件,进行内容比较验证。 (个人理解,此字段就是记录邮件回复记录的信息关联)
In-Reply-To:
Keyword:
Full-Name: 用于填定发件人的全名
于是与用户了解发送时间,去邮件系统服务器sendmail日志查,发现关键信息
“stat=Headers too large (32768 max)”。哈哈,原来是邮件头超了,再查查用户foxmail那封邮件,查查邮件源码,发现源码中 References:字段的内容太多,从14年到18年的信息都有。原来是用户习惯在邮件的基础上点击全部回复,于是一封14年写的邮件,就重复重复再重复,一直回复到啦18年,惊!
解决方案:
可以编辑 /etc/mail/submit.cf,修改sendmail支持最大头部 :
Maximum length of the sum of all headers
#O MaxHeadersLength=32768
O MaxHeadersLength=256000
或者,让用户重新写一封。。。。。
下面是邮件头部格式记录
--------------------------------------------❤------------------------------------------
Subject: 邮件主题
Return-Path: 提供了邮件操作的电子轨迹,应提供给发送人一个回复路径.
Received: 提供了邮件操作的电子轨迹,每一台接收到邮件的机器都会自动添加以“Received:”开始的那一行。如果你收的邮件有多个以它开头的行,表明这封邮件可能是被转发或被退回的错误邮件。缩进的那一行是本行的继续。
From: 它记录了这封邮件来自哪个或哪些人的地址,但并不一定是邮件的发送人,
Sender: 如果存在的话应该总是包含实际邮件发送人的有效邮件地址.
X-organization: 以X-开始的字段是用于增加更多信息的”用户自定义”字段.
X-Phone: 同上
Reply-to: 指出了这封信和回复地址.
Errors-to: 告诉Sendmail 应该将出错信息送到哪里
To: 收件人
Cc: 副本抄送
Bcc: 匿名发送, Bcc行包含某些人地址,这些人接收这封邮件,但是收件人列表的其他人并不知道这一点.
Message-ID: 邮件唯一标识符.
Subject: 主旨
Comment: 注释,很少用.
Date: 日期
Resent-From: 重发或转发邮件添加"resent"信头
Resent-To:
Resent-Cc:
Resent-Bcc
Resent-Date:
Resent-Message-Id:
Return-Receipt-To: 如果它是一个消息的信头中的一行,当这封邮件被投递给最终目的地时,一个返回收据被发送到这个信头行规定的地址,
Apparently-To: 当惟一的收信人信息在信封上时,它被添加到邮件中
Precedence: 它如果存在,会用后面给定的值来标明该项邮件的优先权值.
References: 通过In-Reply-To域和References域中关联找到所有与需检 邮件内容相关的邮件,进行内容比较验证。 (个人理解,此字段就是记录邮件回复记录的信息关联)
In-Reply-To:
Keyword:
Full-Name: 用于填定发件人的全名
相关文章推荐
- Linux SendMail发送邮件失败诊断案例(四)
- sendmail 发送邮件失败
- sendmail邮件发送失败
- 解决sendmail发送邮件失败一例
- sendmail 邮件发送成功但是传递失败,提示553号错误的解决方法
- 解决sendmail发送邮件失败一例
- Linux系统下sendmail发送邮件失败的问题
- uchome发送邮件失败,需要修改sendmail设置
- uchome发送邮件失败,需要修改sendmail设置
- Linux SendMail发送邮件失败诊断案例(三)
- Linux系统下使用mail发送一封简单的Internet邮件【以及验证邮件是否发送成功sendmail -bp,必须是root用户才可以使用此命令查看邮件消息队列中的内容】
- Sendmail 发送监控报警邮件报错 dsn=5.6.0, stat=Data format error 推荐
- 通过QQ邮箱的SMTP服务器发送QQ邮件至163邮箱提示“发送邮件失败”的解决方案(三种可能性,不妨一试)
- sendmail 发送邮件例子
- Centos系统sendmail发送邮件很慢的解决方法
- postal邮件发送(二):Email headers,附件,图片介绍
- php使用sendMail发送邮件
- ubuntu sendmail 发送邮件
- C#邮件发送 - SendMail
- sendmail 发送html 的邮件