Email AWS SNS OTP

Dec 24 2020

Sto lavorando all'invio di messaggi OTP per l'accesso utente utilizzando Amazon SNS. Sono in grado di inviare un messaggio di testo come suggerito qui . Anche per la notifica e-mail vorrei utilizzare un approccio simile. Ma sembra che per le notifiche e-mail, sia necessario creare un argomento in SNS e creare un abbonato per ogni ID e-mail registrato nell'applicazione.

Non è possibile inviare e-mail a mail-id dinamicamente come si fa per i messaggi di testo senza creare argomenti e iscritti? In caso contrario, suggerire un modo per impostare l'ID e-mail dinamicamente in base all'utente che ha effettuato l'accesso.

Codice per messaggi di testo:

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

Risposte

2 JohnRotenstein Dec 24 2020 at 17:26

Corretta.

Amazon SNS utilizza normalmente un modello Pubblico / Sottoscrivi per i messaggi.

L'unica eccezione è la possibilità di inviare un messaggio SMS a un destinatario specifico.

Se desideri inviare un'e-mail a un singolo destinatario, dovrai utilizzare il tuo server SMTP o utilizzare Amazon Simple Email Service ( Amazon SES ).