📜  如何在 python 中发送电子邮件(1)

📅  最后修改于: 2023-12-03 15:38:23.729000             🧑  作者: Mango

如何在 Python 中发送电子邮件

发送电子邮件是日常生活和工作中必不可少的一项技能,Python 作为一种强大的编程语言,也提供了方便的邮件发送 API 来满足此需求。

本文将介绍如何在 Python 中使用 SMTP 发送电子邮件,让你轻松地完成电子邮件的发送。

准备工作

在执行本文中的代码之前,你需要准备以下内容:

  • 有效的 email 地址和密码
  • 收件人 email 地址
示例代码

接下来是一个使用 Python 发送电子邮件的示例代码:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def send_email(sender_email, sender_password, receiver_email, subject, content):
    try:
        # 连接 smtp 服务器
        smtp_server = 'smtp.xxx.com' # 请替换为你自己的 smtp 服务器
        smtp_port = 587 # 请根据 smtp 服务器设置修改端口号
        smtp_username = sender_email
        smtp_password = sender_password
        smtp_conn = smtplib.SMTP(smtp_server, smtp_port)
        smtp_conn.starttls()
        smtp_conn.login(smtp_username, smtp_password)

        # 构造邮件内容
        email_content = MIMEText(content, 'html', 'utf-8')
        email_content['From'] = formataddr(['发件人姓名', sender_email])
        email_content['To'] = formataddr(['收件人姓名', receiver_email])
        email_content['Subject'] = subject

        # 发送邮件
        smtp_conn.sendmail(sender_email, [receiver_email], email_content.as_string())

        # 关闭连接
        smtp_conn.quit()
        
        print('邮件发送成功')
    except Exception as e:
        print('邮件发送失败,错误信息:%s' % str(e))

# 发送邮件示例
send_email('example_sender@xxx.com', 'password', 'example_receiver@xxx.com', 'Python 发送电子邮件示例', '<h1>这是一封 Python 发送的邮件</h1>')
代码说明

代码中使用的是 Python 标准库中的 smtplibemail 模块,具体内容如下:

  • smtplib 模块提供了 SMTP 协议的客户端实现,用于连接 SMTP 服务器并发送邮件。
  • email.mime.text 模块提供了构造邮件内容的 API,可以设置邮件文本内容、附件、收发件人等信息。
  • email.utils.formataddr 函数可以将邮件地址和名称格式化为标准格式。

在代码中,首先通过 connect 方法连接到邮箱服务器,并通过 login 方法进行身份验证。在身份验证通过之后,构造邮件内容并通过 sendmail 方法发送邮件。最后通过 quit 方法关闭连接。

总结

本文介绍了如何在 Python 中使用 SMTP 发送电子邮件,示例代码简单易懂,适合初学者学习。希望本文的内容对你有所帮助。