NAGIOS系统在将电子邮件发送到流行的电子邮件到SMS服务时遇到问题。电子邮件到SMS服务接收Subject:
行中带有文本的电子邮件,并将其发送到该To:
字段中编码的手机号码。到目前为止,一切都很好。可悲的是,sendmail的(和前后缀)似乎将无偿CRLF到(不一定长)Subject:
线,而这造成我的短信,以在CRLF被截断,当且仅当该Subject:
行包含一个或多个冒号过去没来由CRLF。
我相信消息创建正确,但是可以肯定的是,这是我给我自己写的一条完整的点头测试消息,内容很长Subject:
:
echo "foo" | mail -s "1234567 101234567 201234567 301234567 401234567 501234567 601234567 701234567 801234567 90123456789" reaper@teaparty.net
注意,这一Subject:
行中没有多余的冒号。我在这里所做的所有事情都表明,电线上插入了一个额外的CRLF。结果如下sudo ngrep -x port 25
:
44 61 74 65 3a 20 46 72 69 2c 20 33 31 20 4d 61 Date: Fri, 31 Ma
79 20 32 30 31 33 20 31 30 3a 34 33 3a 35 35 20 y 2013 10:43:55
2b 30 31 30 30 0d 0a 54 6f 3a 20 72 65 61 70 65 +0100..To: reape
72 40 74 65 61 70 61 72 74 79 2e 6e 65 74 0d 0a r@teaparty.net..
53 75 62 6a 65 63 74 3a 20 31 32 33 34 35 36 37 Subject: 1234567
20 31 30 31 32 33 34 35 36 37 20 32 30 31 32 33 101234567 20123
34 35 36 37 20 33 30 31 32 33 34 35 36 37 20 34 4567 301234567 4
30 31 32 33 34 35 36 37 20 35 30 31 32 33 34 35 01234567 5012345
36 37 0d 0a 20 36 30 31 32 33 34 35 36 37 20 37 67.. 601234567 7
30 31 32 33 34 35 36 37 20 38 30 31 32 33 34 35 01234567 8012345
36 37 20 39 30 31 32 33 34 35 36 37 38 39 0d 0a 67 90123456789..
55 73 65 72 2d 41 67 65 6e 74 3a 20 48 65 69 72 User-Agent: Heir
6c 6f 6f 6d 20 6d 61 69 6c 78 20 31 32 2e 34 20 loom mailx 12.4
37 2f 32 39 2f 30 38 0d 0a 4d 49 4d 45 2d 56 65 7/29/08..MIME-Ve
72 73 69 6f 6e 3a 20 31 2e 30 0d 0a 43 6f 6e 74 rsion: 1.0..Cont
65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f 70 ent-Type: text/p
6c 61 69 6e 3b 20 63 68 61 72 73 65 74 3d 75 73 lain; charset=us
在原始标头中的501234567
和之间,大约下降了一半(用粗体+斜体标出),您可以看到正在插入一个CRLF(,在左侧的十六进制转储中,在右侧的纯文本中)。601234567
Subject:
0x0d 0x0a
..
接收方MTA似乎很乐意对此进行后处理,当我在接收方查看光盘上存储的邮件时,在Subject:行中仅看到LF(0x0a),并且该行及其内容均已正确解析整体由,例如alpine
。但是,CRLF随时可用,在我和(优秀的)电子邮件到SMS支持人员之间,我们已经确定这些是问题的原因。
所以我的问题是:MTA在电线上插入免费的CRLF是否合法?
如果可以的话,并且我可以证明这一点,那么这就是电子邮件到短信之家的问题,因为它们不容忍。如果不是,或者我无法证明它,那么这将成为我的问题,因此带有引用的答案将是最有用的。
编辑:我现在可以弄清楚问题中的电子邮件到SMS服务是kapow。一旦向他们解释了此问题,他们就知道了,与我一起开发和测试了修订程序,并部署了修订程序。我的带有冒号的长主题行现在可以正确地中继到SMS中。我通常不会吹嘘单个公司,尤其是在SF上,但我认为值得一提的是,kapow做了正确的事。(免责声明:除了作为付费客户(对他们处理他的问题的方式感到满意之外),我与kapow没有任何联系。)