Shopware App调用mail-template/send接口添加PDF附件失败咨询
Shopware邮件接口添加PDF附件报错的解决方法
问题根源
你直接传入mediaId时,接口默认会从media目录查找文件,但你的PDF实际存在files目录,路径不匹配导致报错。这不是PDF的特殊情况,是文件存储位置对应的处理逻辑不同。
正确操作步骤
将files目录的PDF关联到Media实体
调用api/media接口创建媒体条目,请求体示例:{ "fileName": "invoice_2544.pdf", "filePath": "files/invoice_2544.pdf", "mimeType": "application/pdf", "private": false }接口返回的
id就是可用于邮件接口的有效mediaId,Shopware会自动处理路径映射。用新生成的mediaId发送邮件
调用api/_action/mail-template/send时,把上述mediaId放入mediaIds数组(支持多附件),示例请求体片段:{ // 其他邮件参数... "mediaIds": ["新生成的mediaId"] }
额外注意事项
- 确保你的App拥有
media:write和file:read权限,避免因权限不足导致文件无法访问。 - 若PDF是Shopware内置PDF生成器自动生成的(比如发票),可直接获取对应订单关联的Media ID,无需手动创建媒体条目。
内容的提问来源于stack exchange,提问作者DannyDan
相关产品推荐
相关产品推荐

