如何用Python实现邮件发送功能?python邮件发送代码



“””
msg.attach(MIMEText(html_content, ‘html’, ‘utf-8’))

— 添加附件 —

attachment_path = “report.pdf” # 替换为你的文件路径
if os.path.exists(attachment_path):
with open(attachment_path, “rb”) as attachment:
part = MIMEBase(‘application’, ‘octet-stream’)
part.set_payload(attachment.read())

Python 实操 发送带附件邮件Python自动发送邮件
加载中
Python 实操 发送带附件邮件Python自动发送邮件
# 编码附件
encoders.encode_base64(part)
# 添加头信息
part.add_header(
    'Content-Disposition',
    f'attachment; filename= {os.path.basename(attachment_path)}'
)
msg.attach(part)

else:
print(f”警告:文件 {attachment_path} 不存在,跳过附件。”)

try:
with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, msg.as_string())
print(“带附件的邮件发送成功!”)
except Exception as e:
print(f”邮件发送失败: {e}”)

如何用Python实现邮件发送功能?python邮件发送代码


---
### 3. 使用第三方库:`yagmail`(更简洁)
如果你希望代码更简洁,可以使用第三方库 `yagmail`,它封装了 `smtplib`,使用更直观。
安装:
```bash
pip install yagmail

使用示例:

import yagmail
# 连接邮箱(首次使用可能需要输入验证码或配置缓存)
yag = yagmail.SMTP(user="your_email@example.com", password="your_password_or_app_password", host="smtp.example.com")
# 发送纯文本
yag.send("recipient@example.com", "主题", "正文内容")
# 发送 HTML
yag.send("recipient@example.com", "HTML 主题", "<h1>你好</h1>")
# 发送附件
yag.send("recipient@example.com", "带附件", "正文", ["file1.pdf", "file2.jpg"])

如何用Python实现邮件发送功能?python邮件发送代码


常见邮箱 SMTP 配置参考

如何用Python实现邮件发送功能?python邮件发送代码

邮箱服务商 SMTP 服务器 端口 (SSL) 端口 (非SSL)
QQ 邮箱 smtp.qq.com 465 25
163 邮箱 smtp.163.com 465 25
Gmail smtp.gmail.com 465 587
Outlook smtp-mail.outlook.com 587 25

安全建议

  1. 不要硬编码密码:在生产环境中,请将邮箱密码或授权码存储在环境变量或配置文件中,而不是直接写在代码里。
    import os
    password = os.getenv('EMAIL_PASSWORD')
  2. 使用授权码:大多数邮箱要求开启 SMTP 服务后生成专用授权码,不要使用登录密码。
  3. 异常处理:始终使用 try-except 捕获网络错误或认证错误。

如果你有特定的邮箱服务商或需求(如群发、定时发送等),可以告诉我,我可以提供更具体的代码。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e5%a6%82%e4%bd%95%e7%94%a8python%e5%ae%9e%e7%8e%b0%e9%82%ae%e4%bb%b6%e5%8f%91%e9%80%81%e5%8a%9f%e8%83%bd%ef%bc%9fpython%e9%82%ae%e4%bb%b6%e5%8f%91%e9%80%81%e4%bb%a3%e7%a0%81/

赞 (0)
Nginx proxy_redirect怎么用?nginx反向代理配置教程
上一篇 2026年7月10日 06:48
免费cdn防御,免费cdn防御怎么用
下一篇 2026年7月10日 06:50

相关推荐

  • 服务器本地ping超时怎么办?本地ping超时是什么原因?

    服务器本地ping超时现象通常意味着操作系统的网络协议栈、核心驱动程序或底层防火墙配置出现了严重故障,而非外部网络连通性问题,这一故障表明服务器自身的网络逻辑回路已阻断,导致所有基于TCP/IP的网络服务无法正常响应,解决此问题的核心思路在于重置网络协议栈、修正防火墙回环规则以及排查网卡驱动冲突,需按照从软件配……

    2026年2月18日
    22500
  • 新手买空间和域名怎么选才靠谱,去哪里买性价比最高?

    新手买空间和域名,先明确建站用途与预算,再选具备工信部接入商资质、支持在线实名认证的主流平台,阿里云、腾讯云、西部数码等都能一站式完成购买,新手买域名和空间哪个平台好?先搞懂要买什么很多新手第一次建站,会把“空间”和“服务器”混在一起,域名是网址,空间是存放网站文件的地方,先理解这对关系,再选平台,能少走弯路……

    2026年9月17日
    100
  • 服务器宽带是干嘛的,服务器宽带作用及常见用途解析

    服务器宽带是干嘛的?——核心结论:服务器宽带是保障网络服务稳定、高速、低延迟运行的“数字高速公路”,其带宽大小直接决定网站访问速度、应用响应效率与系统并发承载能力,什么是服务器宽带?服务器宽带 ≠ 家用宽带,它是数据中心为服务器分配的上行与下行数据传输能力,单位为 Mbps 或 Gbps,通俗讲:家用宽带像小区……

    服务器运维 2026年4月17日
    5700
  • 个人博客选什么数据库?关系型分布式云原生数据库推荐

    对于个人搭建博客网站,强烈建议优先选择轻量级的单机版关系型数据库(如MySQL或PostgreSQL),而非复杂的分布式云原生数据库,因为后者在资源消耗、运维成本和性能收益上严重失衡,很多人被“云原生”、“分布式”这些高大上的词汇吸引,觉得它们代表了最先进的技术,但在个人博客这个特定场景下,这种选择往往是一种技……

    2026年5月30日
    5500
  • 分布式存储架构产品如何选择?,哪个品牌好?

    分布式存储架构产品是通过软件定义存储技术,将普通服务器集群的本地硬盘整合为统一存储资源池,旨在解决传统存储扩展性差、成本高、单点故障等问题的现代化存储方案,分布式存储产品对比:开源方案与商业产品怎么选?面对市面上众多的分布式存储产品,你首先需要分清开源和商业两条路线,开源方案以灵活性和低成本著称,但意味着你需要……

    2026年7月23日
    300
  • 个人数据如何安全保护?泄露后怎么维权

    保护个人数据安全的核心在于建立“最小权限”意识,通过强密码管理、双重验证及定期系统更新,从源头切断数据泄露风险,日常场景中的隐私防线构建在这个万物互联的时代,我们的数字足迹无处不在,手机里的通讯录、浏览器里的搜索记录、甚至智能音箱里的对话,都可能成为数据黑产眼中的“金矿”,很多人认为黑客离自己很远,但实际上,绝……

    服务器运维 2026年5月29日
    4200
  • 服务器本机客户端连接的ip地址,客户端连接服务器ip怎么填?

    在服务器架构与网络配置中,当客户端程序与服务器程序部署在同一台物理机或虚拟机上时,确定正确的通信地址是保障服务高可用性和性能的基础,服务器本机客户端连接的ip地址通常首选0.0.1(即IPv4的本地环回地址),或者在特定环境下使用0.0.0进行监听配合实际网卡IP访问,这种配置方式不仅能够绕过网络硬件层,大幅降……

    2026年2月21日
    15000
  • 服务器有带宽嘛,服务器带宽多少够用合适?

    服务器必须具备带宽,这是其能够对外提供服务的基础物理条件,带宽决定了数据在服务器与用户之间传输的速度和上限,直接关系到网站的访问速度、稳定性以及并发处理能力,对于任何在线业务而言,带宽并非简单的“有”或“无”,而是涉及到独享与共享、大小选择、网络质量以及成本控制的复杂系统工程,理解带宽的运作机制,并根据业务需求……

    2026年2月18日
    21900
  • 应用服务器插件有哪些推荐,哪个性能最好?

    应用服务器插件种类繁多,主要包括监控、连接池、安全、集群、缓存等类别,具体选择取决于你的应用服务器类型(如Tomcat、Jetty、Undertow)和业务场景,应用服务器插件的主要类别与功能性能监控与诊断插件这类插件帮助实时掌握应用运行状态,定位瓶颈,常见的有:JMX(Java Management Exte……

    2026年8月21日
    300
  • 太阳之井服务器有哪些推荐?,如何选择不踩坑

    太阳之井是《魔兽世界》国服“五区”的经典PVP服务器之一,目前在怀旧服体系中属于“五区”大区,玩家可以将其理解为早年第二批开放的PvP服务器,历经合服后仍保留在原五大区框架内,需要先给结论:太阳之井服务器的归属,要看你说的是正式服还是怀旧服,目前大多数玩家讨论“太阳之井服务器”都指怀旧服——它位于五区,阵营比例……

    2026年9月8日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注