Ticari e-posta istemcileri, kullanıcı dostu bir GUI'nin rahatlığını sunarken, genellikle birçok geliştiricinin veya içerik oluşturucunun e-postaları için arzu ettiği esneklik ve özelleştirilebilirlik ihtiyacı var.
Sosyal medya kanalınızdaki yeni bir aboneye teşekkür e-postası göndermek veya En son projeniz, Python'da SMTP kullanarak otomatik mesajlar gönderme yeteneği, gelmek zorunda olan bir şeydir. kullanışlı.
Bugün makinenizde çalışan e-postaları göndermek için bir Python komut dosyasını nasıl edinebileceğinizi öğrenmek için okumaya devam edin.
SMTP nedir?
Basitçe ifade etmek gerekirse, SMTP veya 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, mağaza ve ileri 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öndermek 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 daha sezgisel olduğu için şimdilik 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 etmek için bir "atıl" hesap oluşturmanızı öneririz.
Şimdi seçeneği açın daha az güvenli uygulamalara izin ver Gmail hesabınıza erişmek için. Bu, birincil e-postanızın gizlilik ayarlarıyla oynamanız tavsiye edilmediğinden atıl 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.
smtplib'i içe aktar
Bir SMTP Nesnesini Başlatma
Artık smtplib'i, size geleneksel bir e-posta istemcisinin işlevselliğinin çoğunu sağlayacak bir 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, doğal olarak, 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 yaptığınız Gmail hesabının kullanışlı olduğu yer burasıdır.
emailSender = "[email protected]"
myThroaway = "[email protected]"
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. Bu içerir:
- 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 = Gönderen: Kişiden
Kime: Kişiye
Konu: E-posta Testi
Bu, e-postanın gövdesidir.
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 denemek hariç engelleyin ve hataya açık ifadeleri Deneyin blok. Tüm programınız, try-exclude bloğuyla birlikte şunun gibi görünmelidir:
smtplib'i içe aktar
emailSender = "[email protected]"
myThroaway = "[email protected]"
emailRecipients = [myThroaway]
newEmail = Gönderen: Kişiden
Kime: Kişiye
Konu: E-posta Testi
Bu, e-postanın gövdesidir.
Deneyin:
smtpObj = smtplib. SMTP ("smtp.gmail.com")
mySMTP.sendmail (emailSender, emailRecipients, newEmail)
yazdır ("E-posta başarıyla gönderildi!")
SMTPException hariç:
print ("Hata: E-postanızı gönderirken bir hata oluştu.")
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 dinleyen 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 asla 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.
Elbette ilk adım, ssl ile birlikte kütüphane smtplib. ssl kütüphane size güvenli bir SSL içeriği oluşturma ve her iki uçtaki belirli bağlantı noktalarına bağlanarak şifreli bir ağ üzerinden iletişim kurma yeteneği 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 birkaç tane ekleyebiliriz ssl güvenli bir e-posta oluşturucu oluşturmak için kütüphane işlevleri.
Yapılan tüm değişikliklerle birlikte kod şuna benzer:
içe aktarma smtplib, ssl
smtpServer = "smtp.gmail.com"
port = 587
myEmail = "[email protected]"
password = "my_password"
# e-posta ve şifre, kullanıcı giriş alanları da olabilir
context = ssl.create_default_context ()
newEmail = Gönderen: Kişiden
Kime: Kişiye
Konu: E-posta Testi
Bu, e-postanın gövdesidir.
Deneyin:
sunucu = smtplib. SMTP (smtpServer, bağlantı noktası)
server.starttls (bağlam = bağlam)
server.login (yeniE-posta, şifre)
e gibi İstisna hariç:
baskı ("e-posta gönderilemedi.")
en sonunda:
server.quit ()
Daha önce olduğu gibi, herhangi bir ani program çökmesini önlemek için SMTP örneğini bir deneme hariç bloğunda oluşturmalı ve kullanmalısınız.
Bu Python Komut Dosyasıyla Yapabilecekleriniz
Artık kod kullanarak e-postaları otomatikleştirmenin harika ve şaşırtıcı derecede faydalı becerisini öğrendiğinize göre, bunu farklı bir posta listesine e-posta göndermeyi gerektiren herhangi bir platforma uygulayabilirsiniz.
Otomatik onay e-postaları göndermek için kişisel web sitenizde kullanmaktan Noel kartlarını e-postayla göndermek için kullanmaya kadar veya ailenize ve arkadaşlarınıza davetler için, bu küçük Python betiğinin kullanımları yalnızca sizin tarafınızdan sınırlandırılmıştır. yaratıcılık.
Ayrıca, bu Python ile yapabileceğiniz pek çok harika şeyden sadece biridir. Her yerde bulunan geliştirici desteği ve öğrenmesi kolay sözdizimi ile bir Python becerisi edinmek hiç bu kadar kolay olmamıştı.
Kodla harika şeyler oluşturmaya devam etmek için nasıl yapılacağına ilişkin kılavuzumuza göz atın. Python 3 ile kendi Telegram botunuzu oluşturun!
Python, Yapay Zeka, Keras, PyTorch ve daha fazlasında programlama ve web geliştirme becerilerinizi yükseltin
- Programlama
- Gmail
- E-posta İpuçları
- Python
- Görev Otomasyonu
Yash, bir şeyler inşa etmeyi ve teknolojiyle ilgili her şey hakkında yazmayı seven, hevesli bir bilgisayar bilimi öğrencisidir. Boş zamanlarında Squash oynamayı, en son Murakami'nin bir kopyasını okumayı ve Skyrim'de ejderha avlamayı sever.
Haber bültenimize abone ol
Teknoloji ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için haber bültenimize katılın!
Bir adım daha…!
Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.