0
点赞
收藏
分享

微信扫一扫

Python开发实例(十五)电子邮件自动化:编写一个程序,自动发送电子邮件或处理收件箱

在这个实例中,我们将使用Python编写一个程序,实现自动发送电子邮件的功能。我们将使用Python的smtplib库来发送电子邮件。

首先,请确保你已经安装了smtplib库。如果没有安装,可以通过以下命令来安装:

pip install secure-smtplib

下面是一个自动发送电子邮件的Python程序:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

def send_email(subject, body, from_email, to_email, smtp_server, smtp_port, username, password, attachments=None):
    msg = MIMEMultipart()
    msg['From'] = from_email
    msg['To'] = to_email
    msg['Subject'] = subject

    msg.attach(MIMEText(body, 'plain'))

    if attachments:
        for attachment in attachments:
            with open(attachment, "rb") as file:
                part = MIMEApplication(file.read())
                part.add_header('Content-Disposition', f'attachment; filename="{attachment}"')
                msg.attach(part)

    try:
        with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
            server.login(username, password)
            server.sendmail(from_email, to_email, msg.as_string())
        print("邮件发送成功!")
    except smtplib.SMTPException as e:
        print(f"邮件发送失败:{e}")

if __name__ == "__main__":
    # 邮件配置
    subject = "测试邮件"
    body = "这是一封测试邮件,自动发送。"
    from_email = "your_email@example.com"  # 替换为发件人邮箱地址
    to_email = "recipient@example.com"  # 替换为收件人邮箱地址
    smtp_server = "smtp.example.com"  # 替换为SMTP服务器地址
    smtp_port = 465  # SMTP服务器端口号
    username = "your_username"  # 替换为发件人邮箱用户名
    password = "your_password"  # 替换为发件人邮箱密码

    # 附件列表,如果没有附件可以设置为None
    attachments = ["file1.txt", "file2.pdf"]

    send_email(subject, body, from_email, to_email, smtp_server, smtp_port, username, password, attachments)

在上述代码中,我们定义了一个send_email函数,用于发送电子邮件。你需要将邮件配置部分替换为你自己的信息,包括发件人邮箱、收件人邮箱、SMTP服务器地址、SMTP服务器端口号、发件人邮箱用户名和密码。

如果你有附件需要发送,可以将附件文件名添加到attachments列表中。如果没有附件,可以将attachments设置为None。

运行程序后,它将自动发送一封测试邮件。请确保你的邮箱配置信息正确,以确保邮件可以成功发送。

注意:为了安全起见,请确保不要将真实的邮箱用户名和密码直接写入代码中。最好将这些敏感信息存储在配置文件或环境变量中,并在程序中进行读取。

举报

相关推荐

0 条评论