在R语言Shiny应用中使用mailR发送邮件报错,求解决方案
问题描述
我尝试在自己的Shiny应用中使用mailR库发送邮件,代码如下:
send.mail(from, to, subject=subject, body=msg, smtp= list(host.name = "smtp.gmail.com", port=465, user.name="name", passwd='psswd', ssl=TRUE), authenticate = TRUE, send=TRUE)
(出于隐私考虑,from、to、用户名、密码等信息未展示)
运行上述代码时,遇到如下错误:
解决方案
- 启用Google账号两步验证,生成应用专用密码,替换代码中的
passwd字段值。Gmail目前不再支持普通密码用于第三方邮件客户端认证,这是触发该错误的最常见原因。 - 若更换密码后仍有问题,可尝试调整SMTP配置:改用587端口,关闭SSL并开启TLS:
send.mail(from, to, subject=subject, body=msg, smtp=list(host.name = "smtp.gmail.com", port=587, user.name="你的Gmail账号", passwd='应用专用密码', ssl=FALSE, tls=TRUE), authenticate = TRUE, send=TRUE)
- 检查Google账号安全设置,确认未开启“限制第三方应用访问”的相关选项。
- 若Shiny应用部署在远程服务器上,需确保服务器防火墙允许访问smtp.gmail.com的465或587端口。
内容的提问来源于stack exchange,提问作者Pablo Bonet
相关产品推荐
相关产品推荐

