E-maile AWS SNS OTP

Dec 24 2020

Pracuję nad wysyłaniem wiadomości OTP do logowania użytkowników przy użyciu Amazon SNS. Jestem w stanie wysłać wiadomość tekstową, jak sugeruję tutaj . Również w przypadku powiadomień e-mail chciałbym zastosować podobne podejście. Ale wygląda na to, że w przypadku powiadomień e-mailowych należy utworzyć temat w SNS i utworzyć subskrybenta dla każdego identyfikatora e-mail zarejestrowanego w aplikacji.

Czy nie jest możliwe dynamiczne wysyłanie wiadomości e-mail na adres mail-id, jak w przypadku wiadomości tekstowych bez tworzenia tematów i subskrybentów? Jeśli nie, zasugeruj sposób dynamicznego ustawiania identyfikatora e-mail na podstawie zalogowanego użytkownika.

Kod do wiadomości tekstowych:

 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.
 }

Odpowiedzi

2 JohnRotenstein Dec 24 2020 at 17:26

Poprawny.

Amazon SNS zwykle używa modelu publicznego / subskrypcji dla wiadomości.

Jedynym wyjątkiem jest możliwość wysłania wiadomości SMS do określonego odbiorcy.

Jeśli chcesz wysłać wiadomość e-mail do jednego odbiorcy, musisz użyć własnego serwera SMTP lub skorzystać z usługi Amazon Simple Email Service ( Amazon SES ).