Python e-posta gönder

Python işlevleri ve meth




Python Kullanarak Nasıl E-posta Gönderilir

Python birçok özelliği olan bir dildir. Veri analizi, web geliştirme ve daha fazlası için kullanılabilir. Hepsi bu kadar değil, Python'un gizli bir özelliği var: onu e-posta göndermek için kullanabilirsiniz. Bu, bir Python programından şifre sıfırlama e-postaları, şifremi unuttum e-postaları, kullanıcı bildirimleri ve göndermek istediğiniz diğer e-postaları gönderebileceğiniz anlamına gelir.

Bu kılavuzda, Python kullanarak nasıl e-posta gönderileceğini tartışın. E-posta ve smtplib kitaplıklarını, nasıl çalıştıklarını ve bir e-posta göndermek için örnek bir program yazacağız. 

Daha fazla uzatmadan başlayalım!




Python Kullanarak E-posta Gönderme

Bir bilgisayar programından e-posta gönderdiğinizde, programınız mesajı Basit Posta Aktarım Protokolü (SMTP) adı verilen bir protokol kullanarak gönderir. Bu protokol, e-posta hizmetleri ve dünya çapındaki istemciler tarafından mesaj göndermek için kullanılır. 

Bir bilgisayar programından e-posta göndermek için bir SMTP sunucunuz olması gerekir. Birini kendiniz kurabilirsiniz, ancak bunu her zaman yapmanız gerekmez. Gmail ve Outlook gibi hizmetler, e-posta göndermek için mevcut e-posta hesaplarınızı kullanabilmeniz için SMTP hizmetleri sağlar.

Bu kılavuz için, Gmail'den’ SMTP sunucusu. SMTP sunucuları hakkında daha fazla bilgiyi Gmail resmi belgelerinde bulabilirsiniz. E-posta sağlayıcınızın SMTP'yi destekleyip desteklemediğini öğrenmek için ‘[sağlayıcınızın adı] SMTP kimlik bilgileri’ için çevrimiçi arama yapın.

E-posta göndermek için izlememiz gereken üç adım var:

  • SMTP bağlantımızı yapılandırın
  • Bir mesaj nesnesi oluşturun
  • Mesajı SMTP üzerinden gönderin



Yapılandırma bir SMTP Bağlantısı

Başlamak için SMTP bağlantımızı kuralım. Bunu, bağlantıyı yönetmek için ihtiyacımız olan tüm kodu sağlayan smtplib adlı bir kitaplık kullanarak yapabiliriz. Bu kitaplık sayesinde, bir e-posta göndermek için yalnızca birkaç satır kod yeterlidir.

Katılımcıların %81'i, bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda kendilerini daha güvende hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleşin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan az zaman harcadı.

Smtplib kitaplığını içe aktararak başlayın. kodunuza ekleyin:

smtplib'i içe aktar

Artık SMTP sunucumuz için kimlik bilgilerini saklayan değişkenleri ayarlamak için. Bu değerleri değişkenlerde saklamak, kodumuzun okunabilirliğini korumamıza yardımcı olacaktır. İşte kullanacağımız değişkenler:

sender = '[email protected]' password = '123456' server = 'smtp.gmail.com' port = 465

Bu kod, bir SMTP bağlantısı oluşturmak için ihtiyaç duyduğumuz tüm yapılandırmayı içerir. Artık bu kurulumu yaptığımıza göre, SMTP sunucumuza giriş yapabiliriz:

server = smtplib .SMTP_SSL(sunucu, bağlantı noktası) server.login(sender, password)

Kodumuz, SMTP sunucumuza bir SSL bağlantısı oluşturur. Bu, sunucumuza bağlanmak için Güvenli Yuva Katmanı (SSL) kullandığımız anlamına gelir. SSL, geleneksel bir bağlantıdan daha güvenlidir ve bunun sonucunda SMTP sunucularında bir standart haline gelmiştir.

SMTP bağlantımız artık yapılandırılmıştır!




Bir İleti Nesnesi Oluşturun

Kodumuz şu anda pek bir şey yapmıyor: kesinlikle e-posta göndermiyor. Bunun nedeni, henüz bir mesaj nesnesi oluşturmamış olmamızdır. Bunu e-posta kitaplığını kullanarak yapalım. Bir ileti nesnesi oluşturmak için smtplib'i kullanabilirsiniz, ancak e-posta kitaplığı daha kısadır.

Hadi içe aktarma ile başlayalım. gerekli e-posta paketleri:

İçe aktarılan bu kitaplıklar ile mesaj nesnemizi oluşturabiliriz:

message = MIMEMultipart() body = 'Bu, Python'dan gönderilen bir e-postadır!' mesajı['Kimden'] = gönderen mesajı['Kime'] = '[email protected]' mesajı['Konu'] = 'Bu bir test e-postasıdır' message.attach(MIMEText(body, 'plain'))

‘message’ adlı bir nesneyi başlatarak başladık. Bu nesne, e-posta kitaplığından MIMEMultipart sınıfına başvurur. Ardından e-postamızın gövdesini ve göndereni, alıcıyı ve konuyu belirledik.


Kodumuzun son satırı, mesajımızın gövdesini e-postamıza ekler.




Mesajı Gönder

Şimdi tüm bu’s tek yapmamız gereken mesajımızı göndermek:

server.send_message(message)

Kodumuzu birlikte çalıştırdığımızda bir e-posta gönderilir! ‘Bu bir test e-postasıdır’ başlıklı bir e-posta [email protected]'dan [email protected]'a gönderilir.




Bir Dosyadan Şablon Okuma

E-postamızın gövdesi yalnızca bir satır uzunluğundadır. Bu, e-postamızın gövdesini Python içinde yazmanın bizim için daha pratik olduğu anlamına gelir. Çoğu e-posta bundan daha uzundur ve bu nedenle, belirli bir e-postanın metnini depolayan bir şablon oluşturmak daha iyidir.

Bir dosya çağrısı oluşturarak başlayacağız. d email.txt ve aşağıdaki içeriği yapıştırın:

Merhaba ${NAME}, Bu bir test e-postasıdır ! Teşekkürler, Python.Engineering

Bu şablon, küme parantezleri ({}) içine alınmış ve önünde bir dolar işareti ($) bulunan “NAME” adlı bir değişken içerir. Bu değişken, kodumuzun ilerleyen bölümlerinde alıcının adıyla değiştirilecektir.

Şimdi bu şablonu kodumuza okumamız gerekecek. Bunu, dosyamızı okumak için open() yöntemini kullanan read_email adında bir sınıf oluşturarak yapabiliriz.

String kitaplığından Template nesnesini içe aktaracağız. Bu nesneyi, e-postamız tarafından okunabilecek bir nesne oluşturmak için kullanacağız. Python programınızın en üstüne aşağıdaki kod satırını yapıştırın:

string import Template

Tüm import ifadelerinizin altına şu kodu yapıştırın:

"Python.Engineering hayatıma en çok ihtiyacım olduğu anda girdi ve hızlı bir şekilde bir bootcamp ile eşleşmeme yardımcı oldu. İki ay sonra Mezun olurken, hayattaki değerlerim ve hedeflerim ile uyumlu hayalimdeki işi buldum!"

Venus, Rockbot'ta Yazılım Mühendisi

Bu işlev, “email.txt” adlı dosyayı okuyacaktır; “içerik” değişkenine girin. Değeri daha sonra “string” kütüphane. Dosyaları okuma hakkında daha fazla bilgiyi Python okuma dosyası eğiticimizde bulabilirsiniz.


Programınızda aşağıdaki kod satırını değiştirin:

body = 'Bu, Python'dan gönderilen bir e-postadır!'

Bu kodu kullanmak için:

email_content = read_email() body = email_content.substitute(NAME="Test")

Bu kod, read_email() işlevini çağırır Kodumuzda “email.txt” dosyasının içeriğini okumak için. Ardından, e-posta şablonumuzun içindeki NAME değeri “Test” ile değiştirilir. Kodumuz birlikte şöyle görünür:

email.mime.multipart'tan smtplib'i içe aktar MIMEMemail.mime.text'ten içe aktar MIMEText'i dizeden içe aktar Şablon def read_ email(): dosya olarak open('email.txt', 'r') ile: içerik = file.read() dönüş Şablon(içerik) gönderen = '[email protected]' şifre = '123456" sunucu = 'smtp .gmail.com' bağlantı noktası = 465 sunucu = smtplib.SMTP_SSL(sunucu, bağlantı noktası) server.login(gönderen, şifre) mesajı = MIMEMultipart() email_content = read_email() body = email_content.substitute(NAME="Test") mesajı[ 'From'] = gönderen mesajı['Kime'] = '[email protected]' mesajı['Konu'] = 'Bu bir test e-postasıdır' message.attach(MIMEText(body, 'plain'))

Bu programı çalıştırdığınızda, SMTP sunucu kimlik bilgilerinizi değiştirerek bir e-posta gönderilecektir. Az önce bir e-posta göndermek için bir program yazdınız.




Sonuç

Python'da e-posta göndermek zor olmak zorunda değil. Şablon kullanmadan e-posta göndermek yalnızca birkaç satır kod alır. E-posta ve smtplib modülleri, ağır kaldırma işlemlerinin çoğunu yapar. Bununla birlikte, e-postalarınız için değerlerin yerini alabilecek şablonlar oluşturmak için e-posta modülünü daha kapsamlı bir şekilde kullanabilirsiniz.

Bir meydan okumaya hazır mısınız? Birden çok alıcıya e-posta göndermeyi desteklemek için programı yukarıdan değiştirin. İpucu: Bu e-postaları göndermek için bir for döngüsü kullanmak isteyeceksiniz.

Artık Python'da bir uzman gibi e-posta göndermeye hazırsınız!





Python e-posta gönder: StackOverflow Questions

Tutorials