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

 

Java

Posted by arkgame