2017-06-21 20 views
-1

割り当てられたユーザーに電子メール通知を送信してプロジェクトを進めています。電子メール通知がうまく機能し、割り当てられたユーザーに送信されました。しかし、問題は、送信された電子メールが重複した名前を示すことですsee screenshot。送信された電子メールは重複していません。重複した名前のみです。送信された電子メール通知に重複した受信者名が表示されるasp.net mvc

これを解決するお手伝いをしてもらえますか? ありがとうございます。

//Send Email Notification to Assigned Users 
    public void SendEmail(Guid[] UsersID, string place, 
              int? hn, 
              int? age, 
              string gender, 
              string persons_involved, 
              string patientName_incident, 
              string narrative_report, 
              DateTime? created_date, 
              Guid IRID) 
    { 
     var Host = ConfigurationManager.AppSettings["smtpclient"].ToString(); 
     var FromEmailID = ConfigurationManager.AppSettings["FromEmail"].ToString(); 
     var port = ConfigurationManager.AppSettings["port"].ToString(); 
     var username = ConfigurationManager.AppSettings["username"].ToString(); 
     var password = ConfigurationManager.AppSettings["password"].ToString(); 

     var incident_name = (from i in db.All_Issues 
          select i.PatientName_Incident); 

     MailMessage mail = new MailMessage(); 
     mail.From = new MailAddress(FromEmailID); 
     mail.Subject = "Incident Report 2017 - Incident Name: " + patientName_incident + " has been assigned to you."; 
     mail.Body = EmailMessage(place, 
           hn, 
           age, 
           gender, 
           persons_involved, 
           patientName_incident, 
           narrative_report, 
           created_date, 
           IRID); 

     mail.IsBodyHtml = true; 
     mail.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8"); 

     SmtpClient smtpclient = new SmtpClient(); 
     smtpclient.Host = Host; 
     smtpclient.Port = Convert.ToInt32(port); 
     smtpclient.Credentials = new System.Net.NetworkCredential(username, password); 

     List<users_ref> users = db.users_ref.ToList(); 
     if (UsersID != null) 
     { 
      foreach (var Users in UsersID) 
      { 
       foreach (var user in UsersID) 
       { 
        foreach (var usersList in users) 
        { 
         if (Users == usersList.UsersID) 
         { 
          mail.To.Add(usersList.Email); 
         } 
        } 
       } 
      } 

      try 
      { 
       smtpclient.Send(mail); 
      } 
      catch (InvalidOperationException ex) 
      { 
       ModelState.AddModelError("", ex); 
      } 
     } 
    } 
+0

'smtpclient.Send(mail);の前にチェック' mail.To'リストの件数はいくらですか? – User3250

答えて

0

あなたがUsersIdのために2回ループしていることを確認してください。私はあなたが2つの名前を得ている理由だと思う。

0

すでに問題を解決しました。あなたたちは正しい、問題は私のルーピングにある。これは修正されました。

List<users_ref> users = db.users_ref.ToList(); 
     if (UsersID != null) 
     { 
      foreach (var Users in UsersID) 
      { 
        foreach (var usersList in users) 
        { 
         if (Users == usersList.UsersID) 
         { 
          mail.To.Add(usersList.Email); 
         } 
        } 
      } 

      try 
      { 
       smtpclient.Send(mail); 
      } 

回答ありがとうございます。

関連する問題