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);