Python面试题更新 2026-08-05

请描述一下如何借助 Python 的 smtplib 模块来实现电子邮件的发送操作。

运维/技术支持编码实现技术原理问题排查Python

考察说明

考查候选人对 Python smtplib 库基本用法的掌握程度。

回答思路

  1. 【回答框架 1】smtplib 是 Python 内置的 SMTP 客户端库,核心流程包括创建 SMTP 连接、登录认证、构造邮件内容、发送邮件和关闭连接。
  2. 【回答框架 2】首先通过 smtplib.SMTP 类连接 SMTP 服务器,支持 SSL 和 STARTTLS 加密方式,常用端口有 465(SSL)和 587(STARTTLS)。
  3. 【回答框架 3】使用 login 方法进行身份认证,然后通过 sendmail 或 send_message 方法发送邮件,send_message 能自动解析 MIME 格式的邮件对象。
  4. 【回答框架 4】构造邮件内容时,可使用 email.mime.text 和 email.mime.multipart 构建纯文本或带附件的邮件,需设置 From、To、Subject 等头部信息。
  5. 【回答框架 5】发送完毕后应调用 quit 方法关闭连接,可使用 try-finally 或 with 语句确保连接被正确释放。
  6. 【关键点 1】smtplib 核心步骤是连接服务器、认证、构造邮件、发送、关闭连接。
  7. 【关键点 2】安全发送推荐使用 SMTP_SSL 或 STARTTLS,避免明文传输。
  8. 【关键点 3】send_message 方法可直接发送 email.message.EmailMessage 对象。
  9. 【关键点 4】带附件邮件需使用 MIMEMultipart 和 MIMEBase 组合。
  10. 【关键点 5】发送失败时可能抛出 SMTPException,需进行异常处理。
  11. 【易错点 1】不要将邮箱密码硬编码在代码中,应使用环境变量或配置管理工具。
  12. 【易错点 2】使用 SMTP 明文连接有安全风险,生产环境应强制使用加密。
  13. 【易错点 3】邮件发送不保证一定到达,SMTP 只负责传输,可能被收件方服务器拒收。