Python实现各种邮件发送

  • Post category:Python

下面是Python实现邮件发送的完整实例教程:

一、准备工作

在开始实现Python邮件发送之前,需要先准备以下两个东西:

  1. SMTP服务器地址和端口号
  2. 发送邮件所需的发件人地址和授权码

这些信息需要联系邮件服务提供商(如163、Gmail等)获取。

二、安装所需库

Python实现邮件发送需要安装smtplib、email和mime等库,可以通过pip命令安装。

pip install smtplib
pip install email
pip install mime

三、编写代码

1. 发送纯文本邮件

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

# 发件人信息
sender = 'your_email_address'
password = 'your_email_password'

# 收件人信息
receivers = ['example1@example.com', 'example2@example.com']
to = ','.join(receivers)

# 邮件内容
content = '这是一封Python发出的邮件。'

# 邮件配置
msg = MIMEText(content, 'plain', 'utf-8')
msg['From'] = formataddr(["发件人昵称", sender])
msg['To'] = formataddr(["收件人昵称", to])
msg['Subject'] = "邮件主题"

# 发送邮件
try:
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender, password)
    server.sendmail(sender, receivers, msg.as_string())
    server.quit()
    print("邮件发送成功")
except Exception as e:
    print(f"邮件发送失败,错误信息为 {e}")

以上代码中,运行后会发送一条内容为“这是一封Python发出的邮件。”的邮件到example1@example.com和example2@example.com两个邮箱。

2. 发送HTML邮件

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

# 发件人信息
sender = 'your_email_address'
password = 'your_email_password'

# 收件人信息
receivers = ['example1@example.com', 'example2@example.com']
to = ','.join(receivers)

# 邮件内容
content = '<h1>这是一封Python发出的HTML邮件。</h1>'

# 邮件配置
msg = MIMEMultipart()
msg['From'] = formataddr(["发件人昵称", sender])
msg['To'] = formataddr(["收件人昵称", to])
msg['Subject'] = "邮件主题"
msg.attach(MIMEText(content, 'html', 'utf-8'))

# 发送邮件
try:
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(sender, password)
    server.sendmail(sender, receivers, msg.as_string())
    server.quit()
    print("邮件发送成功")
except Exception as e:
    print(f"邮件发送失败,错误信息为 {e}")

以上代码中,运行后会发送一条内容为“这是一封Python发出的HTML邮件。”的HTML邮件到example1@example.com和example2@example.com两个邮箱。

四、总结

以上就是Python实现各种邮件发送的完整实例教程,通过该教程可以了解到如何使用Python发送纯文本邮件和HTML邮件。需要注意的是,在使用Python发送邮件时,需要注意发送频率、邮件内容、邮件地址等问题,避免被识别为垃圾邮件或者邮件被退回。