如何编写脚本自动从SendGrid获取各类抑制列表并邮件发送?
用SendGrid API自动获取抑制列表并发送邮件的实现方案
完全可行,SendGrid提供了专门的API接口来获取各类抑制列表,同时也支持通过API发送邮件,你的需求可以完整实现。
核心步骤
1. 前期准备
- 登录SendGrid后台生成API密钥,必须开启
Suppressions(获取抑制列表)和Mail Send(发送邮件)的权限 - 安装对应语言的SDK,比如Python环境下直接执行
pip install sendgrid
2. 拉取各类抑制列表
针对每种抑制类型,调用对应的API端点即可:
- 退信(Bounce):
GET /v3/suppression/bounces - 垃圾邮件投诉(Spam):
GET /v3/suppression/spam_reports - 无效地址(Invalid):
GET /v3/suppression/invalid_emails - 拦截(Block):
GET /v3/suppression/blocks
Python示例代码:
import sendgrid # 初始化客户端,替换成你的API密钥 sg = sendgrid.SendGridAPIClient(api_key='YOUR_SENDGRID_API_KEY') # 拉取退信列表 bounce_data = sg.client.suppression.bounces.get().body # 拉取垃圾邮件投诉列表 spam_data = sg.client.suppression.spam_reports.get().body # 拉取无效地址列表 invalid_data = sg.client.suppression.invalid_emails.get().body # 拉取拦截列表 block_data = sg.client.suppression.blocks.get().body
3. 整理数据并发送邮件
把拉取到的列表整理成易读格式,再通过SendGrid的邮件API发送给指定人员:
Python示例代码:
from sendgrid.helpers.mail import Mail, Content # 整理邮件内容,用Markdown格式让内容更清晰 email_body = f""" ### SendGrid抑制列表汇总 #### 退信地址 {bounce_data} #### 垃圾邮件投诉地址 {spam_data} #### 无效邮件地址 {invalid_data} #### 拦截地址 {block_data} """ # 构建邮件 mail_msg = Mail( from_email='你的发件邮箱@example.com', to_emails='收件人邮箱@example.com', subject='每日SendGrid抑制列表汇总', html_content=Content('text/html', email_body) ) # 发送邮件 try: response = sg.send(mail_msg) print(f"邮件发送成功,状态码:{response.status_code}") except Exception as e: print(f"发送失败:{str(e)}")
注意事项
- API有速率限制,批量拉取时别太频繁,避免被限流
- 可以给API请求加
start_time和end_time参数,只拉取指定时间段的数据,减少返回量 - 别把API密钥硬编码在脚本里,存到环境变量里更安全
内容的提问来源于stack exchange,提问作者Rajnie27
相关产品推荐
相关产品推荐

