2017-04-09 4 views
0

실행될 때마다 날짜와 시간을 이메일로 알려주는 프로그램을 만들려고합니다. smtlib를 사용 중이고 이미 일부 문자열을 메시지로 사용하고 있으며 정상적으로 작동하는지 확인했습니다. 그러나 datetime 변수를 추가하고 문자열로 변환 할 때마다 빈 이메일이 전송됩니다.SMTPLIB를 통해 datetime을 전송할 수 없습니다. 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

이 좀 지저분하지만 내가 무슨 짓을 한 것은 c라는 목록에 있지만 b하고 대신에, 불행하게도 나는 당신이하고 작동하지 않는 것을 왜 아무 생각이 목록을 전송, 작동 .. .

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

아마도 Google의 보안 문제. –

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

IMHO를 사용하여이 문제를 해결하십시오. 물론 유효한 메일 주소가 제공되어야합니다. RFC2822에 따르면 헤더 행은 CRLF로 끝나야합니다 (예 :'\ ​​r \ n '). – VPfB

+0

이론적으로는 작동하지만 작동합니다. 그리고 당신은'\ r \ n'에 대해 옳았습니다. 나는 내 소식을 업데이트 할 것입니다. –