在 Python 2.6 中从电子邮件中解析日期时间
Parsing datetime from email in Python 2.6
您好,我在使用 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() 对象上使用附加命令)
但是我无法使用 smtplib 从我的 SMTP 发送的电子邮件中读取日期时间。
我稍微修改了代码看看会发生什么:
代码:
datetime_sent = unicode(mail_sent["Date"])
print("Datetime sent =" + datetime_sent)
提示:
Datetime sent =None
我将研究应该如何在发送的电子邮件中实现日期。看来我这里有问题,因为收件箱邮件没有问题。
编辑:
好的,我发现了问题。
我正在使用 smtplib 将电子邮件从我的服务器发送到远程服务器。
当远程服务器在某个地址上收到来自我的服务器的邮件时,它会将邮件重定向回原始地址。
我的脚本无法从已发送的电子邮件中读取日期时间。
那么 email.parsedate_tz() 需要使用的正确格式是什么?
好的,
所以我检查了我的解析函数。
当我使用我的 smtp 服务器从 Thunderbird 发送邮件时它起作用了。
我可以获得我的日期时间对象。
当我用 python.
发送我的邮件时,东西很受欢迎
您好,我在使用 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() 对象上使用附加命令) 但是我无法使用 smtplib 从我的 SMTP 发送的电子邮件中读取日期时间。
我稍微修改了代码看看会发生什么: 代码:
datetime_sent = unicode(mail_sent["Date"])
print("Datetime sent =" + datetime_sent)
提示:
Datetime sent =None
我将研究应该如何在发送的电子邮件中实现日期。看来我这里有问题,因为收件箱邮件没有问题。
编辑: 好的,我发现了问题。 我正在使用 smtplib 将电子邮件从我的服务器发送到远程服务器。 当远程服务器在某个地址上收到来自我的服务器的邮件时,它会将邮件重定向回原始地址。 我的脚本无法从已发送的电子邮件中读取日期时间。 那么 email.parsedate_tz() 需要使用的正确格式是什么?
好的, 所以我检查了我的解析函数。 当我使用我的 smtp 服务器从 Thunderbird 发送邮件时它起作用了。 我可以获得我的日期时间对象。 当我用 python.
发送我的邮件时,东西很受欢迎