webアプリを開発しており、
その中で、AWSのSESを用いて
メールを送信できるプログラムを書いております。
現状、メール自体は送れるようにはなっていますが、
最初に送ったメールアドレス以外に送れないようになってしまっています。
アドレスを変更したらその人に送れるようなコードを書きたいと思っています。
そのコードを下記に示します。
lang
1package mail; 2 3import java.util.ArrayList; 4 5import com.amazonaws.auth.AWSCredentials; 6import com.amazonaws.auth.BasicAWSCredentials; 7import com.amazonaws.regions.Region; 8import com.amazonaws.regions.Regions; 9import com.amazonaws.services.simpleemail.AmazonSimpleEmailServiceClient; 10import com.amazonaws.services.simpleemail.model.Body; 11import com.amazonaws.services.simpleemail.model.Content; 12import com.amazonaws.services.simpleemail.model.Destination; 13import com.amazonaws.services.simpleemail.model.Message; 14import com.amazonaws.services.simpleemail.model.SendEmailRequest; 15import com.amazonaws.services.simpleemail.model.SendEmailResult; 16import com.amazonaws.services.simpleemail.model.VerifyEmailAddressRequest; 17 18public class MailSample { 19 20 public static final String SOURCE_ADDRESS = "このアドレスから送信"; 21 22 public static final String TO_ADDRESS = "このアドレスに送りたいです"; 23 24 public static void main(String[] args) { 25 26 //Security Credentialの設定 27 AWSCredentials credentials = new BasicAWSCredentials("アクセスキー","シークレットキー"); 28 29 //AmazonSimpleEmailService 操作用のオブジェクト作成 30 AmazonSimpleEmailServiceClient client = new AmazonSimpleEmailServiceClient(credentials); 31 32 //リージョンを設定 33 client.setRegion(Region.getRegion(Regions.US_EAST_1)); 34 35 //メール送信用リクエスト 36 SendEmailRequest request = new SendEmailRequest(); 37 38 //宛先格納用のCollection 39 ArrayList<String> toAddresses = new ArrayList<String>(); 40 41 //宛先メールアドレスを追加 42 toAddresses.add(TO_ADDRESS); 43 44 //宛先メールアドレスをリクエストに設定 45 Destination destination = new Destination(); 46 destination.setToAddresses(toAddresses); 47 request.setDestination(destination); 48 49 //送信元メールアドレスをリクエストに設定 50 request.setSource(SOURCE_ADDRESS); 51 52 //リクエストに認証情報を設定→無くても動いた 53 request.setRequestCredentials(credentials); 54 55 //返信先メールアドレスを設定 56 request.setReturnPath(SOURCE_ADDRESS); 57 58 //メールの内容を作成 59 Message message = createMessage("件名","本文"); 60 61 //メールの内容をリクエストに設定 62 request.setMessage(message); 63 64 //メール送信処理 65 SendEmailResult result = client.sendEmail(request); 66 67 //送信結果をコンソールに表示 68 System.out.println(result); 69 70 } 71 72 /** 73 * メッセージ作成用のメソッド 74 * 75 * @param subject 件名 76 * @param body 本文 77 * @return メッセージ用オブジェクト 78 */ 79 public static Message createMessage(String subject,String body) { 80 81 //メッセージ本文のオブジェクト 82 Message message = new Message(); 83 84 //件名と本文を設定 85 message.setSubject(new Content(subject)); 86 message.setBody(new Body(new Content(body))); 87 88 return message; 89 } 90 91 /** 92 * メールアドレス検証用メソッド 93 * 94 * @param client SES操作用クライアント 95 * @param mailAddress 検証メールアドレス 96 */ 97 public static void verifyEmailAddress(AmazonSimpleEmailServiceClient client,String mailAddress) { 98 99 VerifyEmailAddressRequest verify = new VerifyEmailAddressRequest(); 100 verify.setEmailAddress(SOURCE_ADDRESS); 101 102 client.verifyEmailAddress(verify); 103 } 104}
同じアドレスに対して違う本文を送ってもその前の文章と同じ文章しか送れない状況です。
SESでの設定に関しては、ポリシードキュメントは下記のようにしています。
lang
1{ 2 "Version": "2012-10-17", 3 "Statement": [ 4 { 5 "Effect": "Allow", 6 "Action": [ 7 "ses:SendEmail", 8 "ses:SendRawEmail" 9 ], 10 "Resource": "*" 11 } 12 ] 13}
Verified Sender: Emailはその他のアドレスも設定しています。
また、上記のコードでVerified Sender: Emailが設定できるようにしているつもりです。
他に記載すべき情報がある場合にはおっしゃってください。
何卒よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。