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

使用Python编写一个实现简单邮件发送功能的程序

发布时间:2023-12-04 12:10:39

import smtplib

from email.mime.text import MIMEText

from email.header import Header

def send_email(sender, receiver, subject, message, smtp_server, smtp_port, smtp_username, smtp_password):

    try:

        # 创建邮件对象

        msg = MIMEText(message, 'plain', 'utf-8')

        msg['From'] = Header(sender, 'utf-8')

        msg['To'] = Header(receiver, 'utf-8')

        msg['Subject'] = Header(subject, 'utf-8')

        # 连接邮件服务器

        server = smtplib.SMTP(smtp_server, smtp_port)

        server.starttls()  # 开启TLS加密

        server.login(smtp_username, smtp_password)  # 登录邮件服务器

        # 发送邮件

        server.sendmail(sender, receiver, msg.as_string())

        # 关闭连接

        server.quit()

        print("邮件发送成功")

    except Exception as e:

        print("邮件发送失败:", str(e))

# 示例代码

if __name__ == "__main__":

    sender = 'sender@example.com'  # 发送者邮箱

    receiver = 'receiver@example.com'  # 接收者邮箱

    subject = '测试邮件'  # 邮件标题

    message = '这是一封测试邮件'  # 邮件内容

    smtp_server = 'smtp.example.com'  # SMTP服务器地址

    smtp_port = 587  # SMTP服务器端口号

    smtp_username = 'username'  # 邮箱用户名

    smtp_password = 'password'  # 邮箱密码

    send_email(sender, receiver, subject, message, smtp_server, smtp_port, smtp_username, smtp_password)

在示例代码中,我们首先定义了一个send_email函数,用于发送邮件。该函数接收发送者邮箱、接收者邮箱、邮件标题、邮件内容、SMTP服务器地址、SMTP服务器端口号、邮箱用户名、邮箱密码作为参数。

在函数内部,我们首先创建了一个MIMEText对象,用于表示邮件及其内容。然后设置邮件的发送者、接收者和标题。接下来,我们连接到SMTP服务器,并使用starttls方法开启TLS加密。然后通过login方法登录到邮件服务器。

最后,我们使用sendmail方法将邮件发送给接收者,并在发送成功后关闭连接。

在示例代码的主程序中,我们定义了发送者邮箱、接收者邮箱、邮件标题和邮件内容。然后设置了SMTP服务器地址、SMTP服务器端口号、邮箱用户名和邮箱密码。最后调用send_email函数发送邮件。

请注意,需要将示例代码中的邮箱地址、SMTP服务器地址、端口号、用户名和密码替换为您自己的信息。