E-posta yerleşik Python modülü bize kolayca e-posta mesajları oluşturmak sağlar.
Bir e-posta mesajı oluşturmak için email.message.EmailMessage sınıfını kullanarak başlayacağız.
>>> from email.message import EmailMessage >>> message = EmailMessage() >>> sender = "me@example.com" >>> recipient = "you@example.com" >>> message['From'] = sender >>> message['To'] = recipient >>> message['Subject'] = 'Greetings from {} to {}!'.format(sender, recipient) >>> print(message)Mesaj nesnesini yazdırmak bize o nesnenin dize temsilini verir
Çıktı:
From: me@example.com To: you@example.com Subject: Greetings from me@example.com to you@example.com!Kimden , Kime ve Konu , e-posta başlığı alanlarına örnektir . Onlar konum anahtar-değer çiftleri yönlendirmek için e-posta istemcileri ve sunucuları tarafından kullanılan etiket ve talimatların ve e-posta görüntüler. Mesajın ana içeriği olan e-postanın mesaj gövdesinden ayrıdırlar.
Maile Bir gövde eklemek:
>>> body = """Hey there!. I'm learning to send emails using Python!""" >>> message.set_content(body) >>> print(message)Çıktı :
From: me@example.com To: you@example.com Subject: Greetings from me@example.com to you@example.com! MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hey there! I'm learning to send email using Python!Bir ek eklemek:
E-posta mesajları tamamen dizelerden oluşur. Bir e-postaya ek eklediğinizde, ekin türü ne olursa olsun, bir tür metin olarak kodlanır. Çok Amaçlı Internet Posta Uzantıları (MIME) standart e-posta yoluyla gönderilebilir metin dizeleri olarak dosyaların her türlü kodlamak için kullanılır.
İletinizin alıcısının bir ekle ne yapacağını anlaması için, eki bir MIME türü ve alt türle etiketleyerek onlara ne tür bir dosya gönderdiğinizi söylememiz gerekir. Internet Assigned Numbers Authority (IANA) ( iana.org ) barındıran geçerli bir MIME türlerinin bir kayıt . Göndereceğiniz dosyaların doğru türünü ve alt türünü biliyorsanız, bu değerleri doğrudan kullanabilirsiniz. Bilmiyorsanız, iyi bir tahmin yapmak için Python mimeypes modülünü kullanabilirsiniz.
mime_type dizesi, eğik çizgiyle ayrılmış MIME türünü ve alt türünü içerir. EmailMessage tipi ayrı dizeleri olarak bir MIME türü ve alt türlerini ihtiyacı vardır.
>>> mime_type, mime_subtype = mime_type.split('/', 1) >>> print(mime_type) image >>> print(mime_subtype) pngŞimdi eki postaya ekleyin ve yazdırın.
>>> with open(attachment_path, 'rb') as ap: ... message.add_attachment(ap.read(), maintype=mime_type, subtype=mime_subtype, ... filename=os.path.basename(attachment_path)) ... >>> print(message)Çıktı :
Content-Type: multipart/mixed; boundary="===============5350123048127315795==" --===============5350123048127315795== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hey there! I'm learning to send email using Python! --===============5350123048127315795== Content-Type: image/png Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="image.png" MIME-Version: 1.0 iVBORw0KGgoAAAANSUhEUgAAASIAAABSCAYAAADw69nDAAAACXBIWXMAAAsTAAALEwEAmpwYAAAg AElEQVR4nO2dd3wUZf7HP8/M9k2nKIJA4BCUNJKgNJWIBUUgEggCiSgeVhA8jzv05Gc5z4KHiqin eBZIIBDKIXggKIeCRCAhjQAqx4UiCARSt83uzDy/PzazTDZbwy4BnHde+9qZydNn97Pf5/uUIZRS (... few lines deleted ...) wgAAAABJRU5ErkJggg== --===============5350123048127315795==--Eklediğimiz resim de dahil olmak üzere tüm mesaj bir metin dizesi olarak serileştirilebilir. E-posta iletisi bir bütün olarak MIME türü "çok parçalı / karışık" a sahiptir. Mesajın her bölümünün kendi MIME türü vardır. Mesaj gövdesi hala bir "metin / düz" kısım olarak oradadır ve resim eki bir "resim / png" kısmıdır.
Maili Göndermek :
E-posta göndermek için bilgisayarlarımız Basit Posta Aktarım Protokolünü (SMTP) kullanır . Bu protokol, bilgisayarların birbirlerine nasıl e-posta gönderebileceğini belirtir. Bunu doğru bir şekilde yapmak için izlenmesi gereken belirli adımlar vardır. Ancak bunu manuel olarak yapmayacağız. Mesajı yerleşik smtplib Python modülünü kullanarak göndereceğiz .