隨着數字化的發展,電子郵件在人們的生活中扮演着越來越重要的角色,而郵件服務器是實現郵件傳遞的重要基礎。大多數郵件服務器在發送郵件時都需要進行SMTP驗證,但是在某些特定情況下,如測試或發送匿名郵件,我們需要一些可以免費使用並且不需要SMTP驗證的郵件服務器,而這篇文章將為你介紹如何通過 Python 來輕鬆實現電子郵件的發送。下面將分多個方面進行闡述。
一、選擇郵件服務器
在選擇郵件服務器時,需要兼顧可用性和安全性。雖然有很多郵件服務器可以免費使用,但是需要進行SMTP驗證,所以在本文中,我們將使用已知的可靠而且能夠免費使用的匿名郵件服務器,如下表所示:
郵箱地址 服務器地址 tempr.email mail.tempr.email 5ymail.com smtp.5ymail.com emkei.cz smtp.emkei.cz mytrashmail.com smtp.mytrashmail.com
此外還需要注意的是,郵件服務器的域名必須被 IETF (Internet Engineering Task Force) 批准為公共域名,否則郵件會被視為垃圾郵件而無法正常發送。
二、Python實現郵件發送
Python提供了 smtplib 模塊來發送郵件,下面是一個簡單的 Python 程序,可以將電子郵件發送給指定的收件人。
import smtplib from email.mime.text import MIMEText from email.header import Header def send_email(smtp_server, username, password, sender, receiver, subject, message): msg = MIMEText(message, 'html', 'utf-8') msg['Subject'] = Header(subject, 'utf-8') msg['From'] = Header(sender, 'utf-8') msg['To'] = Header(receiver, 'utf-8') server = smtplib.SMTP(smtp_server) server.login(username, password) server.sendmail(sender, [receiver], msg.as_string()) server.quit() if __name__ == '__main__': smtp_server = 'smtp.mytrashmail.com' username = '' password = '' sender = '' receiver = '' subject = 'Test email' message = 'Hello World!
' send_email(smtp_server, username, password, sender, receiver, subject, message)
以上是一個基本的模板,可以將這個模板分別適配到不同的郵件服務器上。如果需要發送的郵件正文含有HTML標籤,可以修改MIMEText的contentType為『html』。
三、在Python中實現添加附件功能
有時候我們需要在電子郵件中添加附件,例如一些圖片或者文檔。下面是一個簡單的 Python 程序,在電子郵件中添加文本文件作為附件。
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication from email.header import Header def send_email_with_attachments(smtp_server, username, password, sender, receiver, subject, message, files): msg = MIMEMultipart() msg['Subject'] = Header(subject, 'utf-8') msg['From'] = Header(sender, 'utf-8') msg['To'] = Header(receiver, 'utf-8') msg.attach(MIMEText(message, 'html', 'utf-8')) if files: for f in files: with open(f, 'rb') as file: attachment = MIMEApplication(file.read()) attachment.add_header('Content-Disposition', 'attachment', filename=('utf-8', '', f.split('/')[-1])) msg.attach(attachment) server = smtplib.SMTP(smtp_server) server.login(username, password) server.sendmail(sender, [receiver], msg.as_string()) server.quit() if __name__ == '__main__': smtp_server = 'smtp.mytrashmail.com' username = '' password = '' sender = '' receiver = '' subject = 'Test email' message = 'Hello World!
' files = ['/path/to/file.txt'] send_email_with_attachments(smtp_server, username, password, sender, receiver, subject, message, files)
以上程序將每個附件文件作為 MIMEApplication 的實例,通過在頭部中指定”Content-Disposition: attachment”字段,將文件添加為附件。在此之前,我們還需安裝python-magic,並在系統中進行必要的依賴安裝。
結語
這篇文章介紹了通過 Python 實現輕鬆發送電子郵件的方法以及如何在郵件中添加附件。值得注意的是,郵件發送具有一定的風險,應嚴格按照相關法律法規和道德準則進行操作,遵循企業和社會的規範。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/270742.html