前提・実現したいこと
いつもお世話になっております。
実現したいこと
Spring Bootのstarter-mailを使って複数人に同じ内容のメールを1通のみ送信したい
メールは送信されますが、メソッドが2回繰り返されてしまい、二重にメールが
送信されてしまいます。
2回送信される原因が分かりません。
発生している問題・エラーメッセージ
メールが二重送信されてしまう
該当のソースコード
MailController
Java
1package jp.co.itc.mbo.controller; 2 3import java.util.List; 4 5import org.springframework.beans.factory.annotation.Autowired; 6import org.springframework.mail.SimpleMailMessage; 7import org.springframework.mail.javamail.JavaMailSender; 8import org.springframework.stereotype.Controller; 9import org.springframework.web.bind.annotation.RequestMapping; 10import org.springframework.web.bind.annotation.RequestMethod; 11 12import jp.co.itc.mbo.entity.UserMaster; 13import jp.co.itc.mbo.service.UserMasterService; 14 15@Controller 16@RequestMapping("/mailer") 17public class MailController { 18 19 @Autowired 20 UserMasterService usermasterservice; 21 22 final String charset = "UTF-8"; 23 private final JavaMailSender javaMailSender ; 24 25 @Autowired 26 MailController(JavaMailSender javaMailSender) { 27 this.javaMailSender = javaMailSender; 28 } 29 30 @RequestMapping(value = "/send", method = RequestMethod.GET) 31 public String send(){ 32 List <UserMaster> users=usermasterservice.findAllValidUserId(); 33 //ここから↓が二週目にはいってループ 34 int cnt=users.size(); 35 String[] mailList= new String[cnt]; 36 37 int i=0; 38 for(UserMaster user:users) { 39 String mailaddress=user.getMailaddress(); 40 mailList[i]=mailaddress; 41 i++; 42 } 43 44 SimpleMailMessage msg = new SimpleMailMessage(); 45 46 msg.setFrom(“送信元"); 47 msg.setTo(mailList); 48 msg.setSubject("テストメール");//タイトルの設定 49 msg.setText("Spring Boot より本文送信"); //本文の設定 50 51 javaMailSender.send(msg); 52 53 //一周目でreturnが処理されず int cnt=users.size();に戻ってしまう 54 //二週目でreturmが処理されメールが2通送信される 55 56 return "redirect:/home"; 57 } 58 59} 60 61
試したこと
・デバックをしたところ、for文を書いていない部分が2回回っていました(詳しくはコメントアウトに記載)
・msg.setTo(mailList);の()の中に1つのメールアドレスを直に打つと1回送信されます。
・mailListの中身を2つにすると1回送信、3つ以上だと2回送信されます。
どうやら配列型で送信しようとするとおかしくなるみたいです(?)
補足情報(FW/ツールのバージョンなど)
MailControllerのみでしかメールに関係する操作をしていないので1つしかクラスを載せていませんが、SpringMVCで関連するクラスがほかにありましたらご教授いただきたいです。
初心者で至らない点が多いと思いますがよろしくお願いします。
とりあえずコンパイルエラーだからそのコードじゃないのでは?
回答1件
あなたの回答
tips
プレビュー