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

如何在AWS Cognito忘记密码自定义Lambda中将图片作为附件嵌入

AWS Cognito 自定义密码重置邮件内嵌Logo实现方案

核心实现逻辑

通过Cognito的「自定义消息」Lambda触发器,在密码重置邮件发送前对内容进行改造,通过CID关联内嵌图片附件的方式实现Logo嵌入,无需依赖公网可访问的图片URL。

操作步骤

  • 步骤1:预处理Logo素材
    将公司Logo导出为PNG/JPG格式,压缩到100KB以内,避免邮件被判定为垃圾邮件,再将图片转为Base64编码备用。
  • 步骤2:配置Cognito触发器
    进入AWS Cognito用户池控制台,在「触发器」配置页,选择一个Node.js环境的Lambda作为自定义消息触发器,保存配置。
  • 步骤3:编写Lambda处理代码
    参考以下示例修改Lambda代码,替换对应占位内容即可:
exports.handler = (event, context, callback) => {
  // 仅匹配忘记密码的触发场景
  if (event.triggerSource === "CustomMessage_ForgotPassword") {
    // 替换为你自己的Logo Base64编码,无需带data:image前缀
    const logoBase64 = "YOUR_LOGO_BASE64_CODE";
    // 自定义邮件HTML内容,cid和后续附件的cid参数保持一致
    const emailContent = `
      <div style="font-family: sans-serif; max-width: 600px; margin: 0 auto;">
        <img src="cid:company-official-logo" alt="公司Logo" style="width: 120px; margin-bottom: 24px;" />
        <p>您好,您申请了密码重置操作,本次验证码为:<strong>${event.request.codeParameter}</strong></p>
        <p>验证码有效期为15分钟,如非本人操作请忽略本邮件。</p>
      </div>
    `;
    // 配置邮件主题、内容
    event.response.emailSubject = "【你的公司名称】密码重置验证码";
    event.response.emailMessage = emailContent;
    // 配置内嵌图片附件
    event.response.emailAttachments = [
      {
        filename: "company-logo.png",
        content: logoBase64,
        encoding: "base64",
        cid: "company-official-logo"
      }
    ];
  }
  callback(null, event);
};
  • 步骤4:配置Lambda权限
    为Lambda的执行角色添加cognito-idp.amazonaws.com的调用权限,避免触发器调用失败。

备选轻量方案(无需添加附件)

如果不需要兼容特别老旧的邮件客户端,可以直接把Base64编码写入img标签的src属性,不用配置附件,实现更简单:

<img src="data:image/png;base64,你的完整Logo Base64编码" alt="公司Logo" style="width:120px;"/>

注意事项

  • 测试时触发忘记密码流程后,优先用主流邮箱客户端测试显示效果,部分邮箱会默认拦截非白名单发件人的内嵌图片,可引导用户将你的发件邮箱添加到通讯录白名单
  • 邮件整体大小不要超过1MB,避免被邮件服务商拦截
  • 如果需要适配其他Cognito邮件场景(比如用户注册验证),只需新增对应triggerSource的判断分支即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:09:03