2012-01-24 52 views
3

我可以讓smtplib發送到其他電子郵件地址,但由於某種原因,它沒有傳送到我的手機。通過Python和smtplib發送Verizon SMS消息

import smtplib 
msg = 'test' 
server = smtplib.SMTP('smtp.gmail.com',587) 
server.starttls() 
server.login("<username>","<password>") 
server.sendmail(username, "<number>@vtext.com", msg) 
server.quit() 

當地址是gmail帳戶,並且使用本地gmail界面向手機發送消息時,郵件成功發送完美。短信號碼有什麼不同?

注意:使用set_debuglevel()我可以說smtplib認爲該消息是成功的,所以我相當相信這種差異與vtext數字的行爲有關。

回答

4

電子郵件被拒絕,因爲它不看電子郵件(沒有任何要From或主題字段)

這工作:

import smtplib 

username = "[email protected]" 
password = "password" 

vtext = "[email protected]" 
message = "this is the message to be sent" 

msg = """From: %s 
To: %s 
Subject: text-message 
%s""" % (username, vtext, message) 

server = smtplib.SMTP('smtp.gmail.com',587) 
server.starttls() 
server.login(username,password) 
server.sendmail(username, vtext, msg) 
server.quit() 
+0

謝謝!我之前嘗試添加「收件人」和「發件人」字段,但我忘記了主題字段。完美的作品! – user1166347

1

接受的答案沒有工作對於我來說Python 3.3.3。我也必須使用MIMEText:

import smtplib 
from email.mime.text import MIMEText 

username = "[email protected]" 
password = "password" 

vtext = "[email protected]" 
message = "this is the message to be sent" 

msg = MIMEText("""From: %s 
To: %s 
Subject: text-message 
%s""" % (username, vtext, message)) 

server = smtplib.SMTP('smtp.gmail.com',587) 
# server.starttls() 
server.login(username,password) 
server.sendmail(username, vtext, msg.as_string()) 
server.quit()