IFTTT无法解析XML附件,Zapier需用Python代码步骤识别.xml附件并提取URL,再通过Filter和Dropbox上传;Gmail须禁用自动归档否则无法触发。

IFTTT 和 Zapier 都不原生支持解析 XML 附件内容
这是最关键的限制:IFTTT 的 Email 触发器仅能检测“收到邮件”,无法识别附件类型或读取附件内容;Zapier 的 Gmail 或 Outlook 触发器虽能获取附件,但其内置的 Filter 步骤无法基于文件扩展名(如 .xml)做条件判断——它只支持对邮件正文、主题、发件人等文本字段过滤,不支持对附件元数据(如 filename 或 mimetype)设条件。
Zapier 中实现 XML 附件识别必须用代码步骤(Python)
你需要在 Zap 中插入一个 Code by Zapier 步骤(选 Python),手动检查附件列表中是否存在 .xml 文件。Zapier 传入的 input_data 包含 attachments 列表,每项有 filename 字段:
import re获取 attachments(Zapier 自动注入)
attachments = input_data.get('attachments', [])
查找第一个 .xml 附件(不区分大小写)
xml_attachment = None for att in attachments: if re.search(r'.xml$', att.get('filename', ''), re.I): xml_attachment = att break
输出结果供后续步骤使用
output = { 'has_xml': xml_attachment is not None, 'xml_filename': xml_attachment['filename'] if xml_attachment else None, 'xml_url': xml_attachment['url'] if xml_attachment else None }
后续步骤需用 Filter 判断 has_xml == true,再接 Dropbox > Upload file,并把 xml_url 作为 File URL 输入。
- 注意:Zapier 的
File URL必须是公开可直连的链接(xml_url满足此要求) - 不要尝试用
Code步骤下载+重上传——会触发 Zapier 的大文件限制(默认 10MB)且增加失败风险 - 如果邮件含多个 XML,上述脚本只取第一个;如需全部处理,得改用循环 + 多路径分支(Zapier 免费版不支持)
IFTTT 完全无法完成该需求
IFTTT 的 Email 服务仅支持 new email 触发,且所有动作(包括 Dropbox > upload file)都无法接入附件。它的 Attachments 字段在触发数据中根本不存在,更无 API 或代码扩展能力。试图用 subject contains "XML" 之类规则纯属误导——发件人不可能总在主题里写明附件类型。
你唯一能做的,是放弃 IFTTT,用 Zapier + 上述 Python 步骤。免费版 Zapier 限每月 100 个任务,若邮件量大,需升级付费计划(否则 XML 附件会被跳过)。
真正容易被忽略的是:Gmail 的“已归档”邮件不会触发 Zapier;必须确保目标邮箱未启用 “跳过收件箱” 或 “自动归档”,否则自动化永远收不到附件。









