发送文本/纯文本电子邮件并阻止Outlook折叠行

时间:2015-05-22 16:38:52

标签: email outlook line-breaks

我从我的网络应用程序发送纯文本邮件(例如密码重置);我非常确定我在标题和文字中使用了正确的CRLF行结尾。有些行可能超过78个字符,但不超过998 + 2。

对于某些邮件,Outlook邮件客户端会折叠页脚部分中的空白(-- 行之后):尽管存在CRLF换行符,但它们看起来像是变成了普通的空格字符,我很长。 (编辑,澄清:发生了换行符,但不是在预期的位置,而是由窗口宽度给出。)

是否有方法告诉Outlook保留换行符,例如一些头?当然,我更喜欢符合RFC的解决方案,但如果它不会对其他客户造成伤害,那就没关系。

1 个答案:

答案 0 :(得分:1)

我终于找到了this question and answer,我的解决方案是: 在每个换行符前面加上一个可能被Outlook“优化掉”的制表符,例如:因为没有其他换行符。

如果可以毫不费力地完成,当然有助于生成包含InnerTextFor Each elem As HtmlElement In WebBrowser1.Document.GetElementsByTagName("a") If elem.InnerText.Trim = "Subscribe" Then elem.InvokeMember("click") End If Next 的邮件;但如果仅仅是出于这个原因,它看起来有点过分。

纯HTML邮件也可以使用,但它们比普通文本邮件更不值得信赖(因为人们可能被欺骗激活除链接文本中的URL之外的其他URL),例如SpamAssassin不喜欢他们。

这是一个Python函数,它在每个换行符之前插入一个制表符(但不是在两个或更多个序列之前):

text/plain