質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

3677閲覧

AWSのSESでメールを送信したい

Sfidante

総合スコア90

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2015/07/15 05:28

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が設定できるようにしているつもりです。

他に記載すべき情報がある場合にはおっしゃってください。

何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

なんとなくですが、AWSではなくJavaの使い方に問題があるような気がします。
アドレス変更、本文変更をしても変わらないとのことですが、記載されたソースではどちらも定数を使っています。
もしソースをそのまま使っているのであれば、コンパイルをしていないなどではないでしょうか。

投稿2015/07/15 08:09

jcs502ulf

総合スコア307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問