2014-12-03 165 views
0

我是新來的蟒蛇,當我試圖發送郵件發送電子郵件通過使用python我的計劃是波紋管試圖從蟒蛇

import smtplib 
from smtplib import SMTP 

sender = '[email protected]' 
receivers = ['[email protected]'] 

message = """ this message sending from python 
for testing purpose 
""" 

try: 
smtpObj = smtplib.SMTP('smtp.gmail.com', 587) 
smtpObj.ehlo() 
smtpObj.starttls() 
smtpObj.ehlo() 
smtpObj.login(username,password) 
smtpObj.sendmail(sender, receivers, message) 
smtpObj.quit() 
print "Successfully sent email" 
except smtplib.SMTPException: 

打印「錯誤:無法發送電子郵件」

當我執行它顯示錯誤:無法發送郵件,如何在python發送電子郵件請解釋

+1

*「它顯示錯誤:無法發送郵件信息」* - 這正是你要求它做的!如果你沒有用'try'包裝整個過程,你會得到一個更具體的錯誤信息,給你更多關於這個問題的信息。 – jonrsharpe 2014-12-03 13:01:10

回答

1

我已經在代碼中完成跑這個代碼你會看到這樣的錯誤消息,說明谷歌不允許你通過代碼登錄

在Gmail中改變的事情:

1.登陸到Gmail

2.進入這個鏈接https://www.google.com/settings/security/lesssecureapps

3.Click使然後重試代碼

希望它能幫助:)

但也有,如果安全威脅ü啓用它

+0

我在except行得到無效的語法,指向錯誤之前的逗號(代碼中的第20行)。爲什麼? – 2016-12-13 00:19:08

+0

@YannisDran你使用的是python 3 – The6thSense 2016-12-15 06:25:57

+0

是的,我已經在打印後放了括號。 – 2016-12-15 07:58:41

2

因爲在這裏說:How to send an email with Gmail as provider using Python?

此代碼的工作。但是,如果您想允許此腳本發送電子郵件,GMAIL會警告您。登錄您的帳戶,並accesss這個網址:

1.添加一個錯誤對象來獲得錯誤信息

import smtplib 
from smtplib import SMTP  

try: 
    sender = '[email protected]' 
    receivers = ['xxx.com'] 

    message = """ this message sending from python 
    for testing purpose 
    """ 
    smtpObj = smtplib.SMTP(host='smtp.gmail.com', port=587) 
    smtpObj.ehlo() 
    smtpObj.starttls() 
    smtpObj.ehlo() 
    smtpObj.login('xxx','xxx') 
    smtpObj.sendmail(sender, receivers, message) 
    smtpObj.quit() 
    print "Successfully sent email" 
except smtplib.SMTPException,error: 
    print str(error) 
    print "Error: unable to send email" 

如果妳:https://www.google.com/settings/security/lesssecureapps

import smtplib 
gmail_user = "[email protected]" 
gmail_pwd = "mypassword" 
FROM = '[email protected]' 
TO = ['[email protected]'] #must be a list 
SUBJECT = "Testing sending using gmail" 
TEXT = "Testing sending mail using gmail servers" 
# Prepare actual message 
message = """\From: %s\nTo: %s\nSubject: %s\n\n%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 
try: 
    #server = smtplib.SMTP(SERVER) 
    server = smtplib.SMTP("smtp.gmail.com", 587) #or port 465 doesn't seem to work! 
    server.ehlo() 
    server.starttls() 
    server.login(gmail_user, gmail_pwd) 
    server.sendmail(FROM, TO, message) 
    #server.quit() 
    server.close() 
    print 'successfully sent the mail' 
except: 
    print "failed to send mail" 
+0

感謝有關警告的信息。 URL信息適用於我。 – BaldDude 2014-12-04 13:20:40