📜  Python – 从电子表格向电子邮件列表发送电子邮件(1)

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

Python – 从电子表格向电子邮件列表发送电子邮件

简介

本文介绍了如何使用Python编写程序,从电子表格中读取数据并向电子邮件列表发送电子邮件。这种技术在自动化发送邮件、批量发送邮件以及从电子表格中获取收件人和内容等方面非常有用。

准备工作

在开始之前,我们需要准备一些工作:

  1. 安装Python:确保你的电脑上安装了Python的最新版本。你可以从官方网站(https://www.python.org)下载并安装。

  2. 安装所需的库:我们将使用openpyxl库来读取电子表格数据,并使用smtplib库来发送电子邮件。可以使用以下命令来安装这些库:

    pip install openpyxl
    pip install secure-smtplib
    
  3. 准备电子表格和电子邮件列表:将电子表格准备好,并确保其中包含需要发送的邮件内容及收件人的信息,如收件人姓名、电子邮件地址等。

代码示例

下面是一个示例代码,演示了如何从电子表格中读取数据并向电子邮件列表发送邮件:

import openpyxl
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(email, password, smtp_server, smtp_port, subject, body, recipients):
    # 连接到SMTP服务器
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(email, password)

    for recipient in recipients:
        # 创建邮件内容
        message = MIMEMultipart()
        message['From'] = email
        message['To'] = recipient['email']
        message['Subject'] = subject

        # 添加邮件正文
        message.attach(MIMEText(body, 'plain'))

        # 发送邮件
        server.send_message(message)

    # 断开与SMTP服务器的连接
    server.quit()

def send_emails_from_spreadsheet(email, password, smtp_server, smtp_port, subject, body, spreadsheet_file):
    # 打开电子表格文件
    workbook = openpyxl.load_workbook(spreadsheet_file)
    sheet = workbook.active

    # 获取收件人列表
    recipients = []
    for row in sheet.iter_rows(min_row=2, values_only=True):
        recipient = {
            'name': row[0],
            'email': row[1]
        }
        recipients.append(recipient)

    # 发送邮件
    send_email(email, password, smtp_server, smtp_port, subject, body, recipients)

if __name__ == '__main__':
    email = 'your_email@example.com'
    password = 'your_password'
    smtp_server = 'smtp.example.com'
    smtp_port = 587
    subject = 'Test Email'
    body = 'This is a test email.'
    spreadsheet_file = 'recipients.xlsx'

    send_emails_from_spreadsheet(email, password, smtp_server, smtp_port, subject, body, spreadsheet_file)
使用方法
  1. 将上述代码保存为一个Python程序文件,例如send_emails.py

  2. 将你的电子表格文件(包含收件人列表)保存在与Python程序文件相同的目录中,并将文件名更新到代码中的spreadsheet_file变量中。

  3. 将你的电子邮件地址、密码、SMTP服务器和端口等信息更新到代码中的相应变量中。

  4. 运行Python程序。

  5. 程序将从电子表格中读取收件人列表,并向每个收件人发送一封包含指定主题和内容的电子邮件。

以上就是使用Python从电子表格向电子邮件列表发送邮件的完整过程。你可以根据自己的需求,定制代码并扩展功能。