【问题标题】:python email subject \r\npython 电子邮件主题 \r\n
【发布时间】:2016-11-08 23:08:51
【问题描述】:

我在使用 imaplib 从邮箱中获取主题的脚本时遇到问题。

这是我的脚本:

    for mail in response[0].split():
    typ, response = imap.fetch(mail, '(RFC822)')
    for response_part in response:
        if isinstance(response_part, tuple):
            msg = email.message_from_string(response_part[1])
            for header in [ 'subject']:
                print msg["subject"]

但我得到了这个输出:

[astreinte] [2015.06.09 07:36:04] blurp : TIMESTAMP ALERT
 Disaster is PROBLEM

我的问题是“TIMESTAMP ALERT”之后的 EndOfLine,如果我得到 msg.items() 我可以查看:

('Subject', '[astreinte] [2015.06.09 07:36:04] ankdo2ga22 : DOFUS TIMESTAMP ALERT\r\n Disaster is PROBLEM')

所以,我不明白为什么存在 \r\n ?它是否存在于元数据中。但是zabbix发送消息时没有添加。 我用的是office365。

非常感谢您的帮助。

【问题讨论】:

  • 您的意思是“虽然我有一条以主题结尾的消息,但发送消息时不会出现行结尾”?不知道 zabbix 和 Office 365 与书面有什么关系
  • 我很确定它一定是这样发送的。这可能是一个意外,甚至在发送时都没有注意到。你的蟒蛇是正确的。
  • 这看起来像页眉折叠。我原以为电子邮件解析库会为您处理这个问题。我没有想到的解决方案。

标签: python office365 imaplib


【解决方案1】:

无耻插件:尝试使用我的库:https://pypi.python.org/pypi/O365

如果您使用的是 Office 365,它应该会让您的生活变得更加简单。

在回答您为什么存在 \r\n 的问题时,这是因为 Office365 是基于 windows 的。出于遗留原因,Windows 使用 \r\n 作为换行符。

【讨论】:

  • Umm、IMAP、SMTP 和电子邮件格式都必须使用 \r\n 行尾。这与windows无关。
猜你喜欢
  • 2014-06-26
  • 2012-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 2021-09-01
相关资源
最近更新 更多