【问题标题】:Why does an email subject contain linefeed or carriage return characters?为什么电子邮件主题包含换行符或回车符?
【发布时间】:2020-04-22 16:53:37
【问题描述】:

我正在编写代码来检查邮箱,并将看不见的邮件转发给其他用户。
但有时它会因错误而失败:

ValueError:标题值可能不包含换行符或回车符

我检查了原始获取的数据,发现“主题”值包含 \r\n。
并非所有邮件都包含,但有些邮件包含。
只是在邮箱中显示正常,我不知道为什么有些包含这样的字符。
跟题目的长度有关系吗?
我该如何处理这些情况?
谢谢:)

【问题讨论】:

    标签: email smtp imap rfc linefeed


    【解决方案1】:

    电子邮件具有最大行长。这是历史性的,可以这么说,这条规则并不是 100% 的。但是在标题字段中,空格将被视为与 CR LF 和空格序列或 htab 字符相同。这是一个很长的主题,以这种方式编码:

    Subject: Pretend this is about 80-90
      characters long
    

    处理它的最简单方法是将任何空格字符序列视为单个空格。

    阅读任何电子邮件消息的来源,您会在大部分时间看到这种包装。例如,Received 字段几乎总是被包装,如果有很多收件人,则通常是 To,或者 Content-Type/Content-Disposition 用于附件。

    【讨论】:

    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2019-03-30
    相关资源
    最近更新 更多