- 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
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!
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
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:
import smtplib
emailSender = “senderMail@sender.com”
myThroaway = ‘my_email@gmail.com’
emailRecipients = [myThroaway]
newEmail = """From: From Person <senderMail@sender.com>
To: To Person <my_email@gmail.com>
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ı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:
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 <senderMail@sender.com>
To: To Person <my_email@gmail.com>
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 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.
- Katılım
- 28 Eki 2013
- Konular
- 4,450
- Mesajlar
- 15,086
- Çözüm
- 60
- Online süresi
- 4mo 17d
- Reaksiyon Skoru
- 5,551
- Altın Konu
- 117
- Başarım Puanı
- 467
- MmoLira
- 3,671
- DevLira
- 7
Ellerine sağlık, paylaşım için teşekkürler. 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 30
- Cevaplar
- 1
- Görüntüleme
- 43
Altın Konu
E-posta güvenliği nedir?
- Cevaplar
- 3
- Görüntüleme
- 93


