Correos electrónicos de AWS SNS OTP
Estoy trabajando en el envío de mensajes OTP para el inicio de sesión del usuario aprovechando Amazon SNS. Puedo enviar un mensaje de texto como se sugiere aquí . También para la notificación por correo electrónico me gustaría utilizar un enfoque similar. Pero parece que para las notificaciones por correo electrónico, se debe crear un tema en SNS y se debe crear un suscriptor para cada ID de correo electrónico registrado en la aplicación.
¿No es posible enviar un correo electrónico a mail-id de forma dinámica como se hace con los mensajes de texto sin crear temas y suscriptores? De lo contrario, sugiera una forma de establecer la identificación de correo electrónico de forma dinámica según el usuario que inició sesión.
Código para mensajes de texto:
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.
}
Respuestas
Correcto.
Amazon SNS normalmente usa un modelo Público / Suscripción para los mensajes.
La única excepción es la capacidad de enviar un mensaje SMS a un destinatario específico.
Si desea enviar un correo electrónico a un solo destinatario, deberá utilizar su propio servidor SMTP o utilizar Amazon Simple Email Service ( Amazon SES ).