SMTP отправки электронной почты проблема в цикле C # - PullRequest
0 голосов
/ 17 мая 2018

Я хочу отправить электронную почту на несколько адресов электронной почты с помощью цикла For, но только первое письмо будет отправлено правильно, но во второй раз я получаю сообщение об ошибке «не удалось отправить письмо» Может ли кто-нибудь, пожалуйста, помогите мне в том же

ниже мой код

        DataSet dsAllocateUser = new DataSet();
        dsAllocateUser = ICA_Get_EmailDatafor_User(UserId, AssignedTo, BatchID, sConnectionString);
        for (int i = 0; i < dsAllocateUser.Tables[0].Rows.Count; i++)
        {

            string Body;
            MailMessage mailToSend = new MailMessage();
            System.Text.StringBuilder sb = new StringBuilder();
            string messagetext = Message;
            SmtpClient smtpMesg = new SmtpClient(ConfigurationSettings.AppSettings["SmtpServer"].ToString());
            mailToSend.From = new MailAddress(" abc.notifications@gebbs.com", " abc.notifications@gebbs.com");
            mailToSend.To.Add(new MailAddress(dsAllocateUser.Tables[0].Rows[i]["EMailID"].ToString()));

            mailToSend.IsBodyHtml = true;
            mailToSend.Body = sb.ToString();
            mailToSend.Subject = "Action Required";
            smtpMesg.UseDefaultCredentials = false;
            smtpMesg.Port = 25;
            smtpMesg.Host = "smtp.emailsrvr.com";
            smtpMesg.Credentials = new System.Net.NetworkCredential("abc.notifications@gebbs.com", "psaaword");
            smtpMesg.Send(mailToSend);
        }

1 Ответ

0 голосов
/ 17 мая 2018

Это то, как вы должны отправлять несколько электронных писем, обязательно используйте smtpMesg.Close () после отправки каждого электронного письма.

private List<String> Get_Messages()
{
    List<String> list = new List<string>();
    list.Add("Hello");
    list.Add("Hello 2");

    return list;

}

private void SendEmail()
{

    foreach (String messages in Get_Messages())
    {
        //prepare email. 
        String subject = "test email message";

        String emailFrom = "emailFrom@email.com"
        MailMessage objeto_mail = new MailMessage();
        SmtpClient client = new SmtpClient();

        client.Port = 25;
        client.Host = "yourhost.com";
        client.UseDefaultCredentials = false;
        client.Credentials = new System.Net.NetworkCredential("username", "password");


        client.Timeout = 10000;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        objeto_mail.From = new MailAddress(emailFrom);

        objeto_mail.To.Add(new MailAddress("emailto@emailto.com"));

        objeto_mail.IsBodyHtml = true;
        objeto_mail.Subject = subject;
        objeto_mail.Body = messages;
        client.Send(objeto_mail);
        client.Dispose();
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...