欢迎访问宙启技术站
智能推送

使用Python开发的邮件自动发送程序

发布时间:2023-12-04 15:50:42

邮件自动发送程序是一种可以帮助用户快速批量发送邮件的工具。Python提供了许多库和模块来实现邮件的发送功能,其中最常用的是smtplib和email库。

使用Python开发的邮件自动发送程序主要包括以下几个步骤:

1. 导入必要的库和模块:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

2. 设置邮件的基本信息:

sender = 'sender@example.com'  # 发件人邮箱
receiver = 'receiver@example.com'  # 收件人邮箱
subject = '邮件主题'  # 邮件主题
username = 'your_username'  # 发件人邮箱登录用户名
password = 'your_password'  # 发件人邮箱登录密码

3. 设置邮件内容:

message = MIMEText('邮件正文', 'plain', 'utf-8')  # 创建一个邮件对象
message['From'] = Header(sender, 'utf-8')  # 设置发件人
message['To'] = Header(receiver, 'utf-8')  # 设置收件人
message['Subject'] = Header(subject, 'utf-8')  # 设置主题

4. 发送邮件:

try:
    server = smtplib.SMTP('smtp.example.com', 25)  # 创建一个SMTP对象
    server.login(username, password)  # 登录SMTP服务器
    server.sendmail(sender, receiver, message.as_string())  # 发送邮件
    print('邮件发送成功')
except smtplib.SMTPException:
    print('邮件发送失败')
finally:
    server.quit()  # 退出SMTP服务器

以上是一个简单的邮件自动发送程序的示例代码。用户需要根据实际情况,替换代码中的发件人、收件人、邮件主题、发件人邮箱登录用户名和密码等信息。

在实际应用中,通常会使用循环来实现批量发送邮件的功能。例如,可以读取一个包含多个收件人邮箱的文件,然后循环发送邮件给每个收件人。

下面是一个批量发送邮件的例子代码:

import smtplib
from email.mime.text import MIMEText
from email.header import Header

sender = 'sender@example.com'  # 发件人邮箱
subject = '邮件主题'  # 邮件主题
username = 'your_username'  # 发件人邮箱登录用户名
password = 'your_password'  # 发件人邮箱登录密码

with open('receivers.txt', 'r') as f:
    receivers = f.readlines()

for receiver in receivers:
    receiver = receiver.strip()  # 去除收件人邮箱末尾的换行符
    message = MIMEText('邮件正文', 'plain', 'utf-8')  # 创建一个邮件对象
    message['From'] = Header(sender, 'utf-8')  # 设置发件人
    message['To'] = Header(receiver, 'utf-8')  # 设置收件人
    message['Subject'] = Header(subject, 'utf-8')  # 设置主题

    try:
        server = smtplib.SMTP('smtp.example.com', 25)  # 创建一个SMTP对象
        server.login(username, password)  # 登录SMTP服务器
        server.sendmail(sender, receiver, message.as_string())  # 发送邮件
        print('邮件发送成功')
    except smtplib.SMTPException:
        print('邮件发送失败')
    finally:
        server.quit()  # 退出SMTP服务器

以上的例子中,程序会读取一个名为"receivers.txt"的文件,该文件中包含了多个收件人邮箱,每行一个邮箱地址。程序会循环读取文件中的邮箱地址,然后发送邮件给每个收件人。

需要注意的是,在实际使用中,为了保护个人信息和邮箱账户安全,建议将发件人邮箱和登录密码等敏感信息存储在配置文件中,避免直接暴露在代码中。同时,也要注意遵守邮件发送的相关规定和法律法规,避免滥用邮件自动发送功能。