AI PLAY玩法更新持续收录
← 回到更新流

2026-09-11 · 原文发布日

WordPress订阅通讯自动组稿配图并发邮件

付费模板。每小时查询WordPress插件AIS Newsletter Manager的到期通讯,从Reddit、Google新闻、Yahoo体育等五个RSS源取近十天文章,筛选并跨来源随机挑够篇数;OpenAI按严格JSON结构写导语和逐篇摘要,再以首篇文章生成题图传回WordPress媒体库;按插件里的品牌色、标题、logo拼HTML邮件,取订阅名单用SMTP分批密送,最后回报插件标记已发。

原文要点

这是 n8n 模板站的付费工作流(需购买,本站不提供其文件)。流程:每小时触发一次,调用 WordPress 插件 AIS Newsletter Manager 的 /due 端点取到期通讯;从 Reddit、Google 新闻、Yahoo 体育、NCAA.com、BBC Sport 五个 RSS 源拉取并归一化近十天文章,筛选后跨来源随机挑够篇数;用 OpenAI 聊天模型按严格 JSON 结构生成导语和逐篇摘要;再用 OpenAI 图像生成按首篇文章生成题图,经插件 /media 端点上传 WordPress 媒体库;按插件里的品牌色、标题、logo 和退订链接拼 HTML 邮件,取活跃订阅名单后按配置的 BCC 批大小经 SMTP 密送,最后 POST /sent 端点回报已发。凭据要求:以 X-AIS-Token 头发送插件令牌的 HTTP Header Auth、OpenAI API、SMTP。

这次做成什么

在未购买原模板的前提下,先照本文把整条通讯自动化逻辑在 n8n 里复现一遍,理解每个环节的数据流与凭据配置,再决定是否需要购买原模板(原模板才是作者维护的成品,细节以原模板为准)。

准备什么

  • 自建或云端的 n8n 实例,能添加 HTTP Request、Code、OpenAI、SMTP 相关节点
  • 已安装并配置 AIS Newsletter Manager 插件的 WordPress 站点,其 /due、/media、recipients、/sent REST 端点可从 n8n 服务器访问
  • 三个凭据:X-AIS-Token 头的 HTTP Header Auth、OpenAI API Key、SMTP 账号(发件地址可用)
  • WordPress 里至少建好一条带主题与品牌设置的通讯和订阅名单,用于联调
  • OpenAI 聊天与图像生成为付费 API,费用以官方计费为准,本文无法给出确定金额

具体怎么做

  1. 配置每小时触发与到期查询

    新建工作流,第一个节点用 Schedule Trigger 设为每小时一次。接 HTTP Request 节点:GET {wpBaseUrl}/wp-json/ais/v1/due(具体路径以插件文档为准,本文路径为示意),凭据选 Header Auth,名称 X-AIS-Token,值填插件令牌。返回的每条到期通讯进入后续循环。

  2. 拉取五个 RSS 源并归一化

    为每条通讯加五个并行 HTTP Request 节点分别 GET Reddit、Google News、Yahoo Sports、NCAA.com、BBC Sport 的 RSS 地址,各接一个 RSS Read 或用 Code 节点解析 XML。用 Merge 汇总后进 Code 节点,把每条统一映射为 {title, link, source, published, excerpt} 五个字段,并过滤 published 距今不超过 10 天。

  3. 筛选并跨来源随机选稿

    在 Code 节点里按 source 分组,每组内随机打乱,再轮流从各组取文章,凑够通讯配置的篇数(示例取 5 篇),保证每个来源至少有一篇代表。输出数组传给下一步。

  4. OpenAI 生成导语和逐篇摘要

    添加 OpenAI 聊天节点(或 HTTP Request 调 /v1/chat/completions),把选出的文章数组和下方 JSON 结构提示词一并送入,设置 response_format 为 JSON 对象,要求输出 {intro, items:[{title, link, summary}]} 结构。解析 JSON 失败时在此分支重试一次。

  5. 生成题图并上传媒体库

    取 items 第一篇文章标题和摘要,调 OpenAI 图像生成接口得到图片,再用带 X-AIS-Token 的 HTTP Request POST 到插件的媒体端点(路径以插件为准),保存返回的图片 URL 供拼 HTML 使用。

  6. 拼品牌 HTML 并分批密送

    从 WordPress 读通讯的品牌设置(颜色、标题、logo、退订链接)和活跃收件人列表,用 Code 节点渲染 HTML 模板(下方材料)。把收件人按配置的批大小(示例 50 人/批)切块,循环 SMTP Send Email 节点逐批发送,所有收件人放 BCC,To 填发件地址本身。

  7. 回报已发并测试

    所有批次成功后,POST 插件 /sent 端点标记该通讯已发,再进入下一条到期通讯。先用手动执行 + 一条只含自己邮箱的测试名单跑通全流程,确认邮件样式和 /sent 回报都正常后再恢复每小时调度。

可直接复制的材料

OpenAI 组稿提示词(严格 JSON)

本站独立编写的示例提示词,{{ $json.articles }} 需按你工作流里实际的字段引用方式调整;非原模板内容。

你是一份体育新闻通讯的编辑。下面是筛选出的文章列表(JSON 数组,含 title、link、source、excerpt 字段)。

请完成:
1. 写一段 60 字以内的中文导语 intro,概括本期亮点,口吻友好;
2. 为每篇文章写一段 50 字以内的中文摘要 summary,不得虚构文章中没有的事实。

只输出一个 JSON 对象,结构严格如下,不要输出任何其他文字:
{"intro": "...", "items": [{"title": "原标题", "link": "原链接", "summary": "..."}]}

items 的顺序和篇数必须与输入完全一致。

文章列表:
{{ $json.articles }}

HTML 邮件渲染用的合成通讯数据(测试用)

本站虚构的合成测试数据,域名均为 example.test 占位,不含真实个人信息;联调时替换为插件返回的真实结构。

{
  "newsletter": {
    "title": "周五体育快报",
    "brandColor": "#1a56db",
    "logoUrl": "https://example.test/logo.png",
    "unsubscribeUrl": "https://example.test/unsub?token=demo"
  },
  "featureImageUrl": "https://example.test/uploads/cover.jpg",
  "intro": "本周体坛看点:决赛之夜与新星首秀,一文速览。",
  "items": [
    {"title": "示例:城市队逆转夺冠", "link": "https://example.test/a1", "summary": "城市队在补时阶段连入两球完成逆转,捧起赛季冠军奖杯。"},
    {"title": "示例:新秀首秀破纪录", "link": "https://example.test/a2", "summary": "18 岁新秀首场正式比赛即打破尘封十二年的青年纪录。"}
  ],
  "recipients": ["me@example.test"]
}

输入与输出示例

本站虚构演示,未运行真实工作流;路径、字段名与返回值均需在你的插件与 n8n 实例中核对。

输入

测试执行时 /due 返回一条到期通讯“周五体育快报”,五个 RSS 源归一化过滤后剩 23 篇近十天文章,配置篇数为 5;随机选稿结果为 Reddit 1 篇、Google 新闻 2 篇、Yahoo 体育 1 篇、BBC Sport 1 篇;收件人测试名单只有 me@example.test 一个地址。

对应输出

OpenAI 返回 JSON:{"intro":"本周体坛看点:决赛之夜与新星首秀,一文速览。","items":[{"title":"示例:城市队逆转夺冠","link":"https://example.test/a1","summary":"城市队在补时阶段连入两球完成逆转。"}]};题图经媒体端点上传返回 https://example.test/uploads/cover.jpg;SMTP 以 1 个批次密送 1 封 HTML 邮件;最后 POST /sent 返回 {"status":"sent"},工作流继续检查下一条到期通讯(无更多则结束)。

做完检查这些

  • 手动执行一遍,/due 查询返回 200 且能解析出至少一条测试通讯对象
  • 五个 RSS 源都有数据进入归一化步骤,过滤后文章日期均不早于 10 天前
  • OpenAI 输出能被 JSON.parse 直接解析,items 篇数与选稿篇数一致,无多余文字
  • 题图 URL 出现在最终 HTML 的 <img> 标签中,品牌色与通讯标题出现在页首
  • 测试名单收到邮件,发件人地址正确,/sent 端点返回成功,调度恢复后无重复发送

容易卡住的地方

  • 原工作流是付费模板,本文是本站按其公开说明复现的方案,不是原文件,界面与参数细节需以原模板为准
  • 插件的 REST 路径(/due、/media、/sent 等)本文仅为示意,必须以 AIS Newsletter Manager 实际文档核对,猜错路径会 404
  • OpenAI 聊天与图像生成按官方计费收费,每小时跑一次要预估调用量,避免意外账单
  • BCC 批量发送时注意每批人数上限与 SMTP 服务商的速率限制,批太大可能整批被拒
  • RSS 源结构各异且可能改版,归一化 Code 节点要对缺字段做兜底,否则单条坏数据会让整个循环中断
  • /sent 回报务必放在所有批次发送成功之后,否则失败重试时会出现已标记已发但部分人没收到的情况
  • 不要在 X-AIS-Token 或 SMTP 凭据里硬编码真实值,统一用 n8n 凭据管理,测试用隔离令牌

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Send AI-generated WordPress newsletters using OpenAI and SMTP
原作者
AI Solutions
原始发布日期
2026-09-10T19:27:39.797Z
来源
https://n8n.io/workflows/19455