Member 14784148 Ответов: 2

Невозможно отправить электронное письмо нескольким получателям


Привет.Я не могу отправить электронное письмо нескольким получателям. Я попытался поставить запятую для 1-го письма, но оно не будет отправлено на него. например abc@yahoo.com, abc2@yahoo.com
abc2@yahoo.com на электронный адрес придет письмо, но abc@yahoo.com не в состоянии получить. Кто-нибудь, пожалуйста, помогите мне

Ниже приведен мой код

Что я уже пробовал:

protected void btnUpload_Click(object sender, EventArgs e)
   {
       string Pino = Txtbx_PINo.Text;
       string Bookingno = Txtbx_BookingNo.Text;
       string Email = Txtbx_Email.Text;


       if (Txtbx_Email.Text == null || Txtbx_Email.Text == string.Empty)
       {
           Lbl_Message.Text = "Error. Please Insert Email.";
       }
       else
       {
           string FromName = "BS UPLOAD";
           string FromEmail = "123@gmail.com";
           string UserEmail = Email;
           string UserName = "Username123";
           string Subject = "SHIPPING ADVISE - ";

           System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
           smtp.Host = "smtp.gmail.com";
           smtp.Credentials = new System.Net.NetworkCredential("123@gmail.com", "password");
           smtp.EnableSsl = true;
           System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
           msg.From = new System.Net.Mail.MailAddress(FromEmail, FromName);
           msg.To.Add(new System.Net.Mail.MailAddress(UserEmail, UserName));
           msg.IsBodyHtml = true;
           msg.Subject = Subject;
           msg.Body = msg.Body + "Good Day." + "<br><br>";
           msg.Body = msg.Body + "Please find below shipping advise: " + "<br><br>";
           msg.Body = msg.Body + "Thank you." + "<br><br>";
           msg.Body = msg.Body + "Note : Please do not reply this email because it is generated by computer system.";

           try
           {
               smtp.Send(msg);
           }
           catch (FormatException ex)
           {
               Lbl_Message.Text = ("Format Exception: " + ex.Message);
           }
           catch (SmtpException ex)
           {
               Lbl_Message.Text = ("SMTP Exception:  " + ex.Message);
           }
           catch (Exception ex)
           {
               Lbl_Message.Text = ("General Exception:  " + ex.Message);
           }

           Lbl_Message.Text = "Info : This BS is sent to registered user via email.";

       }
   }

Richard Deeming

"Этот BS отправляется зарегистрированному пользователю по электронной почте"

Если это не стандартная аббревиатура в области бизнеса вашего клиента, я предлагаю вам посмотреть, что обычно означает "BS", прежде чем показывать это сообщение своему клиенту. 🤣

Member 14784148

ха-ха-ха "БС" расшифровывается как квитанция о бронировании

2 Ответов

Рейтинг:
2

OriginalGriff

Обычно я бы адресовал почту на адрес электронной почты "noreply" в моем домене и прикреплял всех подлинных получателей в качестве адресатов BCC, а не пытался добавить их в качестве адресов "To". Таким образом, каждый получатель не получает список адресов электронной почты каждого другого клиента, что является явным нарушением защиты данных / GDPR и может привести к крупному штрафу вашей компании.


Member 14784148

строка[] мульти = ToEmail.Сплит(','); //spiliting входной электронный идентификатор строки с разделителями(,)
по каждому элементу (строка Multiemailid в мульти)
{
msg.To.Add(new MailAddress(Multiemailid)); //добавление идентификатора электронной почты мультиприемника
}

Это работает для меня, кстати, спасибо за идею :)

OriginalGriff

Это довольно плохая идея, если только вы не держите все эти электронные письма внутри компании. Если это адреса электронной почты частных лиц, то это большое нарушение GDPR, а это означает большие штрафы.

Рейтинг:
1

MadMyche

То MailMessage.To свойство не является строковым значением; на самом деле это коллекция адресов электронной почты
Чтобы добавить к этой коллекции; как правило, вы использовали бы Add() метод, точно так же, как вы сделали для первого получателя.

msg.To.Add(new System.Net.Mail.MailAddress(Email1, Name1));
msg.To.Add(new System.Net.Mail.MailAddress(Email2, Name2));
Ссылка:
МС документы: почтовый адрес конструктора (системы.Нет.Почта)[^]


Member 14784148

строка[] мульти = ToEmail.Сплит(','); //spiliting входной электронный идентификатор строки с разделителями(,)
по каждому элементу (строка Multiemailid в мульти)
{
msg.To.Add(new MailAddress(Multiemailid)); //добавление идентификатора электронной почты мультиприемника
}

Это работает для меня, кстати, спасибо за идею :)