Я работаю над отправкой сообщений OTP для входа пользователя с использованием Amazon SNS. Я могу отправить текстовое сообщение с предложением здесь. Для уведомления по электронной почте я также хотел бы использовать аналогичный подход. Но похоже, что для уведомлений по электронной почте необходимо создать тему в SNS и создать подписчика для каждого идентификатора электронной почты, зарегистрированного в приложении.
Разве нельзя динамически отправлять электронную почту на почтовый идентификатор, как это делается для текстовых сообщений, без создания тем и подписчиков? Если нет, предложите способ динамической установки идентификатора электронной почты на основе пользователя, вошедшего в систему.
Код для обмена текстовыми сообщениями:
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.
}
Правильный.
Amazon SNS обычно использует для сообщений модель Public/Subscribe.
Единственным исключением является возможность отправки SMS-сообщения определенному получателю.
Если вы хотите отправить электронное письмо одному получателю, вам потребуется использовать собственный SMTP-сервер или Amazon Simple Email Service (Amazon SES).