AWS SNSOTPメール
AmazonSNSを活用したユーザーログイン用のOTPメッセージの送信に取り組んでいます。ここで提案するようにテキストメッセージを送信することができます。電子メール通知についても、同様のアプローチを使用したいと思います。ただし、電子メール通知の場合と同様に、トピックをSNSで作成し、アプリケーションに登録されている電子メールIDごとにサブスクライバーを作成する必要があります。
トピックとサブスクライバーを作成せずに、テキストメッセージのように動的にmail-idに電子メールを送信することはできませんか?そうでない場合は、ログインしているユーザーに基づいて電子メールIDを動的に設定する方法を提案してください。
テキストメッセージングのコード:
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.
}
回答
2 JohnRotenstein
正しい。
Amazon SNSは通常、メッセージにPublic / Subscribeモデルを使用します。
唯一の例外は、特定の受信者にSMSメッセージを送信する機能です。
1人の受信者にメールを送信する場合は、独自のSMTPサーバーを使用するか、Amazon Simple Email Service(Amazon SES)を使用する必要があります。