Python Exchange 发送邮件
简介
在现代互联网时代,电子邮件成为了人们沟通的重要方式之一。而使用Python编写程序,可以很方便地实现邮件的发送和接收功能。在Python中,有很多第三方库可以帮助我们实现邮件的功能,其中比较常用的是smtplib
和email
库。本文将介绍如何使用这两个库来发送邮件。
准备工作
在开始编写代码之前,我们需要安装smtplib
和email
库。可以使用以下命令来安装:
pip install smtplib
pip install email
发送邮件
使用smptlib
库发送邮件需要以下步骤:
- 导入必要的库:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
- 设置邮箱服务器和端口:
mail_host = 'smtp.example.com'
mail_port = 25
请注意,以上的mail_host
和mail_port
需要根据你的邮箱提供商进行设置,不同的邮箱提供商可能有不同的设置。
- 设置发件人和收件人:
sender = 'sender@example.com'
receiver = 'receiver@example.com'
其中,sender
是发件人邮箱地址,receiver
是收件人邮箱地址。
- 设置邮件内容:
subject = 'Python邮件测试'
message = '这是一封使用Python发送的测试邮件。'
其中,subject
是邮件主题,message
是邮件内容。
- 构造邮件内容:
msg = MIMEText(message, 'plain', 'utf-8')
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
- 登录邮箱服务器并发送邮件:
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, mail_port)
smtpObj.login(sender, 'password')
smtpObj.sendmail(sender, [receiver], msg.as_string())
print('邮件发送成功')
except smtplib.SMTPException:
print('邮件发送失败')
以上代码通过SMTP()
方法创建了一个SMTP对象,然后使用connect()
方法连接到邮箱服务器,login()
方法登录邮箱,sendmail()
方法发送邮件。如果发送成功,会输出"邮件发送成功",否则输出"邮件发送失败"。
邮件附件
除了发送纯文本的邮件,我们还可以发送带有附件的邮件。email
库提供了MIMEMultipart
类来构造带有附件的邮件。
以下是一个发送带有附件的邮件的示例代码:
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
msg = MIMEMultipart()
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')
# 添加邮件正文
msg.attach(MIMEText(message, 'plain', 'utf-8'))
# 添加附件
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(open('attachment.txt', 'rb').read())
encoders.encode_base64(attachment)
attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
msg.attach(attachment)
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host, mail_port)
smtpObj.login(sender, 'password')
smtpObj.sendmail(sender, [receiver], msg.as_string())
print('邮件发送成功')
except smtplib.SMTPException:
print('邮件发送失败')
以上代码通过创建一个MIMEMultipart
对象,然后调用attach()
方法添加邮件正文和附件。附件可以是任意文件,需要使用open()
函数读取文件内容并使用MIMEBase
对象表示。
总结
本文介绍了使用Python发送邮件的方法,通过smtplib
和email
库可以很方便地实现邮件的发送功能。同时,我们还演示了如何发送带有附件的邮件。希望本文对你学习和使用Python发送邮件有所帮助。
pie
title 邮件发送成功与失败比例
"成功" : 80