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

Python编写一个简单的邮件发送程序

发布时间:2023-12-04 09:13:35

邮件发送是一个常见的需求,Python提供了许多库来实现邮件发送功能。其中最常用的库是smtplib和email库。

smtplib库提供了SMTP客户端实现,可以连接邮件服务器发送邮件。email库提供了创建和格式化邮件的功能,可以用于创建邮件内容。

下面是一个简单的邮件发送程序,使用smtplib和email库实现。程序会读取一个配置文件,包含邮件服务器的信息、发件人和收件人等。然后通过SMTP客户端连接邮件服务器,并发送一封简单的邮件。

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


def send_email(subject, content):
    # 读取配置文件
    config = read_config()
    
    # 构造邮件
    message = MIMEText(content, 'plain', 'utf-8')
    message['From'] = Header(config['from'], 'utf-8')
    message['To'] = Header(config['to'], 'utf-8')
    message['Subject'] = Header(subject, 'utf-8')

    try:
        # 连接邮件服务器
        server = smtplib.SMTP(config['server'], config['port'])
        server.starttls()
        server.login(config['username'], config['password'])

        # 发送邮件
        server.sendmail(config['from'], config['to'], message.as_string())
        print("邮件发送成功")

    except Exception as e:
        print("邮件发送失败:", e)

    finally:
        server.quit()


def read_config():
    # 读取配置文件
    config = {
        'server': 'smtp.example.com',
        'port': 587,
        'username': 'your_username',
        'password': 'your_password',
        'from': 'from@example.com',
        'to': 'to@example.com'
    }
    return config


if __name__ == '__main__':
    subject = '测试邮件'
    content = '这是一封测试邮件'
    send_email(subject, content)

在上面的代码中,send_email函数用于发送邮件。它首先读取配置文件,获取邮件服务器的信息、发件人和收件人等。然后构造一封简单的邮件,设置邮件标题、内容和发件人等。使用smtplib库连接邮件服务器并登录。最后调用SMTP的sendmail方法发送邮件。

read_config函数用于读取配置文件,返回一个包含邮件服务器信息的字典。

在主程序中,定义了一个主题和内容,并调用send_email函数发送邮件。

可以根据实际情况修改配置文件的内容,例如更换邮件服务器地址、端口号、发件人和收件人等。