邮件中的日期格式和时间错误或缺失

时间:2017-08-07 09:42:22

标签: python python-3.x email

在一个MacOSX中,我在收到所有python脚本(在这种情况下为2)的邮件时发现了日期和时间问题,其中一些是没有任何日期的,另一些是美国格式(月/日/年) ),不确定,我想使用日/月/年格式,以及其他时间错误的人。当它发生时似乎几乎是随机的。

例如,我在该服务器中安装的 webmail

邮件1: https://image.prntscr.com/image/d_-qJ0bjQj_p1W-bJkMQ4g.png

邮件2: https://image.prntscr.com/image/I14uoJBZT9aMjmDAr31zXA.png

邮件3: https://image.prntscr.com/image/9JSlEuogSoWDCGEefT5K-w.png

thunderbird 中的其他示例:

邮件1: https://image.prntscr.com/image/2n-I8y1aRl2BJSig5-yTPg.png

邮件2: https://image.prntscr.com/image/kjQRl0ooRfqNRr1hJ5YWSg.png

邮件3: https://image.prntscr.com/image/0z_VhGgjRuSkcX_7kY6dbg.png

在Android的 Gmail应用中,我根本没有这个问题。

在这两个脚本中,我使用它来发送:

#server = smtplib.SMTP(mail_server,25)
server = smtplib.SMTP(mail_server,587)
server.starttls()
server.login(smtp_auth_name,smtp_auth_pass)
subject = '%s_BACKUP job success made on %s' %(backup_identifier,server_name)
message = 'Current Config:\n%s\nStart time: %s\nFinish time: %s\nTarget path: %s\n\nStatus: \n\n%s\n\nBackup has been done.' %(current_config,inicial_date.strftime("%d/%m/%y %H:%M:%S"),datetime.datetime.now().strftime("%d/%m/%y %H:%M:%S"),backup_folder,checkpoint)
message_structure = 'From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s' 
%(sender,email_receivers,subject,datetime.datetime.now().strftime("%d/%m/%y %H:%M:%Ss"),message)             
server.sendmail(sender,email_receivers,message_structure)
server.quit()
logging.debug('Email notification as been send to: %s',email_receivers)

所以似乎在邮件客户端中存在日期和时间的分布问题,而我的问题是如何才能使用来自邮件服务器的日期和时间。

我知道有formatdate(localtime=True)但不知道如何设置。

1 个答案:

答案 0 :(得分:0)

似乎我可以通过从以下位置删除日期字段来绕过此问题:

   message_structure = 'From: %s\nTo: %s\nSubject: %s\n\n%s' 
    %(sender,email_receivers,subject,message)

现在看来,日期是由MTA添加的,因为现在每个电子邮件客户端都是相同的。我认为服务器没有正确处理上一个日期格式,导致了这个问题。

我一直在一台交换服务器中使用该日期格式,我在那里没有任何问题,只在这个Dovecot(MDA)+ Postfix(MTA)服务器中。