AWS SNS OTP 电子邮件

AWS SNS OTP emails

我正在为利用 Amazon SNS 的用户登录发送 OTP 消息。我可以按照提示 here 发送短信。对于电子邮件通知,我也想使用类似的方法。但是看起来对于电子邮件通知,必须在 SNS 中创建一个主题,并且必须为应用程序中注册的每个电子邮件 ID 创建一个订阅者。

是否可以在不创建主题和订阅者的情况下像发送短信一样动态地向 mail-id 发送电子邮件?如果不是,请建议一种根据登录用户动态设置电子邮件 ID 的方法。

短信代码:

 public static void main(String[] args) {
    AmazonSNSClient snsClient = new AmazonSNSClient();
    String message = "My SMS message";
    String phoneNumber = "+1XXX5550100";
    Map<String, MessageAttributeValue> smsAttributes = 
            new HashMap<String, MessageAttributeValue>();
    //<set SMS attributes>
    sendSMSMessage(snsClient, message, phoneNumber, smsAttributes);
 }
 public static void sendSMSMessage(AmazonSNSClient snsClient, String message, 
    String phoneNumber, Map<String, MessageAttributeValue> smsAttributes) {
    PublishResult result = snsClient.publish(new PublishRequest()
                    .withMessage(message)
                    .withPhoneNumber(phoneNumber)
                    .withMessageAttributes(smsAttributes));
    System.out.println(result); // Prints the message ID.
 }

正确。

Amazon SNS 通常使用 Public/Subscribe 消息模型。

一个例外是向特定收件人发送 SMS 消息的能力。

如果您希望向单个收件人发送电子邮件,您将需要使用您自己的 SMTP 服务器,或使用 Amazon Simple Email Service (Amazon SES).