Cognito 使用自定义电子邮件发送确认电子邮件

Luc*_*uca 2 amazon-web-services amazon-sns amazon-cognito

除了 Cognito 用户池的“消息自定义”选项卡中指定的电子邮件之外,还有其他方法可以发送电子邮件吗?我想根据某些参数使用不同的电子邮件。

例如

verify@my-service.com 用于验证电子邮件

欢迎电子邮件welcome@my-service.com

小智 6

您可以转到 Cognito 中的常规设置,然后单击触发器。您可以在此处选择“确认后 lambda 函数”(此示例在节点中)来发送电子邮件。在 lambda 函数中,您可以将主题设为您喜欢的任何内容,并从电子邮件地址进行更改。

var aws = require('aws-sdk');
var ses = new aws.SES();

exports.handler = function(event, context) {
  console.log(event);

  if (event.request.userAttributes.email) {
    // Pull another attribute if you want
    sendEmail(event.request.userAttributes.email, 
      "Congratulations "+event.userName+", you have been registered!"
      , function(status) {
         context.done(null, event);
      });
    } else {
      // Nothing to do, the user's email ID is unknown
      console.log("Failed");
      context.done(null, event);
    }
  };

  function sendEmail(to, body, completedCallback) {
    var eParams = {
      Destination: {
        ToAddresses: [to]
      },
      Message: {
        Body: {
          Text: {
            Data: body
          }
        },
        Subject: {
          Data: "Welcome to My Service!"
        }
      },
      Source: "welcome@my-service.com"
    };

    var email = ses.sendEmail(eParams, function(err, data){
      if (err) {
        console.log(err);
      } else {
        console.log("===EMAIL SENT===");
      }

      completedCallback('Email sent');
    });

    console.log("EMAIL CODE END");
  };
Run Code Online (Sandbox Code Playgroud)

您还必须设置 SES。