AWS SNS OTP-E-Mails

Dec 24 2020

Ich arbeite daran, OTP-Nachrichten für die Benutzeranmeldung mithilfe von Amazon SNS zu senden. Ich kann eine Textnachricht senden, wie hier vorgeschlagen . Auch für die E-Mail-Benachrichtigung möchte ich einen ähnlichen Ansatz verwenden. Es sieht jedoch so aus, als ob für E-Mail-Benachrichtigungen ein Thema in SNS erstellt und ein Abonnent für jede in der Anwendung registrierte E-Mail-ID erstellt werden muss.

Ist es nicht möglich, E-Mails wie bei Textnachrichten dynamisch an die Mail-ID zu senden, ohne Themen und Abonnenten zu erstellen? Wenn nicht, schlagen Sie bitte eine Möglichkeit vor, die E-Mail-ID basierend auf dem angemeldeten Benutzer dynamisch festzulegen.

Code für Textnachrichten:

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

Antworten

2 JohnRotenstein Dec 24 2020 at 17:26

Richtig.

Amazon SNS verwendet normalerweise ein Public / Subscribe-Modell für Nachrichten.

Die einzige Ausnahme ist die Möglichkeit, eine SMS-Nachricht an einen bestimmten Empfänger zu senden.

Wenn Sie eine E-Mail an einen einzelnen Empfänger senden möchten, müssen Sie Ihren eigenen SMTP-Server oder den Amazon Simple Email Service ( Amazon SES ) verwenden.