Otomatik E-posta Mesajları Gönderme - Python

  • Konuyu başlatan Konuyu başlatan Replicant
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 388

Replicant

Ehlî olmuşum elemlerin
Katılım
7 May 2010
Konular
10,579
Mesajlar
58,614
Çözüm
219
Online süresi
10mo 29d
Reaksiyon Skoru
16,721
Altın Konu
444
TM Yaşı
16 Yıl 1 Ay 5 Gün
Başarım Puanı
691
MmoLira
19,925
DevLira
601
Ticaret - 100%
2   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!


Merhabalar, bildiğiniz gibi ticari e-posta istemcileri, kullanıcı dostu bir GUI rahatlığını sunarken, çoğu geliştiricinin veya içerik oluşturucusunun e-posta gönderme ihtiyacıda oldukça fazladır.

Sosyal medya kanalınızdaki yeni bir aboneye teşekkür e-postası göndermek veya son projenize e-posta işlevselliği eklemek olsun, Python SMTP kullanarak otomatik mesajlar göndermeniz mümkündür.

SMTP nedir?


Basitçe söylemek gerekirse, SMTP açılımı ise Simple Mail Transfer Protocol (Basit Posta Aktarım Protokolü).
Posta sunucularının internet üzerinden e-posta iletmesi için bir iletişim protokolüdür.

İnternet veya diğer benzer ağlar üzerinden iletişim için kullanılan bir dizi protokol olan TCP / IP paketinin uygulama katmanının ayrılmaz bir parçasıdır.
SMTP'nin uygulandığı bir ağda, depolama ve iletme olarak bilinen bir işlem, postanın ağlar arasında taşınmasına yardımcı olur.

Her uç noktada, Posta Aktarım Aracısı (MTA) olarak bilinen yazılım, katılan SMTP sunucuları arasındaki iletişimi kolaylaştırmak için depolamayı ve iletmeyi kullanır.
Bu nedenle SMTP'nin temel rolü, postanın bir ağda bir noktadan diğerine nerede ve nasıl hareket ettiğini belirlemektir.

Başlarken

Bu programı kullanarak e-posta gönderebilmek için kullanacağınız bir e-posta hesabınızın olması gerekir.
Bunun nedeni, e-posta göndermek için e-posta istemcisinin SMTP hizmetini kullanacak olmamızdır. Bu eğitim için Gmail kullanacağız.

Test e-postaları göndermek için yerel bir SMTP hata ayıklama sunucusu da kullanabilirsiniz, ancak şimdilik daha sezgisel olduğu için e-posta göndermek için bir e-posta hesabı kullanacağız.

Mevcut bir Gmail hesabını basitçe kullanmak mümkündür, ancak programınızla uğraşırken yakında test e-postalarıyla dolabilir.
Bu nedenle, test amacıyla yedek bir throwaway hesabı oluşturmanızı öneririz.

Şimdi, daha az güvenli uygulamaların Gmail hesabınıza erişmesine izin verme seçeneğini açın.
Bu, birincil e-postanızın gizlilik ayarlarıyla oynamanız tavsiye edilmediğinden yedek bir e-posta kullanmanın başka bir nedenidir.

E-postayı Python ile Yazma

Python 3, SMTP sunucularıyla çalışmak için kullanılabilen smtplib (smtp kitaplığının kısaltması) adlı bir modülle önceden yüklenmiş olarak gelir.

Diğer herhangi bir Python modülü gibi, yapmanız gereken ilk şey smtplib'i içe aktarmaktır.

import smtplib

Bir SMTP Nesnesini Başlatma


Artık smtplib, size geleneksel bir e-posta istemcisinin birçok işlevini sağlayacak.SMTP nesnesi oluşturmak için kullanabilirsiniz. Ancak, bir SMTP nesnesinin işlevleri yalnızca örnek yöntemleri aracılığıyla kullanılabilir. Dolayısıyla, bir sonraki adım bir nesne örneğini bildirmektir.

mySMTP = smtplib.SMTP("smtp.google.com")

Bu, SMTP nesnesini Google'ın SMTP sunucusunu kullanarak e-posta gönderecek şekilde yapılandırır.

Bundan sonra gönderen ve alıcı e-postalarını belirliyoruz. Daha önce açtığınız Gmail hesabının kullanışlı olduğu yer burasıdır.

emailSender = “senderMail@sender.com
myThroaway = "myEmail@gmail.com"
emailRecipients = [myThroaway]

Burada dikkat edilmesi gereken bir nokta, alıcı listesinin aslında bir dizi olmasıdır, yani atomik olmayan değerleri depolamak için tasarlanmıştır.
Sonuç olarak, bu alanda tam bir posta listesi bile belirtebilirsiniz!

Mesajı Yazmak

Muhtemelen sürecin en basit kısmı, burada yeni bir e-posta oluştururken normalde ekleyeceğiniz değerleri girmeniz gerekir.

  • Gönderenin ayrıntıları
  • Alıcının ayrıntıları
  • Konu
  • Mesaj gövdesi
Bu alanlar, üçlü tırnak işaretleri içinde bir araya getirilir ve aşağıdaki gibi sınırlandırılır:

newEmail = """From: From Person <senderMail@sender.com>
To: To Person <my_email@gmail.com>
Subject: Email Test
This is the body of the email.
"""

E-postayı Gönderme

Son olarak, postayı SMTP sunucunuzdan alıcının sunucusuna göndermek için sendmail komutunu kullanabiliriz.

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Şimdi, son bir adım var: öngörülebilir herhangi bir program çökmesini önlemek için kodu yeniden düzenlemek.

Python E-posta Programınızda Sorun Giderme

Bazen, SMTP sunucunuz alıcının sunucusuyla bağlantı kuramayabilir veya bir SMTP bağlantı noktasından diğerine e-posta gönderirken bir sorun olabilir.
Böyle bir durumda programınız beklenmedik şekilde çökebilir.

Bu tür olasılıkları hesaba katmak için, bir try-except yedek blok kullanabilir ve hataya açık ifadeleri try bloğunun içine yerleştirebilirsiniz.
Tüm programınız, try-exclude bloğuyla birlikte şunun gibi görünmelidir:


E-postalarınızın Güvenliğini Sağlama

Python'u e-posta göndermek için gerçek dünya ortamında kullanmayı düşünüyorsanız, iletişimin her iki uçta da güvenli olduğundan emin olmanız önemlidir.

Varsayılan bağlantı noktasıyla basit bir SMTP sunucusu kullanmak, iletişime herhangi bir şifreleme katmanı sağlamaz.
Bu, ağınızda herhangi bir üçüncü tarafın oturum açma kimlik bilgilerinize ve e-postanızdaki bilgilere erişebileceği anlamına gelir.

Bu sorunu aşmanın bir yolu, iletişiminizi şifrelemek için TLS (Taşıma Katmanı Güvenliği) protokolünü kullanmaktır.
Bu, e-postalarınızın yanlış ellere düşmemesini sağlamak için Gmail ve Outlook gibi büyük e-posta istemcileri tarafından kullanılan protokoldür.



Bunu yapmak için, daha önce oluşturduğumuz programda birkaç küçük değişiklik yapmamız gerekiyor.

İlk adım, tabii ki, smtplib ile birlikte ssl kitaplığını içe aktarmaktır. Ssl size güvenli bir SSL protokolü oluşturarak her iki ucunda belirli limanlara bağlı olması ve şifreli ağ üzerinden iletişim olanağı sağlar.

Güvenli bir SSL bağlamı, şifreler, protokol sürümleri, güvenilir sertifikalar, TLS seçenekleri ve TLS uzantılarından oluşan bir koleksiyondan başka bir şey değildir.

Bunu takiben, TLS portunu belirleyebilir ve güvenli bir e-posta oluşturucu oluşturmak için birkaç ssl kitaplığı işlevi ekleyebiliriz .

Yapılan tüm değişikliklerle birlikte kod şuna benzer:


Daha önce belirttiğim gibi, herhangi bir ani program çökmesini önlemek için SMTP örneğini bir try-except bloğunda oluşturmalı ve kullanmalısınız.

Bu Python Komut Dosyasıyla Yapabilecekleriniz


Otomatik onay e-postaları göndermek için kişisel web sitenizde kullanabilir, davetiyeleri, ailenize ve arkadaşlarınıza e-postayla göndermeye kadar birçok işlemi bu sayede yapabilirsiniz. Python betiğinin kullanımı yalnızca kendi yaratıcılığınızla sınırlıdır.
 
Ellerine sağlık, paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)