You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Mailgun API发送OTP邮件:服务端还是应用端实现?

应该在服务端执行邮件发送操作

绝对要在服务端完成Mailgun API调用发送OTP邮件的操作,这是业内公认的安全且可靠的方案,核心原因如下:

  • 安全第一,避免密钥泄露
    Mailgun API需要使用你的专属API密钥才能调用,如果把这个密钥放在应用端(比如移动端APP、前端网页),很容易被攻击者通过反编译、抓包等方式获取。一旦密钥泄露,别人就能随意使用你的Mailgun配额发送邮件,甚至伪造你的品牌发送恶意内容,风险极高。服务端可以安全存储密钥,所有API调用都在后端完成,应用端只需要和你的服务端交互,完全接触不到敏感凭证。

  • 提升可靠性与可维护性
    邮件发送可能遇到网络波动、API限流等问题,服务端可以轻松实现重试机制、超时处理,确保OTP邮件尽可能送达用户;而应用端受限于设备网络、权限等因素,失败后很难自动恢复。另外,服务端可以记录完整的发送日志,方便你排查“用户没收到邮件”这类问题,比如是Mailgun返回了错误,还是用户邮箱不存在,这些在应用端都很难追踪。

  • 保证业务逻辑的一致性与可控性
    OTP的生成、存储、发送应该是一个闭环逻辑,都放在服务端能确保生成的OTP和发送给用户的完全一致,避免应用端生成OTP后在传输过程中被篡改。同时,服务端可以实现频率限制(比如同一邮箱1分钟内只能发送1次OTP)、黑名单过滤等安全策略,防止恶意刷邮件的行为——这些限制在应用端很容易被绕过。

举个典型的流程例子:

  1. 用户在应用端输入邮箱,向你的服务端发送“获取OTP”请求
  2. 服务端生成随机OTP,将其与邮箱绑定并存储(比如用Redis设置5分钟过期时间)
  3. 服务端调用Mailgun API,将OTP邮件发送给目标邮箱
  4. 服务端向应用端返回“发送成功”的响应
  5. 用户收到邮件后输入OTP,应用端将OTP发送给服务端验证

记住:永远不要把第三方服务的敏感凭证暴露在客户端,这是后端开发的基本安全准则。

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:43:24