2012-10-29 20 views
12

kendime basit bir sendmail işlevini yazıyorum ve bu hatayı almaya devam: Yeni Python için, GMail SMTP hatası

NameError

: adı 'SMTPException' benim koduyla yanlış nedir

tanımlanmamıştır? Baska öneri?

import smtplib 

sender = "[email protected]" 
receiver = ["[email protected]"] 
message = "Hello!" 

try: 
    session = smptlib.SMTP('smtp.gmail.com',587) 
    session.ehlo() 
    session.starttls() 
    session.ehlo() 
    session.login(sender,'password') 
    session.sendmail(sender,receiver,message) 
    session.quit() 
except SMTPException: 
    print('Error') 

cevap

20

Python olarak, tam olarak modülün önüne işaret koyun adını nitelemek gerekir: Özellikle vasıfsız adını içe (ama bunu tavsiye değildir sürece

except smtplib.SMTPException: 

bu durum geçerlidir Bu programınız için, mümkün olanı gösteren):

from smtplib import SMTPException 
+0

Ah Yazım hatası yaşadım. – eatonphil

+5

Endişelenmeyin bile, SMTP ile 20 yıl çalıştıktan sonra bile bunu yapıyorum. –

1

Bu yanlış yazım bana da birçok kez oldu! Bu "sorunu" aşmanın bir yolu, yagmail kullanmaktır.

Şakalar bir yana, kısa süre önce e-posta göndermeyi kolaylaştırmak için yagmail'i oluşturdum. Örneğin

: To tanımlı değil zaman, örneğin Burada birkaç kısalmalara kullanır

import yagmail 
yag = yagmail.SMTP('[email protected]', 'password') 
yag.send(contents = "Hello!") 

, sunucuda kayıtlı aynı e-postayı posta gönderir. Ayrıca liman ve ana bilgisayar varsayılan, bu çok özlü kılıyor. Aslında

, bu bağlantıyı hemen kapatmak istiyor gibi görünüyor beri, hatta bu tek astar kullanabilirsiniz:

yagmail.SMTP('[email protected]', 'password').send(contents = "Hello!") 

güvenlik için (belgelerine bakın) bu tür keyring parolanızı tutabilir Kişisel şifrelerinizi komut dosyalarınızda tutmak zorunda kalmamanız çok önemlidir! Hatta sizi daha değerli ekranlardan kurtaracak. paketi ile hepsi gidiyor

(@gmail.com varsayılan), aşağıdaki kurtulabilir:

yagmail.SMTP('user').send('', 'Hello!') 

İyi şanslar.

+1

Yorum yapmadan önce oy verdiniz. – PascalVKooten

+2

yagmail kullandım ve çok teşekkür ettim! – sureshvv

+0

@sureshvv Teşekkürler :) Umarım size iyi hizmet verir. – PascalVKooten

İlgili konular