Электронные письма AWS SNS OTP

Dec 24 2020

Я работаю над отправкой OTP-сообщений для входа пользователя в систему с помощью Amazon SNS. Я могу отправить текстовое сообщение, как предлагаю здесь . Для уведомления по электронной почте я хотел бы использовать аналогичный подход. Но похоже, что для уведомлений по электронной почте необходимо создать тему в SNS и создать подписчика для каждого идентификатора электронной почты, зарегистрированного в приложении.

Разве невозможно динамически отправлять электронную почту на mail-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.
 }

Ответы

2 JohnRotenstein Dec 24 2020 at 17:26

Верный.

Amazon SNS обычно использует для сообщений модель «Публикация / подписка».

Единственное исключение - возможность отправить SMS-сообщение определенному получателю.

Если вы хотите отправить электронное письмо одному получателю, вам потребуется использовать собственный SMTP-сервер или Amazon Simple Email Service ( Amazon SES ).