利用Python发送邮件或发带附件的邮件

使用Python发送邮件

发送邮件是在现代通信中非常常见的一种方式。Python提供了一个简单且强大的库——smtplib,以帮助我们通过代码发送电子邮件。无论是发送简单的文本邮件还是带有附件的邮件,Python都可以轻松地实现。这篇文章将教你如何使用Python发送邮件,并且还会演示如何发送带附件的邮件。

安装邮件发送库

首先,我们需要安装Python的smtplib库,这个库是Python的标准库之一,所以不需要额外的安装。只需要通过Python的包管理工具pip运行以下命令即可:

pip install secure-smtplib

准备邮箱账号

接下来,你需要准备一个邮箱账号来发送邮件。你可以使用自己的常用邮箱,比如Gmail、163等等。为了演示,我们以Gmail为例。

首先,你需要在Gmail上创建一个应用专用密码。登录你的Gmail账号,进入我的账户页

在登录与安全性选项下,找到应用密码并点击管理应用密码

选择一个应用密码的目标,比如邮件,然后选择生成

将生成的应用密码保存下来。这个密码会在代码中用到

发送简单的文本邮件

我们首先来看一下如何发送一个简单的文本邮件。以下是一个示例代码:

import smtplib

def send_email():

sender_email = "your_email@gmail.com"

receiver_email = "receiver_email@gmail.com"

password = "your_app_password"

message = "This is a test email sent using Python."

server = smtplib.SMTP("smtp.gmail.com", 587)

server.starttls()

server.login(sender_email, password)

server.sendmail(sender_email, receiver_email, message)

server.quit()

send_email()

首先,我们导入了smtplib库,并定义了一个名为send_email()的函数。在函数内,我们提供了一些必要的信息:

sender_email:发送方的邮箱地址

receiver_email:接收方的邮箱地址

password:应用专用密码

message:要发送的邮件内容

接下来,我们创建一个连接到Gmail的SMTP服务器的对象,并使用starttls()方法启用TLS加密。然后,我们使用login()方法登录到邮箱,并使用sendmail()方法发送邮件。最后,我们使用quit()方法关闭与SMTP服务器的连接。

发送带附件的邮件

如果你想发送带附件的邮件,Python也可以轻松实现。请看以下示例代码:

import smtplib

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

def send_email_with_attachment():

sender_email = "your_email@gmail.com"

receiver_email = "receiver_email@gmail.com"

password = "your_app_password"

message = MIMEMultipart()

message["From"] = sender_email

message["To"] = receiver_email

message["Subject"] = "Python email with attachment"

# 邮件正文

body = "This is a test email with attachment."

message.attach(MIMEText(body, "plain"))

# 附件

filename = "attachment.txt"

with open(filename, "rb") as attachment:

attachment_part = MIMEBase("application", "octet-stream")

attachment_part.set_payload(attachment.read())

encoders.encode_base64(attachment_part)

attachment_part.add_header(

"Content-Disposition",

f"attachment; filename= {filename}"

)

message.attach(attachment_part)

text = message.as_string()

server = smtplib.SMTP("smtp.gmail.com", 587)

server.starttls()

server.login(sender_email, password)

server.sendmail(sender_email, receiver_email, text)

server.quit()

send_email_with_attachment()

在这个示例中,我们使用了两个新的模块:email.mime.text和email.mime.multipart。我们创建了一个MIMEMultipart对象,并使用attach()方法将正文和附件添加到邮件中。

总结

本文深入介绍了如何使用Python的smtplib库发送邮件,包括发送简单的文本邮件以及发送带附件的邮件。通过这些示例代码,我们可以看到Python是一门强大且易于使用的编程语言,可以帮助我们快速实现各种实用功能。

通过使用Python发送邮件,我们可以在各种应用场景中进行自动化操作,比如定期发送报表、发送提醒通知等等。这对于提高工作效率和简化操作流程非常有帮助。

希望本文对你有所帮助,如果你有任何问题或疑问,请在下方留言。

后端开发标签