下面我将为你详细讲解Python实现各种邮件发送的完整实例教程。
准备工作
在开始之前,你需要先安装smtplib
和email
模块。如果你使用的是Python 2.x版本,你还需要安装email.MIME
模块。你可以通过pip进行安装:
pip install smtplib
pip install email
pip install email.MIME # 仅适用于Python 2.x版本
示例一:发送简单文本邮件
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
def send_email():
sender_email = 'sender@example.com' # 邮件发送者的邮箱地址
sender_password = 'password' # 邮箱密码或授权码
receiver_email = 'receiver@example.com' # 邮件接收者的邮箱地址
message = MIMEText('这是一封简单邮件的内容', 'plain', 'utf-8')
message['From'] = formataddr(('发件人', sender_email))
message['To'] = formataddr(('收件人', receiver_email))
message['Subject'] = '这是邮件的主题'
server = smtplib.SMTP('smtp.example.com', 587) # 邮箱SMTP服务器地址和端口号
server.starttls() # 使用TLS安全传输协议
server.login(sender_email, sender_password) # 登录邮箱
server.sendmail(sender_email, [receiver_email], message.as_string()) # 发送邮件
server.quit() # 退出邮箱
send_email()
说明:
smtplib.SMTP
类用于连接邮箱SMTP服务器并登录,使用starttls()
方法开启TLS协议。MIMEText
类用于创建文本邮件,第一个参数是邮件内容,第二个参数是邮件格式,第三个参数是字符集。formataddr
方法用于格式化邮件地址和名称。server.sendmail
方法中,第一个参数是发送者的邮箱地址,第二个参数是邮件接收者的邮箱地址列表,第三个参数是要发送邮件的内容,必须使用as_string()
方法将MIMEText
对象转换为字符串。- 最后,用
server.quit()
方法退出邮箱SMTP服务器。
示例二:发送带附件的邮件
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.utils import formataddr
def send_email_with_attachment():
sender_email = 'sender@example.com' # 邮件发送者的邮箱地址
sender_password = 'password' # 邮箱密码或授权码
receiver_email = 'receiver@example.com' # 邮件接收者的邮箱地址
message = MIMEMultipart()
message['From'] = formataddr(('发件人', sender_email))
message['To'] = formataddr(('收件人', receiver_email))
message['Subject'] = '这是带附件的邮件'
text = MIMEText('这是一封带附件的邮件的内容', 'plain', 'utf-8')
message.attach(text)
with open('attachment.txt', 'rb') as f:
attachment = MIMEApplication(f.read(), _subtype='txt')
attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
message.attach(attachment)
server = smtplib.SMTP('smtp.example.com', 587) # 邮箱SMTP服务器地址和端口号
server.starttls() # 使用TLS安全传输协议
server.login(sender_email, sender_password) # 登录邮箱
server.sendmail(sender_email, [receiver_email], message.as_string()) # 发送邮件
server.quit() # 退出邮箱
send_email_with_attachment()
说明:
MIMEMultipart
类用于创建多部分邮件,可以包含文本、附件、图片等多种类型,通过attach()
方法添加子部分。MIMEApplication
类用于创建附件类型,第一个参数是附件内容,第二个参数是文件类型,可以使用_subtype
参数指定,这里使用了txt
类型。使用add_header()
方法添加邮件头信息,其中第一个参数是邮件头名称,第二个参数是附件的文件名称。- 最后,用
server.quit()
方法退出邮箱SMTP服务器。
以上就是Python实现各种邮件发送的完整实例教程,需要注意的是,不同的邮件服务器可能有不同的设置,具体的设置可以参考相应的文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现各种邮件发送 - Python技术站