【Python练习】060. 编写一个函数,实现简单的SMTP邮件发送功能

目录

  • 060. 编写一个函数,实现简单的SMTP邮件发送功能
    • 示例代码
      • 代码说明
    • 注意事项
      • 示例:发送带附件的邮件
    • 应用场景
      • 自动化通知系统
      • 用户注册与验证
      • 批量营销与订阅
      • 数据报告分发
      • 交互式表单反馈

060. 编写一个函数,实现简单的SMTP邮件发送功能

在 Python 中,可以使用 smtplib 模块来实现简单的 SMTP 邮件发送功能。以下是一个示例代码,展示如何编写一个函数来发送邮件。

示例代码

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

def send_email(smtp_server, port, sender_email, sender_password, recipient_email, subject, body):
    """
    发送邮件的函数

    :param smtp_server: SMTP 服务器地址
    :param port: SMTP 服务器端口(通常为 587 或 465)
    :param sender_email: 发件人邮箱地址
    :param sender_password: 发件人邮箱密码
    :param recipient_email: 收件人邮箱地址
    :param subject: 邮件主题
    :param body: 邮件正文
    """
    # 创建 MIMEText 对象,_text 是邮件内容,_subtype 是主内容类型,_charset 是编码
    message = MIMEText(body, 'plain', 'utf-8')
    message['From'] = Header(sender_email, 'utf-8')  # 显示的发件人
    message['To'] = Header(recipient_email, 'utf-8')  # 显示的收件人
    message['Subject'] = Header(subject, 'utf-8')  # 显示的邮件主题

    try:
        # 根据端口号选择连接方式
        if port == 465:
            # 使用 SSL 连接
            server = smtplib.SMTP_SSL(smtp_server, port)
        else:
            # 使用普通连接
            server = smtplib.SMTP(smtp_server, port)
            server.starttls()  # 启用安全传输模式

        # 登录 SMTP 服务器
        server.login(sender_email, sender_password)

        # 发送邮件
        server.sendmail(sender_email, [recipient_email], message.as_string())

        print("邮件发送成功!")
    except smtplib.SMTPException as e:
        print(f"邮件发送失败:{
     
     e}")
    finally:
        # 关闭连接
        server.quit()

# 示例用法
if __name__ == "__main__":
    smtp_server = "smtp.example.com"  # 替换为你的 SMTP 服务器地址

你可能感兴趣的:(从零开始学习机器人,python,网络,数据库)