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

Python脚本:自动发送邮件

发布时间:2023-12-04 22:41:03

Python是一种简单易学但功能强大的编程语言,可以用于各种应用场景,包括自动发送邮件。本篇文章将介绍如何使用Python编写一个自动发送邮件的脚本,并提供一个使用例子。

首先,我们需要导入smtplibemail模块,smtplib模块用于发送邮件,email模块用于构建邮件内容。我们还需要导入getpass模块用于隐藏输入密码的过程。

下面是一个简单的邮件发送脚本的示例代码:

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

def send_email(subject, message, sender, receiver):
    # 设置SMTP服务器和端口号
    smtp_server = 'smtp.example.com'
    smtp_port = 587

    # 邮件内容的配置
    msg = MIMEText(message, 'plain', 'utf-8')
    msg['Subject'] = Header(subject, 'utf-8')
    msg['From'] = sender
    msg['To'] = receiver

    # 登录SMTP服务器并发送邮件
    try:
        password = getpass.getpass('请输入邮箱密码:')
        server = smtplib.SMTP(smtp_server, smtp_port)
        server.starttls()
        server.login(sender, password)
        server.sendmail(sender, receiver, msg.as_string())
        server.quit()
        print('邮件发送成功!')
    except smtplib.SMTPException as e:
        print('邮件发送失败:', e)

subject = '测试邮件'
message = '这是一封测试邮件'
sender = 'sender@example.com'
receiver = 'receiver@example.com'

send_email(subject, message, sender, receiver)

在上面的代码中,我们定义了一个send_email函数,它接受四个参数:邮件主题subject、邮件内容message、发件人地址sender和收件人地址receiver。在函数内部,我们设置了SMTP服务器和端口号,构建了邮件内容,并通过SMTP服务器发送邮件。需要注意的是,为了保护密码的安全,我们使用getpass.getpass方法来接收用户输入的密码,这样用户输入密码时将不会在终端上显示出来。

使用以上脚本发送邮件时,只需要修改相应的变量值即可。注意确保你拥有发送邮件的权限和正确配置了SMTP服务器的设置。

这是一个简单的例子,你可以根据自己的具体需求来扩展脚本功能。例如,你可以增加附件的功能,或者编写一个循环来批量发送邮件。

总结来说,Python提供了强大的模块和函数来发送邮件,轻松实现自动发送邮件的脚本。希望本篇文章能帮助你理解如何编写自动发送邮件的Python脚本,并提供了一个简单的使用例子供参考。祝你在使用Python发送邮件的过程中顺利完成任务!