Python'da Otomatik E-posta Mesajları Nasıl Gönderilir

Python'da Otomatik E-posta Mesajları Nasıl Gönderilir

Ticari e-posta istemcileri, kullanıcı dostu bir GUI'nin rahatlığını sunarken, çoğu geliştiricinin veya içerik oluşturucunun e-posta ihtiyaçları için arzu ettiği esneklik ve özelleştirilebilirlikten yoksundurlar.





İster sosyal medya kanalınızda yeni bir aboneye bir teşekkür e-postası gönderin, ister en son projenize e-posta işlevselliği ekleyin, Python'da SMTP kullanarak otomatik mesajlar gönderme yeteneği mutlaka işe yarayacak bir şeydir.





Bugün makinenizde çalışan e-postaları göndermek için bir Python betiğini nasıl edinebileceğinizi öğrenmek için okumaya devam edin.





SMTP Nedir?

Basitçe söylemek 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, olarak bilinen bir süreç mağaza ve ileri postaları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 depola ve ilet özelliğini kullanır. Bu nedenle, SMTP'nin ana rolü, postanın bir ağda bir noktadan diğerine nerede ve nasıl hareket ettiğini dikte etmektir.

Başlarken

Bu programı kullanarak e-posta göndermek için kullanmak için bir e-posta hesabınızın olması gerekir. Bunun nedeni, e-posta göndermek için e-posta istemcisinin SMTP hizmetini kullanacağımı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.

Basitçe mevcut bir Gmail hesabını kullanmak mümkündür, ancak programınızla uğraşırken, kısa sürede test e-postalarıyla dolabilir. Bu nedenle, test amacıyla bir 'tek kullanımlık' 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 önerilmediğinden, kullanılıp atılan bir e-posta kullanmanın başka bir nedenidir.

E-postayı Python'da Yazmak

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 Python modüllerinde olduğu gibi, yapmanız gereken ilk şey smtplib'i içe aktarmaktır.

import smtplib

Bir SMTP Nesnesini Başlatma

Artık, size geleneksel bir e-posta istemcisinin işlevlerinin çoğunu sağlayacak olan bir SMTP nesnesi oluşturmak için smtplib'i kullanabilirsiniz. Ancak, bir SMTP nesnesinin işlevleri yalnızca örnek yöntemlerle kullanılabilir. Bu nedenle, doğal olarak, bir sonraki adım bir nesne örneği 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önderici 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 = senderMail@sender.com
myThroaway = 'myEmail@gmail.com'
emailRecipients = [myThroaway]

Burada dikkat edilmesi gereken 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 tüm bir posta listesini bile belirleyebilirsiniz!

Mesaj Yazma

Muhtemelen sürecin en basit kısmı, burada normalde yeni bir e-posta oluştururken ekleyeceğiniz değerleri girmeniz gerekiyor. Bu içerir:

  • Gönderenin ayrıntıları
  • Alıcının ayrıntıları
  • Ders
  • 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:

android ekranını kablosuz olarak bilgisayara yansıtma
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''

E-postayı Gönderme

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

mySMTP.sendmail(emailSender, emailRecipients, newEmail)

Şimdi son bir adım kaldı: Ö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ınkiyle bağlantı kuramayabilir veya bir SMTP bağlantı noktasından diğerine e-posta gönderirken sorun olabilir. Böyle bir durumda, programınız beklenmedik bir şekilde çökebilir.

Bu tür olasılıkları hesaba katmak için bir dene-hariç hataya açık ifadeleri engelleyin ve denemek engellemek. Tüm programınız, try-except bloğuyla birlikte şöyle görünmelidir:

import smtplib
emailSender = senderMail@sender.com
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
smtpObj = smtplib.SMTP(‘smtp.gmail.com’)
mySMTP.sendmail(emailSender, emailRecipients, newEmail)
print (Email sent successfully!)
except SMTPException:
print ('Error: There was an error in sending your email.')

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ına sahip basit bir SMTP sunucusu kullanmak, iletişime herhangi bir şifreleme katmanı sağlamaz. Bu, ağınızda herhangi bir üçüncü taraf dinliyorsa, 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 (Aktarım Katmanı Güvenliği) protokolünü kullanmaktır. Bu, e-postalarınızın asla yanlış ellere geçmemesini sağlamak için Gmail ve Outlook gibi büyük e-posta istemcileri tarafından kullanılan protokolün aynısıdır.

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

İlk adım, elbette, ithal etmektir. ssl kütüphane ile birlikte smtplib . NS ssl kitaplık size güvenli bir SSL bağlamı oluşturma ve her iki uçtaki belirli bağlantı noktalarına bağlanarak şifreli bir ağ üzerinden iletişim kurma yeteneği verir.

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

Bunu takiben TLS portunu belirleyip birkaç tane ekleyebiliriz. ssl güvenli bir e-posta gönderici oluşturmak için kitaplık işlevleri.

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

import smtplib, ssl
smtpServer = 'smtp.gmail.com'
port = 587
myEmail = 'my_email@gmail.com'
password = 'my_password'
#email and password can also be user input fields
context = ssl.create_default_context()
newEmail = '''From: From Person
To: To Person
Subject: Email Test
This is the body of the email.
'''
try:
server = smtplib.SMTP(smtpServer,port)
server.starttls(context=context)
server.login(newEmail, password)
except Exception as e:
print('the email could not be sent.')
finally:
server.quit()

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

dosyaları mac'ten pc'ye aktarma windows 10

Bu Python Komut Dosyası ile Yapabilecekleriniz

Artık kod kullanarak e-postaları otomatikleştirmenin harika ve şaşırtıcı derecede kullanışlı becerisini edindiğinize göre, bunu çeşitli 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ı veya ailenize ve arkadaşlarınıza davetiyeleri e-postayla göndermek için kullanmaya kadar, bu küçük Python betiğinin kullanımları yalnızca kendi yaratıcılığınızla sınırlıdır.

Ayrıca bu, Python ile yapabileceğiniz birçok harika şeyden sadece biridir. Her yerde bulunan geliştirici desteği ve öğrenmesi kolay sözdizimi ile bir Python becerisini 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 !

Paylaş Paylaş Cıvıldamak E-posta Keras, Pytorch, Tensorflow ve Daha Fazlasıyla Python ve Yapay Zeka Becerilerinizi Nasıl Yükseltebilirsiniz?

Python, Yapay Zeka, Keras, PyTorch ve daha fazlasında programlama ve web geliştirme becerilerinizi yükseltin

Sonrakini Oku
İlgili konular
  • Programlama
  • Gmail
  • E-posta İpuçları
  • piton
  • Görev Otomasyonu
Yazar hakkında Yash Chellani(10 Makale Yayınlandı)

Yash, teknolojiyle ilgili her şey hakkında bir şeyler inşa etmeyi ve 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.

Yash Chellani'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın