无用户交互自动发送邮件的Cordova插件咨询
Cordova无用户交互自动发邮件解决方案
目前没有封装好的开箱即用Cordova插件直接支持该功能,你可以通过以下两种稳定方案实现需求:
方案1:后端接口中转(推荐)
这是兼容性最高、安全性最好的实现方式,适配所有Cordova支持的平台:
- 自行开发一个简单的后端接口,支持接收邮件收件人、标题、正文、附件等参数,后端通过SMTP协议完成邮件发送
- Cordova端直接用
fetch或者XMLHttpRequest调用该接口传递参数即可,全程不需要用户操作,也不需要调用系统原生邮件应用
方案2:原生SMTP客户端插件
如果不想额外部署后端服务,可以直接使用Cordova SMTP客户端插件,在应用内直接调用SMTP服务发邮件:
- 插件安装命令:
cordova plugin add cordova-plugin-smtp-client - 调用示例代码:
smtpClient.sendMail({ mail: { host: "SMTP服务器地址", port: 465, ssl: true, username: "发件邮箱账号", password: "发件邮箱授权码", from: "发件人展示名 <发件邮箱地址>", to: ["收件人1邮箱", "收件人2邮箱"], subject: "邮件标题", body: "邮件正文内容" } }, () => { console.log("邮件发送成功") }, (err) => { console.log("邮件发送失败:", err) })
注意:该方案需要把发件邮箱的账号、授权码硬编码在前端代码中,存在被盗取滥用的风险,仅适合内部使用的非公开应用,不建议对外发布的商用产品使用。
注意事项
所有主流Webview都禁止前端JS直接发起SMTP请求,无法纯靠前端Web层实现无交互发邮件,必须通过原生层或者后端中转实现。
内容的提问来源于stack exchange,提问作者user16822772
相关产品推荐
相关产品推荐

