如何用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://test.idctop.com/article/478676.html

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

相关推荐

  • 服务器服务端和客户端有什么区别,服务端和客户端怎么区分

    在现代网络架构中,服务器服务端和客户端的协同工作机制构成了整个数字世界的基石,这种架构不仅决定了数据传输的效率,更直接关系到系统的稳定性、安全性以及最终用户的交互体验,核心结论在于:构建高性能网络系统的关键,在于精准平衡服务端的计算与存储能力与客户端的展示与交互需求,通过优化通信协议、负载均衡及安全策略,实现低……

    2026年2月20日
    13600
  • 南通建筑设计院租服务器前要比较哪些指标?,怎么选服务器配置?

    南通建筑设计院租服务器,重点要比对CPU核心数、内存容量、GPU型号、存储IOPS和带宽峰值这五项指标,缺一不可,建筑设计院租服务器,CPU和内存怎么选设计院跑BIM、CAD和渲染作业,服务器核心配置直接决定工作效率,CPU和内存是基础,但很多人一开始就踩坑,要么选了低频大核,要么内存配少了模型转不动,多核高频……

    2026年8月13日
    100
  • 服务器如何开启重要日志审计策略?日志审计配置方法

    服务器开启重要日志审计策略是企业保障信息资产安全、满足合规要求以及实现故障快速定位的基石,在当前复杂的网络攻击环境下,日志不仅是事后追溯的唯一“黑匣子”,更是实时发现潜在威胁的前哨站,核心结论在于:一套完善的服务器日志审计策略,必须涵盖审计内容的精准定义、日志周期的规范化管理、访问权限的严格控制以及自动化分析机……

    2026年3月27日
    11900
  • 个人如何免费注册域名?注册域名需要满足哪些条件

    个人想要完全免费注册域名在2026年已几乎不可能实现,所谓“免费”通常指首年赠送或附带其他付费服务,真正独立的顶级域名(如.com/.cn)均需每年支付注册费,很多人初入互联网领域时,都被“免费注册”这个概念吸引,试图零成本搭建个人网站或博客,域名作为互联网的门牌号,其背后涉及复杂的国际协调机构(如ICANN……

    2026年6月5日
    3200
  • 如何架设服务器节点加速?提升网速的3个关键技巧

    服务器架设节点加速服务器节点加速是通过在全球或区域范围内战略性地部署多个服务器节点,利用智能路由、数据缓存和协议优化等技术,将用户请求自动引导至最优节点进行处理,从而显著降低网络延迟、提升数据传输速度和应用响应效率的解决方案,其核心价值在于克服物理距离限制和网络拥堵,为用户提供更快、更稳定的访问体验, 核心原理……

    2026年2月12日
    13230
  • 高端水数字营销战正式开打?高端饮用水如何做线上推广

    高端水的数字营销战正式开打,2026年品牌破局的核心在于以数据驱动的精准场景占位与情绪价值赋能,而非传统的渠道硬广铺排,战局重塑:高端水数字营销的底层逻辑从解渴基建到情绪资产的价值跃迁品类重构:依据【中国饮料工业协会】2026年一季度数据,国内包装水市场中,单价5元以上的高端水增速达5%,远超行业均值,水不再是……

    2026年4月29日
    6300
  • gmtlinux怎么安装?linux系统安装gmt详细教程

    在Linux环境下安装GMT(Generic Mapping Tools)最稳定且推荐的方式是通过包管理器(如Conda)或源码编译,其中Conda方式因其依赖自动解决能力,被业内专家指出的适合绝大多数科研用户的首选方案,GMT作为地球科学领域处理地图绘制和数据可视化的“瑞士军刀”,其安装过程往往因为复杂的依赖……

    2026年6月26日
    2300
  • 服务器已停产存储整机怎么办?停产存储设备如何处理

    面对服务器已停产存储整机的现状,直接采购全新同型号设备不仅成本高昂,且供应链极其不稳定,核心结论是:企业应立即停止对原有机型的盲目追索,转而采用“存量挖掘+架构升级”的混合策略,通过专业的第三方维保与利旧改造方案,在保障数据安全的前提下,实现存储性能的平滑过渡与成本最优化, 风险评估:停产设备面临的四大挑战当厂……

    2026年4月2日
    9200
  • 服务器最高权限设置方法有哪些?| root权限管理技巧详解

    服务器最高权限设置服务器最高权限(如Linux的root,Windows的Administrator或Domain Admin)是系统管理的终极钥匙,其核心安全策略在于:严格限制直接使用,实施基于”最小权限原则”的分级授权,并配以完备的审计追踪与应急响应机制, 鲁莽的全权开放等同于将整个系统命脉置于高危之地,核……

    服务器运维 2026年2月14日
    13900
  • 个人智能小程序渠道合作是什么?如何快速搭建小程序

    个人智能小程序渠道合作是指个人开发者或小型团队通过接入百度智能小程序开放平台,利用其流量分发机制与商业化能力,将自有内容或服务转化为可独立运营的数字资产,从而实现流量变现与品牌沉淀的商业化路径,在2026年的互联网生态中,单纯依靠流量红利已难以为继,个人开发者面临着从“流量获取者”向“资产运营者”转型的关键节点……

    2026年5月31日
    4000

发表回复

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