ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

listmonk 事务邮件如何用 multipart/form-data 添加文件附件

listmonk 事务邮件如何用 multipart/form-data 添加文件附件 listmonk 事务邮件如何用 multipart/form-data 添加文件附件【免费下载链接】listmonkHigh performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.项目地址: https://gitcode.com/GitHub_Trending/li/listmonklistmonk 的事务邮件接口POST /api/tx默认用 JSON 请求体发送消息但 JSON 没法携带二进制文件。当你要发送的邮件需要带附件PDF、报表等时listmonk 提供了一个专门的路径把请求的 Content-Type 改为multipart/form-data用一个data字段装原本所有 JSON 参数再用一个或多个file字段携带附件文件。本文说明这条路径的完整请求格式、验证方式和边界条件。准备条件发送带附件的事务邮件前需要满足三个条件均来自 事务邮件 API 文档 与 API 总览一个已配置的tx类型事务模板并记下它的 ID。template_id是POST /api/tx的唯一必填参数且必须指向事务模板模板中可用的数据占位符是{{ .Tx.Data.* }}。API 用户凭据。在后台 Admin → Users 中创建带所需权限的 API 用户请求用 BasicAuthapi_user:token或Authorization: token api_user:token头认证。本地的附件文件。curl 示例中的/path/to/...指文件在发起请求机器上的路径发送前请替换为实际存在的文件路径。发送带附件的事务邮件文档给出的 multipart 请求格式如下docs/docs/content/apis/transactional.md的 File Attachments 一节curl -u api_user:token http://localhost:9000/api/tx -X POST \ -F data\{ \subscriber_email\: \usertest.com\, \template_id\: 4 } \ -F file/path/to/attachment.pdf \ -F file/path/to/attachment2.pdf请求要点data字段装全部参数。原来的 JSON 请求体subscriber_email、template_id、data、subject、content_type、subscriber_mode等整体序列化成一段 JSON 字符串放进名为data的表单字段。示例中 shell 里的\是对 JSON 引号的转义发给服务端的实际内容是一个合法 JSON 对象。file字段装附件可重复。每个附件是一个独立的-F file/本地文件路径参数文档明确说明 Include any number of attachments via thefileparam即一次请求可以附加任意多个文件。示例中的值按需替换usertest.com换成目标订阅者邮箱4换成你的事务模板 ID两个.pdf路径换成实际附件http://localhost:9000换成你的 listmonk 实例地址。除data外不需要其他表单字段file之外没有文档定义的其他表单参数。验证发送结果接口行为与 JSON 请求一致见 API 总览的响应结构成功返回 HTTP 200响应体为 JSON{ data: true }邮件随后经配置的 SMTP 通道异步投递最终附件是否送达以收件箱收到的邮件为准。失败返回 40x/50x 状态码和{message: ...}形式的错误说明。cmd/tx.go中对 multipart 请求的校验逻辑给出了两个典型失败点缺少data表单字段或data内容不是合法 JSON → HTTP 400template_id指向的模板不存在 → HTTP 400message 形如template idnot found收件者在数据库不存在且subscriber_mode为default时同样以 400 报出未找到的收件者。限制与边界附件编码方式由服务端决定客户端不可选。服务端cmd/tx.go、internal/manager/manager.go 中的MakeAttachmentHeader统一以 base64 编码、Content-Disposition: attachment生成 MIME 头若file上传时未带 Content-Type默认按application/octet-stream处理。你无法通过该接口把附件设为 HTML 内联cid资源内联图片只能走模板自带的附件能力。multipart 路径不改变参数语义。subscriber_mode的default/fallback/external规则、subscriber_email与subscriber_emails不可混用等约束在dataJSON 里同样生效且fallback/external模式只接受subscriber_emails。模板自身的附件不受本接口影响。服务端会把模板配置的附件与本请求的file附件一并加入最终邮件见 cmd/tx.go 中tpl.Attachments的合并逻辑如果你只想带请求中的附件请确认模板没有配置额外附件。完成一次成功的{data: true}响应并确认收件箱邮件带有预期附件后这条带附件的事务邮件链路即可作为常规集成路径使用模板的管理创建、预览、设为默认见 API / Templates。【免费下载链接】listmonkHigh performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.项目地址: https://gitcode.com/GitHub_Trending/li/listmonk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表