MailApp.sendEmail是否仅支持Gmail账户?功能异常咨询
先给你吃个定心丸:MailApp.sendEmail绝对不是只能给Gmail账户发送邮件,我之前帮不少开发者排查过类似的突然无法投递Outlook的问题,大概率是收件端的拦截规则或者发件身份验证的问题,不是Google这边限制了收件域。
下面给你梳理几个最常见的原因和排查步骤:
Outlook的垃圾邮件过滤拦截
这是最常见的情况。Google Apps Script发送的邮件,发件人域名一般是script.googleusercontent.com,Outlook的反垃圾系统最近可能更新了规则,把这类域名的邮件直接归为垃圾了。你先去Outlook的「垃圾邮件」「已删除邮件」文件夹里找找测试邮件,要是找到了,把这个发件域名加入Outlook的安全发件人列表就行。发件人身份验证不通过
如果你的App Maker是用Google Workspace(企业版)账户部署的,而不是个人Gmail,那得检查一下你域名的SPF和DKIM记录配置是否正确。Outlook对邮件的身份验证要求比较严格,如果SPF里没包含Google的邮件服务器地址,或者DKIM没启用,邮件很可能会被直接拒收。邮件内容触发了过滤规则
要是你的测试邮件里有敏感关键词、大量外链、或者格式异常(比如无正文只有附件),也会被Outlook拦截。建议你用最极简的测试代码再跑一遍:function testOutlookDelivery() { MailApp.sendEmail('your-outlook-addr@outlook.com', 'Test Email', 'This is a simple test from Google App Maker'); }用这种纯文本的极简内容测试,排除内容本身的问题。
脚本执行日志的报错信息
别忽略了App Maker脚本的执行日志!打开脚本编辑器,点击「查看」→「执行日志」,看看有没有Delivery failed、Unauthorized之类的报错。如果有具体的错误提示,能直接定位问题根源(比如收件地址格式错误、发送配额耗尽之类的)。
最后补充一句:你说之前能正常发送现在突然不行,很大概率是Outlook那边的反垃圾策略更新了,或者你的发件域名被临时加入了拦截列表,和MailApp本身的功能限制无关。
内容的提问来源于stack exchange,提问作者Carson Taylor

