我有一个 SAP HCI 场景,最后我发送了一封附有 XML 响应的电子邮件。尽管文件大小为 20kb 并且只有一个接收器,但我收到此错误。
com.sun.mail.smtp.SMTPSendFailedException: 552 5.3.4 标头大小超过固定的最大大小
我有一个 SAP HCI 场景,最后我发送了一封附有 XML 响应的电子邮件。尽管文件大小为 20kb 并且只有一个接收器,但我收到此错误。
com.sun.mail.smtp.SMTPSendFailedException: 552 5.3.4 标头大小超过固定的最大大小
好的,我明白了:
它是特定于 SMTP 适配器通道的配置。按照设计,开发人员必须选择附件和标题的来源,这是唯一不错的选择(不是属性,这很遗憾)。
CPI 消息的所有标头都传输到 SMTP(对我来说设计不好),因此您的限制是由于指定的附件或任何其他标头而发生的。
为了证明我的假设,我创建了两个标题:长度较小的 aa 和长文本的 ab:
msg.setHeader('aa', "<?xml version='1.0'?><root>" + "a"*256 + "</root>")
msg.setHeader('ab', "<?xml version='1.0'?><root>" + "a"*1024*30 + "</root>")
然后,我将消息发布到云内部 SMTP,并收到退回消息:
This message was created automatically by the SMTP relay on XXXXXXXXXXXXXXXX.
A message that you sent could not be delivered to all of its recipients.
The following address(es) failed:
ilya.kuznetsov@domain
SMTP error from remote mail server after MAIL FROM:<ilya.kuznetsov@domain> SIZE=4019:
host XXXXXXXXXXXX [1.1.1.1]: 550 Administrative prohibition 2017-11-03-121-56439fc44a7dc0b43c28074ed7efe877
------ This is a copy of the message, including all the headers. ------
Return-path: <ilya.kuznetsov@domain>
...
Date: Fri, 3 Nov 2017 12:00:20 +0000 (UTC)
From: ilya.kuznetsov@domain
To: ilya.kuznetsov@domain
Subject: Hello world 2017-11-03T12:00:19.019Z
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_69_482225443.1509710419985"
aa: <?xml version='1.0'?><root>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</root>
ab: <?xml version='1.0'?><root>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</root>
SAP_MessageProcessingLogID: AFn8WlOMHKwYXS0KJbCcva0BG9Wh
SAP_MplCorrelationId: AFn8WlOmx_9yZFXocsPbBYIjesC9
SAP_PregeneratedMplId: AFn8WlPK-r5wMnCqVPDM-nHhsvmo
scriptFile: stackoverflow_47077818.groovy
scriptFileType: groovy
------=_Part_69_482225443.1509710419985
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Hello world body
------=_Part_69_482225443.1509710419985
Content-Type: application/xml; name=aa
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=aa
<?xml version='1.0'?><root>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</root>
------=_Part_69_482225443.1509710419985--
因此,如您所见,未用于信件的不相关标头在 SMTP 会话期间传输,它们可能是您的错误的原因。
更好的方法是使用简单的 Groovy 脚本和纯 Javamail 代码。