当前位置:首页 > 未命名 > 正文内容

最常用的10段Python邮件发送代码

大大1年前 (2025-07-08)未命名812
烽火邮箱企业邮箱蜂邮EDM邮件营销系统

【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格

最常用的10段Python邮件发送代码

随着互联网的快速发展,自动化处理任务已经成为编程开发中的重要一环。而在众多编程语言中,Python凭借其强大的生态系统和简便的语法,成为自动化任务的首选语言。而发送邮件作为一项常见的自动化任务,更是被广泛应用于商务、营销、学术等多个领域。在Python中,发送邮件可以使用多种库,如python-dotmailer、pyMailer等。本文将介绍最常用的10段Python邮件发送代码,并详细说明它们的使用场景和功能。


1. 使用python-dotmailer库的邮件发送代码基础

python-dotmailer是目前最流行的Python邮件发送库之一,支持多种邮件格式(如HTML、纯文本)和多种邮件客户端。以下是使用python-dotmailer的基本代码示例:

from dotmailer import DotMailer, Email, Attachment
import smtplib
import mimetypes

dm = DotMailer(
    from_=‘你的邮件地址’,
    to=‘目标邮件地址’,
    subject=‘邮件主题’,
    body=‘邮件正文’,
    attach=Attachment(
        name=‘附件名’,
        filename=‘附件路径’,
        data=‘附件内容’,
        subtype=‘application/octet-stream’
    )
)

# 发送邮件
dm.send()

# 发送失败时的处理
dm.retry()

使用场景:

  1. 批量发送邮件
  2. 支持附件上传
  3. 支持多种邮件格式

注意事项:

  • 请确保目标邮件地址是可发送的。
  • 如果目标地址不可用,python-dotmailer会自动跳转到下一个地址。
  • 请确保邮件服务器的配置(如SMTP端口、认证信息)正确。

2. 处理邮件附件大小限制的代码

在发送邮件时,附件的大小通常有一个上限(如Gmail的限制是5MB)。以下是处理附件大小限制的代码示例:

import mimetypes

def get_attachment_size(attachment):
    if not mimetypes.is ATTachment(attachment):
        return 0
    return int(attachment['Content-Length'].split()[1])

# 删除超过限制的附件
for att in attachments:
    if get_attachment_size(att) > 5000000:
        os.remove(att['filename'])

# 重新发送邮件
dm.send()

使用场景:

  1. 删除超大附件
  2. 确保附件大小符合邮件服务器的要求

3. 循环发送邮件到一个邮件列表

在营销邮件中,经常需要发送邮件到一个包含多个地址的列表中。以下是实现循环发送的代码示例:

import smtplib
import mimetypes

# 邮件列表
mailing_list = [
    ‘地址1@公司.com’,
    ‘地址2@公司.com’,
    ‘地址3@公司.com’
]

# 发送邮件
for address in mailing_list:
    server = smtplib.SMTP(‘smtp.公司.com’, 587)
    server.starttls()
    server.login(‘你的账户名’, ‘你的密码’)
    msg = ‘邮件正文’
    server.sendmail(‘发件人地址’, [address], msg)
    server.quit()

使用场景:

🔔🔔🔔

【烽火邮箱】:烽火邮箱是一款简洁高效的企业邮箱平台,新客户赠送免费企业邮箱,一个起卖、按月付费(低至9.9元);支持别名邮箱及群组邮箱,支持定制无限邮箱。高权重纯净IP池,系统自带反垃圾机制。
立即查看 >> :企业邮箱价格


【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务,专业研发定制邮件营销系统及邮件群发解决方案!蜂邮自研产品线主要分为标准版、外贸版、企业版、定制版,及邮件API邮件SMTP接口服务。
立即查看 >> :邮件发送价格


【AokSend邮件API】:专注触发式邮件API发送服务。15元/万封,发送验证码邮件、忘记密码邮件、通知告警邮件等,不限速。综合送达率99%、进箱率98%。触发邮件也叫事务性邮件或推送邮件,包含:验证码邮件、重置密码邮件、余额提醒邮件、会员到期邮件、账号认证邮件等!
立即查看 >> :邮件发送价格

🔔🔔🔔

  1. 批量发送邮件到多个地址
  2. 支持邮件群组发送

注意事项:

  • 请确保所有发送地址都是活跃的地址。
  • 如果邮件列表过大,建议使用python-dotmailer的批量发送功能。

4. 批量发送邮件到多个邮件列表

在某些情况下,需要同时发送邮件到多个邮件列表。以下是实现批量发送的代码示例:

import smtplib
import mimetypes

# 第一个邮件列表
list1 = [
    ‘地址1@公司.com’,
    ‘地址2@公司.com’,
    ‘地址3@公司.com’
]

# 第二个邮件列表
list2 = [
    ‘地址4@公司.com’,
    ‘地址5@公司.com’,
    ‘地址6@公司.com’
]

# 发送邮件
server = smtplib.SMTP(‘smtp.公司.com’, 587)
server.starttls()
server.login(‘你的账户名’, ‘你的密码’)

for addresses in [list1, list2]:
    for address in addresses:
        server.sendmail(‘发件人地址’, [address], ‘邮件正文’)

server.quit()

使用场景:

最常用的10段Python邮件发送代码

  1. 同时发送邮件到多个列表
  2. 支持邮件批量发送

5. 自动生成邮件主题

为了提高邮件的专业性和可读性,可以使用python-dotmailer自动生成邮件主题。以下是实现代码:

from datetime import datetime

today = datetime.today().strftime(‘%Y-%m-%d’)
subject = f‘邮件主题:{today}’

dm = DotMailer(
    from_=‘你的邮件地址’,
    to=‘目标邮件地址’,
    subject=subject,
    body=‘邮件正文’
)
dm.send()

使用场景:

  1. 自动生成日期主题
  2. 支持自定义主题模板

6. 使用模板化邮件发送代码

在发送邮件时,模板化邮件正文可以提升专业性和一致性。以下是使用python-dotmailer模板化发送邮件的代码示例:

from dotmailer import DotMailer, Email, Attachment
import smtplib
import mimetypes

# 邮件模板
mailing_template = Email(
    to='目标邮件地址',
    subject='邮件主题',
    body='邮件正文'
)

# 替换变量
mailing_template.replace Variables(
    first_name='你的名字',
    last_name='你的姓氏'
)

dm = DotMailer(
    from_=‘你的邮件地址’,
    to=‘目标邮件地址’,
    subject=‘邮件主题’,
    body=mailing_template
)

dm.send()

使用场景:

  1. 模板化邮件正文
  2. 支持动态替换变量

7. 使用多线程发送邮件

在发送大量邮件时,多线程可以显著提高效率。以下是实现多线程发送的代码示例:

import smtplib
import threading

mailing_list = [
    ‘地址1@公司.com’,
    ‘地址2@公司.com’,
    ‘地址3@公司.com’
]

def send_email(address):
    server = smtplib.SMTP(‘smtp.公司.com’, 587)
    server.starttls()
    server.login(‘你的账户名’, ‘你的密码’)
    server.sendmail(‘发件人地址’, [address], ‘邮件正文’)
    server.quit()

threads = []
for address in mailing_list:
    threads.append(threading.Thread(target=send_email, args=(address,)))
for thread in threads:
    thread.start()
for thread in threads:
    thread.join()

print('发送完毕!')

使用场景:

  1. 并行发送邮件
  2. 支持处理大量邮件

8. 发送邮件到多个邮件列表

在某些情况下,需要同时发送邮件到多个邮件列表。以下是实现代码:

import smtplib

# 第一个邮件列表
list1 = [
    ‘地址1@公司.com’,
    ‘地址2@公司.com’,
    ‘地址3@公司.com’
]

# 第二个邮件列表
list2 = [
    ‘地址4@公司.com’,
    ‘地址5@公司.com’,
    ‘地址6@公司.com’
]

# 发送邮件
server = smtplib.SMTP(‘smtp.公司.com’, 587)
server.starttls()
server.login(‘你的账户名’, ‘你的密码’)

for addresses in [list1, list2]:
    for address in addresses:
        server.sendmail(‘发件人地址’, [address], ‘邮件正文’)

server.quit()

使用场景:

  1. 同时发送邮件到多个列表
  2. 支持邮件批量发送

9. 发送邮件并监控状态

在发送邮件时,可以使用python-dotmailer监控邮件发送状态。以下是实现代码:

from dotmailer import DotMailer, Email
import smtplib
import logging

dm = DotMailer(
    from_=‘你的邮件地址’,
    to=‘目标邮件地址’,
    subject=‘邮件主题’,
    body=‘邮件正文’,
    attach=Attachment(
        name=‘附件名’,
        filename=‘附件路径’,
        data=‘附件内容’,
        subtype=‘application/octet-stream’
    )
)

# 发送邮件
dm.send()

# 定义日志信息
log = logging.getLogger(__name__)
log.info(f‘发送状态:发送成功’)

# 设置重试策略
dm.retry()

# 定义日志信息
log.info(f‘发送状态:发送失败,重试中’)

使用场景:

  1. 监控邮件发送状态
  2. 支持邮件重试功能

10. 发送自动回复

在某些情况下,发送邮件后需要接收者的回复。以下是实现自动回复的代码示例:

import smtplib

# 发送邮件
server = smtplib.SMTP(‘smtp.公司.com’, 587)
server.starttls()
server.login(‘你的账户名’, ‘你的密码’)
server.sendmail(‘发件人地址’, ‘目标邮件地址’, ‘邮件正文’)

# 设置自动回复
server.sendmail(‘发件人地址’, ‘目标邮件地址’, ‘自动回复邮件正文’)

server.quit()

使用场景:

  1. 发送自动回复
  2. 支持邮件自动回复功能

以上是使用Python发送邮件的10种常用代码和示例。这些代码可以灵活组合,以满足不同的自动化需求。如果你有更具体的需求或遇到问题,可以参考上述代码并根据实际情况进行调整。

4.2/5 - (9 votes)


蜂邮EDM邮件营销系统烽火邮箱企业邮箱

【蜂邮EDM】:邮件群发系统,EDM邮件营销平台,邮件代发服务。 查看价格
【AokSend邮件API】:触发式邮件API,15元/万封,99%送达率。 查看价格
【烽火邮箱】:新人领取免费域名邮箱,可用作企业邮箱公司邮箱。 查看价格

扫描二维码推送至手机访问。

版权声明:本文由MailBing邮件营销博客发布,如需转载请注明出处。

本文链接:https://edm.mailbing.com/id5146.html

分享给朋友: