日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

邮件发送时间怎么修改 python_使用python通过电子邮件发送日期时间

發布時間:2024/1/8 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 邮件发送时间怎么修改 python_使用python通过电子邮件发送日期时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我試圖使用python腳本解析電子郵件的日期時間。

在我打開郵件時,郵件日期值如下所示...

1

2

3

4from: abcd@xyz.com

to: def@xyz.com

date: Tue, Aug 28, 2012 at 1:19 PM

subject: Subject of that mail

我正在使用代碼

1

2

3

4

5

6

7mail = email.message_from_string(str1)

#to = re.sub('','',mail["To"])

to = parseaddr(mail.get('To'))[1]

sender = parseaddr(mail.get('From'))[1]

cc_is = parseaddr(mail.get('Cc'))[1]

date = mail["Date"]

print date

使用python解析的相同郵件日期時間的輸出如下所示,具有時間偏移。

1Tue, 28 Aug 2012 02:49:13 -0500

我在哪里實際上是希望的

1Tue, Aug 28, 2012 at 1:19 PM

我對這兩個價值觀的關系感到很困惑。

任何人都可以幫我弄明白我需要同時進入郵件詳細信息。

時區!樂趣。:-)

stackoverflow.com/questions/1790795/…

查看GMail中的電子郵件時,會在顯示發送電子郵件的日期和時間時使用您的本地時區。解析"Tue,2012年8月28日02:49:13 -0500",然后更新到您當地的時區,并以GMail特定的方式格式化。

解析和格式化stdlib方式

email.utils模塊包含一個parsedate_tz()功能,專門處理帶有時區偏移的電子郵件標頭。

它返回與time.struct_time兼容的元組,但添加了時區偏移量。附加的mktime_tz()函數將該元組轉換為偏移值(自UNIX紀元以來的秒數)。然后可以輕松地將該值轉換為datetime.datetime()類型對象。

同一模塊還具有formatdate()功能,可將UNIX紀元時間戳轉換為與電子郵件兼容的日期字符串:

1

2

3

4

5

6

7>>> from email.utils import parsedate_tz, mktime_tz, formatdate

>>> import time

>>> date = 'Tue, 28 Aug 2012 02:49:13 -0500'

>>> tt = parsedate_tz(date)

>>> timestamp = mktime_tz(tt)

>>> print formatdate(timestamp)

Tue, 28 Aug 2012 07:49:13 -0000

現在我們有一個適合外發電子郵件的格式化日期。要將其打印為我的本地時區(由我的計算機確定),您需要將localtime標志設置為True:

1

2>>> print formatdate(timestamp, True)

Tue, 28 Aug 2012 08:49:13 +0100

使用更好的工具進行解析和格式化

請注意,當我們嘗試處理時區時,事情變得毛茸茸,并且formatdate()函數沒有給你任何選項來格式化一些不同的東西(比如GMail),也不會讓你選擇不同的時區來工作用。

輸入外部python-dateutil模塊;它有一個解析函數,可以處理任何事情,并正確支持時區

1

2

3

4>>> import dateutil.parser

>>> dt = dateutil.parser.parse(date)

>>> dt

datetime.datetime(2012, 8, 28, 2, 49, 13, tzinfo=tzoffset(None, -18000))

parse()函數返回一個datetime.datetime()實例,這使得格式化更容易。現在我們可以使用.strftime()函數將其輸出為您的電子郵件客戶端:

1

2>>> print dt.strftime('%a, %b %d, %Y at %I:%M %p')

Tue, Aug 28, 2012 at 02:49 AM

當然,那仍然在當地時區;將其轉換為您的時區,使用.astimezone()方法,使用新的tzone對象。 python-dateutil包對我們來說有些方便。

以下是如何在本地時區(到您的機器)打印它:

1

2

3>>> import dateutil.tz

>>> print dt.astimezone(dateutil.tz.tzlocal()).strftime('%a, %b %d, %Y at %I:%M %p')

Tue, Aug 28, 2012 at 09:49 AM

或者使用特定的時區代替:

1

2>>> print dt.astimezone(dateutil.tz.tzstr('Asia/Kolkata')).strftime('%a, %b %d, %Y at %I:%M %p')

Tue, Aug 28, 2012 at 07:49 AM

實際上我要求輸出我可以捕獲的解析郵件...比如CC,TO或SENDER .....你引導我格式化那個日期時間字符串......我很舒服。

我剛剛再次更新了我的問題。

對,你對我認為的時區感到困惑;電子郵件日期被解析為一個時區,顯示在另一個時區。這通常不是問題。

請注意,您的問題遠非明確;目前尚不清楚您在哪里看到價值觀和預期。

@Martijin:現在好嗎?實際上我無法得到字符串"Tue,2012年8月28日下午1:19"..當我在瀏覽器中使用我的gmail acc打開它時,我可以在郵件中看到。

2012年8月28日星期二13:19:21在亞洲/加爾各答轉換到2012年8月28日星期二02:49:21 GMT-5 ...所以這是我的最終答案..謝謝@Martijin的幫助。

給出了很長的更新

有parsedate_tz和mktime_tz,即你不需要手工解析UTC偏移量

@ J.F.Sebastian:謝謝;不知道我當時錯過了那些。在我發布這個函數之后,這些函數并沒有被添加..: - /

你只能使用stdlib來做到這一點:

1

2

3

4>>> from email.utils import parsedate_tz, mktime_tz, formatdate

>>> ts = mktime_tz(parsedate_tz('Tue, 28 Aug 2012 02:49:13 -0500'))

>>> formatdate(ts, localtime=True) # assuming Asia/Kolkata is the local timezone

'Tue, 28 Aug 2012 13:19:13 +0530'

如果您想使用PM格式數小時:

1

2

3>>> from datetime import datetime

>>> datetime.fromtimestamp(ts).strftime('%a, %b %d, %Y at %I:%M %p')

'Tue, Aug 28, 2012 at 01:19 PM'

JF Sebastian只是一個錯字而不是日期時間他需要datetime.datetime示例應該是datetime.datetime.fromtimestamp(ts).strftime('%a,%b%d,%Y at%I:%M%p' )

@Dung:代碼按原樣運行。看看進口線。

此外,如果您希望日期格式與mysql日期時間格式匹配,則為:>>> datetime.fromtimestamp(ts).strftime('%y-%m-%d%H:%M:%S')

@Dung:再次,代碼按原樣運行。它產生OP明確要求的時間格式。看看這個問題。

可以選擇以下代碼

1

2

3

4start = f.find('date:') + 5 # +5 is to exclude 'date'+':' i.e.(4+1=5)

end = f.find('subject:', start) # parse from date to subject

date_time = f[start:end]

print date_time #it will print"Tue, Aug 28, 2012 at 1:19 PM"

總結

以上是生活随笔為你收集整理的邮件发送时间怎么修改 python_使用python通过电子邮件发送日期时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。