【问题标题】:Parsing datetime from email in Python 2.6在 Python 2.6 中从电子邮件中解析日期时间
【发布时间】:2017-09-04 15:32:17
【问题描述】:

您好,我在使用 Python 2.6 解析电子邮件中的日期时遇到问题 这是代码:

    typ_sent, data_sent = sentbox.fetch(num_sent, '(RFC822)')
    mail_sent = email.message_from_string(data_sent[0][1])
    subject_sent = unicode(email.header.decode_header(mail_sent['Subject'])[0])
    from_sent = unicode(email.header.decode_header(mail_sent['From'])[0])
    datetime_sent = email.utils.mktime_tz(email.utils.parsedate_tz((mail_sent["Date"])))
    datetime_sent = datetime.datetime.fromtimestamp(datetime_sent)

尝试从日期时间对象中的邮件获取日期时间时出错。这是消息错误。

File "checkIMAP_client.py", line 116, in <module>
    datetime_sent = email.utils.mktime_tz(email.utils.parsedate_tz((mail_sent["Date"])))
  File "/usr/lib64/python2.6/email/_parseaddr.py", line 142, in mktime_tz
    if data[9] is None:
TypeError: 'NoneType' object is unsubscriptable

我需要将日期时间对象解析为有效的电子邮件日期格式。

编辑: 在我的脚本中,我需要比较来自已发送项目和收件箱文件夹的电子邮件。 我可以从收件箱的电子邮件中读取日期(我在 email.message() 对象上使用 append 命令) 但是我无法使用 smtplib 从我的 SMTP 发送的电子邮件中读取日期时间。

我稍微修改了代码,看看会发生什么: 代码:

datetime_sent = unicode(mail_sent["Date"])
print("Datetime sent =" + datetime_sent)

提示:

Datetime sent =None

我将研究如何在发送的电子邮件中实现日期。看来我这里有问题,因为收件箱邮件没有问题。

编辑: 好的,我发现了问题。 我正在使用 smtplib 从我的服务器向远程服务器发送电子邮件。 当远程服务器在某个地址从我的服务器收到邮件时,它会将其重定向回原始地址。 我的脚本无法从发送的电子邮件中读取日期时间。 那么我需要为 email.parsedate_tz() 工作的正确格式是什么?

【问题讨论】:

  • 邮件是否有有效的Date: 标头?您在一行中有多个函数调用;也许您可以将它们展开成几行,以查看您在哪里得到了意想不到的结果。也许edit 你的问题包括这些诊断。另请参阅包含minimal reproducible example 的指南。
  • 你为什么要在这个时代瞄准 Python 2.6?过渡到 3.6 将为您提供一个更新很多的 email 库,其中包含内置日期解析。
  • 评论 1:我正在解析的一些电子邮件的日期格式错误。清除测试邮箱后,一切正常。我害怕遇到问题,因为其他 Stack 人也有同样的问题。评论 2:我无法在将执行脚本的服务器上更新 Python。
  • 也许可以取消删除并接受您的回答,以便明确表示已解决。

标签: python email datetime imap python-2.6


【解决方案1】:

好的, 所以我检查了我的解析功能。 当我使用我的 smtp 服务器从 Thunderbird 发送邮件时,它可以工作。 我可以得到我的日期时间对象。 当我用 python 发送邮件时,东西很受欢迎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多