Java InternetAddress型の配列を使って複数の宛先(TO)にメールを送信するサンプル
環境
JavaSE 1.8
Eclipse 4.14.0
構文
1.String型の配列に格納されたメールアドレスをInternetAddressに変換します。
String[] メール配列名 = {"メールアドレス1","メールアドレス2",...}; InternetAddress[] 配列名 =new InternetAddress[メール配列名.length];
2.setRecipients(Message.RecipientType type, Address[] addresses)
指定された受信者タイプを指定されたアドレスに設定します。
パラメーター:
type – 受信者タイプ
addresses – 住所
3.getDefaultInstance(Properties props)
デフォルトの Session オブジェクトを取得します。デフォルトがまだ設定されていない場合、
新しい Session オブジェクトが作成され、デフォルトとしてインストールされます。
使用例
// SMTPホストの設定 Properties prop = new Properties(); prop.put("mail.smtp.host", "ホストのアドレス"); // Sessionオブジェクトの取得 Session session = Session.getDefaultInstance(prop, null); //MimeMessageを使用 MimeMessage msg = new MimeMessage(session); //String型のメールアドレス配列 String[] mailArr = {"aa@gmail.com","bb@gmail.com"}; //InternetAddress型の配列 InternetAddress[] toList =new InternetAddress[mailArr.length]; int i = 0; //InternetAddress型の配列を作成 for(String str : mailArr){ toList[i]=((new InternetAddress(str))); i= i+1; } // 送信元(from)の設定 msg.setFrom(new InternetAddress("send@arkgame.com"); // 送信先(TO)の設定 msg.setRecipients(Message.RecipientType.TO,toList); // 件名の設定 msg.setSubject("テストメールの件名", "utf-8"); // 送信日時 msg.setSentDate(new Date()); // 本文の設定 msg.setText("テストメールの本文", "utf-8","plain"); //送信 Transport.send(msg);