Python SMTP邮件发送教程

Python SMTP邮件发送教程

随着互联网的快速发展,电子邮件已经成为人们日常工作和生活中不可或缺的通讯工具。Python作为一种功能强大的编程语言,同样具备发送电子邮件的能力。本文将详细介绍如何使用Python进行SMTP邮件发送,包括环境配置、代码实现、发送邮件的格式和附件等。

1. 环境配置

在进行Python SMTP邮件发送之前,我们需要配置以下环境:

  • 安装Python:从Python官网下载并安装最新版本的Python。
  • 安装smtplib库:Python自带smtplib库,无需额外安装。
  • 安装email库:email库用于构建邮件内容,可以通过pip命令安装:pip install email

2. SMTP服务器和端口

SMTP(Simple Mail Transfer Protocol)是用于发送电子邮件的协议。在进行邮件发送时,我们需要指定SMTP服务器和端口。

以下是一些常见的SMTP服务器和端口:

3. 邮件发送代码实现

以下是一个使用Python发送SMTP邮件的示例代码:

python 复制代码
import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 邮件发送方
sender = 'your_email@example.com'
# 邮件接收方
receiver = 'receiver_email@example.com'
# 邮件主题
subject = 'Python SMTP邮件发送'
# 邮件正文
body = '这是一封使用Python发送的测试邮件。'
# 邮件服务器和端口
smtp_server = 'smtp.example.com'
smtp_port = 465  # 使用SSL加密
# 发送方邮箱用户名和密码
user = 'your_email@example.com'
password = 'your_password'

# 创建邮件对象
msg = MIMEText(body, 'plain', 'utf-8')
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')

# 连接SMTP服务器
try:
    smtp_obj = smtplib.SMTP_SSL(smtp_server, smtp_port)
    smtp_obj.login(user, password)
    smtp_obj.sendmail(sender, [receiver], msg.as_string())
    print('邮件发送成功')
except smtplib.SMTPException as e:
    print('邮件发送失败:%s' % e)
finally:
    smtp_obj.quit()

4. 发送邮件的格式和附件

在邮件发送过程中,我们可以通过修改MIMEText构造函数的第二个参数来指定邮件格式,例如:

  • 'plain':纯文本格式
  • 'html':HTML格式

如果要发送附件,可以使用MIMEMultipart和MIMEBase等模块。以下是一个发送带附件的邮件示例:

python 复制代码
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders

# ...(其他代码不变)

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = Header(sender, 'utf-8')
msg['To'] = Header(receiver, 'utf-8')
msg['Subject'] = Header(subject, 'utf-8')

# 邮件正文
msg.attach(MIMEText(body, 'plain', 'utf-8'))

# 附件
filename = 'example.txt'
with open(filename, 'rb') as f:
    attachment = MIMEBase('application', 'octet-stream')
    attachment.set_payload(f.read())
    encoders.encode_base64(attachment)
    attachment.add_header('Content-Disposition', 'attachment', filename=filename)
    msg.attach(attachment)

# ...(其他代码不变)

5. 总结

本文介绍了使用Python进行SMTP邮件发送的方法,包括环境配置、代码实现、发送邮件的格式和附件等。通过本文的学习,您应该能够轻松实现使用Python发送邮件的功能。在实际应用中,可以根据需要进行邮件内容和格式的调整,以满足不同场景的需求。

相关推荐
yaoxin5211235 小时前
434. Java 日期时间 API - Period 基于日期的时间段
java·开发语言·python
凡人叶枫5 小时前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
学逆向的5 小时前
C++纯虚函数
开发语言·c++·网络安全
程序员二叉6 小时前
【JUC】ThreadLocal底层原理|内存泄漏|弱引用|跨线程传递方案
java·开发语言·面试·职场和发展·juc
程序员二叉6 小时前
【JUC】线程池全套深度详解|参数|流程|拒绝策略|调优|异常处理
java·开发语言·jvm·算法·面试·juc
凡人叶枫7 小时前
Effective C++ 条款22:将成员变量声明为 private
linux·开发语言·c++
Qt程序员7 小时前
掌握 Linux 内核调度:从原理到实现(进程篇)
java·开发语言
code bean7 小时前
【LangChain】检索器完全指南:从向量检索到生产级 RAG 架构
java·开发语言·微服务
LabVIEW开发7 小时前
LabVIEW + MATLAB 混合编程:爆炸场测试数据精准采集方案
开发语言·matlab·labview
嵌入式协会20240727 小时前
(已解决)MinIO python 获取预签名出现forbidden、errornetwork等错误
java·开发语言·python