当前位置:首页 > Python > 正文

Python yagmail库教程:轻松发送电子邮件 - Python邮件发送指南

Python yagmail库教程

轻松发送电子邮件的Python解决方案

什么是yagmail?

yagmail是一个专为Python设计的邮件发送库,它简化了通过SMTP发送邮件的复杂过程。与Python内置的smtplib相比,yagmail提供了更简洁、更Pythonic的API。

主要优点:

  • 极简的API设计,减少代码量
  • 自动处理SMTP连接
  • 支持HTML内容和附件
  • 安全存储密码
  • 支持Gmail及其他SMTP服务

安装yagmail

使用pip安装:

pip install yagmail

基本用法

1. 发送简单文本邮件

import yagmail

# 初始化客户端(首次使用会提示输入密码)
yag = yagmail.SMTP('your_email@gmail.com', host='smtp.gmail.com')

# 发送邮件
yag.send(
    to='recipient@example.com',
    subject='测试邮件',
    contents='这是一封来自yagmail的测试邮件!'
)

2. 发送HTML邮件

html_content = """
<h1 style="color: #3498db;">欢迎加入我们!</h1>
<p>感谢您注册我们的服务。</p>
<ul>
    <li>账户已激活</li>
    <li>您现在可以登录</li>
</ul>
"""

yag.send(
    to='recipient@example.com',
    subject='欢迎邮件',
    contents=html_content
)

3. 发送带附件的邮件

# 单个附件
yag.send(
    to='recipient@example.com',
    subject='月度报告',
    contents='请查收附件中的月度报告',
    attachments=['/path/to/report.pdf']
)

# 多个附件
yag.send(
    to='recipient@example.com',
    subject='项目文档',
    contents='项目相关文档见附件',
    attachments=['doc1.docx', 'data.xlsx', 'image.png']
)

4. 群发邮件

recipients = ['user1@example.com', 'user2@example.com', 'user3@example.com']

yag.send(
    to=recipients,
    subject='重要通知',
    contents='请所有成员注意下周会议时间变更'
)

高级功能

1. 安全存储密码

yagmail可以在keyring中安全存储密码:

# 首次运行时,会提示输入密码
yagmail.register('your_email@gmail.com', 'your_password')

2. 使用别名

yag.send(
    to='recipient@example.com',
    subject='来自开发团队',
    contents='这是邮件内容',
    headers={'From': 'Dev Team <dev@company.com>'}
)

3. 发送内联图片

contents = [
    "<h1>产品图片</h1>",
    "<p>这是我们最新产品的图片:</p>",
    yagmail.inline('/path/to/product.jpg'),
    "<p>欢迎反馈!</p>"
]

yag.send(to='recipient@example.com', subject='产品图片', contents=contents)

常见问题

1. 如何解决Gmail发送问题?

确保在Google账户中启用了"安全性较低的应用的访问权限"或使用应用专用密码。

2. 支持哪些邮件服务商?

yagmail支持所有SMTP服务,包括:

  • Gmail: smtp.gmail.com, 端口465/587
  • Outlook/Hotmail: smtp-mail.outlook.com, 端口587
  • Yahoo: smtp.mail.yahoo.com, 端口465
  • 企业SMTP服务器

3. 如何发送给多个收件人但不互相看到?

# 使用bcc参数
yag.send(
    bcc=['user1@example.com', 'user2@example.com'],
    subject='机密通知',
    contents='这封邮件是密送的'
)

开始使用yagmail

yagmail让Python邮件发送变得简单高效。只需几行代码,即可实现复杂的邮件发送功能。

立即尝试,提升您的自动化邮件处理能力!

发表评论