邮件发送失败,Sendmail Headers too large

今天遇到一个奇怪问题,用户反馈邮件发送失败。远程查查吧,大小、收件人等等啥的都未超限制。怪了 . ??
于是与用户了解发送时间,去邮件系统服务器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: 用于填定发件人的全名

原文地址:http://blog.51cto.com/374721/2064237

时间: 2024-08-29 14:29:43

邮件发送失败,Sendmail Headers too large的相关文章

java:邮件发送失败总结(只是外网服务器有问题)

案例一: 运行环境比较 1.本地用同样的代码.系统环境及发邮件的帐号是没有问题的: 2.外网其它服务器项目使用相同技术也没有问题: 问题现象 邮件模板中某链接(如:"http://www.baidu.com/...")在邮箱发送后自动执行了,导致其它业务出错. 处理方式     1.处理前:"http://www.baidu.com/..."这部分字符串是在发邮件时整个填充到邮件模板中某个变量:        2.处理后:"http://"固定在

邮件发送失败问题:Sending the email to the following server failed : smtp.qiye.163.com:25

[邮件发送错误] : Sending the email to the following server failed : smtp.qiye.163.com:25, {}org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.qiye.163.com:25 at org.apache.commons.mail.Email.sendMimeMessage(Ema

Contact Form 7邮件发送失败的解决办法

一.contact form 7无法发送邮件的原因 对mail()函数的不支持. Contact Form 7表单提交失败在使用过程中会出现,归根结底原因在于wordpress主机问题,由于国 内很多主机并不是wordpress专用主机,采用的是所谓的全能WIN+IIS+PHP,而这样的环境很少支持wordpress本身的mail()发 送邮件函数.所以导致Contact Form 7表单提交失败的原因.这也引出WP Mail SMTP设置问题. 二.解决方法 解决这个问题有两点 1.下载一个插

Zabbix监控之邮件发送失败-smtp-server: 错误代码550与535

原始问题背景: 前几天运维同事突然发现zabbix监控上面不再发送邮件了,而zabbix的监控界面状态都是能够显示出来.因为之前出现过类似的问题,估计是163邮箱的问题,于是登陆用于告警的邮箱,直接通过网页发送邮件也同样报错,估计是邮件防垃圾服务进行了限制,需要等到第二天才能恢复(第二天确实恢复正常),但是当天如果需要继续使用zabbix的邮箱监控的话,只能通过更换告警邮箱. 于是配置了新的邮箱[email protected]用于告警. 新问题如下 [[email protected]_mas

腾讯企业邮箱外域邮件发送失败原因及其解决方案

如何设置外域邮箱的SPF为了提升外域邮箱(如Gmail)发送至腾讯邮箱邮件的成功率,建议您给自己的域名设置一条TXT记录来避免这种情况.TXT记录值为:v=spf1 ip4:发信ip ~all如图:万网的设置页面 1.从diy.hichina.com处登录域名管理系统;2.在TXT(正文字串)处设置一条TXT记录(假设发信ip为“5.5.5.5”),如下: 如果您不是万网用户,建议咨询您所在域名服务商. 550 Mailbox unavailable or access denied出错原因:您

python 邮件发送

#!/usr/bin/env python # -*- coding:UTF-8 -*- #需要在邮箱处设置开启SMTP服务(第三方客户端发送) import smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrdef mail(): ret = True try: msg = MIMEText('测试邮件','plain','utf-8') msg['From'] = formataddr([

python学习笔记(SMTP邮件发送)

想着给框架添加邮件发送功能.所以整理下python下邮件发送功能 首先python是支持邮件的发送.内置smtp库.支持发送纯文本.HTML及添加附件的邮件 之后是邮箱.像163.qq.新浪等邮箱默认关闭SMTP服务,需要我们手动打开 打开后通过发件人邮箱.授权密码 通过发件人的SMTP服务发送 代码如下: 1 #!/usr/bin/env python 2 # -*- coding: utf_8 -*- 3 4 from email.mime.text import MIMEText 5 fr

阿里云centos 7 创建postfix服务器,并进行stmp验证,并结合phpmailer进行邮件发送

由于centos默认会自带sendmail,而sendmail存在安全性问题和使用复杂的问题,故而选择postfix服务器,由于暂时没有收邮件的需求,故未安装dovecot. 1.[[email protected] ~]# yum remove sendmail -y    #卸载自带的sendmail 2.[[email protected] ~] #yuminstall postfix –y  # 安装postfix服务的主程序包 配置项如下: 1 queue_directory= /va

邮件发送 utils

package cn.itcast.bos.utils; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.interne