2017-04-09 83 views
0

我想製作一個程序,只要它運行就會給我發送日期和時間。 我使用smtlib並驗證它已經使用一些字符串作爲消息,它工作正常。但是,無論何時添加日期時間變量並將其轉換爲字符串,它都會發送一封空郵件。無法通過SMTPLIB發送日期時間蟒蛇Python

import smtplib 
import datetime 

b=datetime.datetime.time(datetime.datetime.now()) 

print b 

svr = smtplib.SMTP("smtp.gmail.com:587") 
svr.starttls() 
svr.login("******@*****", "*********") 

msg = str(b) 


svr.sendmail("******@*****", "******@*****", msg) 
print ("Terminate") 

svr.quit() 
+0

沒有還是個空白消息。我只想要發送時間如此使用b = datetime.datetime.time(datetime.datetime.now()) –

+0

msg必須包含標題,空白行和消息正文。 – VPfB

回答

-2

這是有點混亂,但它的作品,我已經做了,但b是在一個名爲c列表,發送列表,而不是,可惜我不知道爲什麼你在那裏做不工作.. 。下面的代碼:

import smtplib 
import datetime 
b = datetime.datetime.time(datetime.datetime.now()) 
c = [] 
c.insert(0, b) 
server = smtplib.SMTP('smtp.gmail.com:587') 
server.starttls() 
server.login("***********", "***********") 

msg = '' + str(c) + '' 
server.sendmail("**********", "*********", msg) 
server.quit() 
raise SystemExit 
+0

由於某些原因,我無法發送特殊字符,如:;等通過smtplib。 –

+0

我不能......只是試過 – Monkeybike123

+0

可能是谷歌的安全問題。 –

1

您應該添加標題到您的msg

headers = "From: From Person \r\n" 
headers += "To: To Person \r\n" 
headers += "Subject: \r\n" 
headers += "\r\n" 
msg = headers + msg 
+0

恕我直言,這解決了這個問題。當然,必須提供有效的郵件地址。 RFC2822規定,標題行應該是CRLF終止的,即用'\ r \ n' – VPfB

+0

在理論上是的,但它起作用。而你對''\ r \ n'正確,我會更新我的文章。 –