使用emayili+Outlook向SMTP服务器发信时如何添加两个附件?
错误原因
- SMTP配置不匹配:代码中配置的SMTP服务器是测试用的
smtp.mailtrap.io,但运行日志显示实际请求的是Outlook官方SMTP服务器smtp.office365.com,说明旧配置残留或变量覆盖导致你写的server参数未生效。 - Outlook安全限制:Office365/Outlook默认禁止普通密码方式的SMTP访问,开启了安全默认值拦截第三方应用请求。
- 附件路径错误:如果附件不在当前R工作目录下,也会触发发送失败重试报错。
- 代码笔误:日志中出现
verbose = TUE的拼写错误,可能导致参数识别异常。
解决方案
- 修正SMTP服务器配置:如果使用Outlook账号发信,替换为官方SMTP配置,运行前打印配置确认生效:
# 正确的Outlook SMTP配置 smtp <- server( host = "smtp.office365.com", port = 587, username = "你的完整Outlook邮箱地址", password = "你的账号密码/应用专用密码", use_ssl = TRUE ) # 执行前先打印确认配置正确 print(smtp) - 调整Outlook账号权限:
个人账号:如果开启了两步验证,在账号安全中心生成「应用专用密码」,替换上述配置中的password参数;未开两步验证则关闭安全默认值,允许第三方应用访问。
企业账号:联系管理员为你的账号开启SMTP AUTH权限。 - 补全附件绝对路径:避免相对路径找不到文件,填写附件的完整路径,例如:
attachment("C:/Users/xxx/Documents/filename1.xlsx") - 修正代码笔误:将
verbose = TUE改为verbose = TRUE。
内容的提问来源于stack exchange,提问作者nguyen.hoang
相关产品推荐
相关产品推荐

