SMTP Mail не отправляет на второй звонок - PullRequest
2 голосов
/ 06 октября 2011

Вот код, который вызывает метод sendmail. Проблема в том, что только первый звонок sendmail отправляет почту получателю. Во второй раз, когда вызывается sendmail, он выполняется идеально, но никогда не доставляет почту. Если я переведу приложение в режим отладки, а затем выполню его шаг за шагом, обе письма будут доставлены. Казалось, что скорость выполнения программы настолько высока, что что-то идет не так. Поэтому я сохранил задержку ниже функции отправки, чтобы она стала работать нормально для меня, но я не думаю, что это идеальное решение. Кто-нибудь знает, что здесь происходит.

        if (!String.IsNullOrEmpty(SendMailAdmin))
        {
        SendMail(SendMailFrom, SendMailAdmin, Subject, AdminMessageText + "<br>" + MessageText);
        }
        if (!String.IsNullOrEmpty(SendMailOwner))
        {
        SendMail(SendMailFrom, SendMailOwner, Subject, OwnerMessageText + "<br>" + MessageText);
        }

     public void SendMail(String MessageFrom, String MessageTo, String MessageSubject, String MessageBody)
            {
                MailMessage Message = new MailMessage();
                Message.Priority = MailPriority.High;
                Message.From = new MailAddress(MessageFrom);
                Message.To.Add(MessageTo);

                Message.Subject = MessageSubject;
                Message.IsBodyHtml = true;
                Message.Body = MessageBody;

                try
                {
                    SmtpClient client = new SmtpClient(SMTPServer, Convert.ToInt32(SMTPPort));

                    client.UseDefaultCredentials = false;
                    client.Credentials = new NetworkCredential("{myusername}", "{mypassword}");

                    client.Send(Message);
System.Threading.Thread.Sleep(3000);

                }
                catch
                {
                    throw;
                }
            }

1 Ответ

1 голос
/ 06 октября 2011

Лично я думаю, что единственная вещь, которая будет работать для вас на данный момент, это код задержки. @ Тень прав, именно так настроены серверы

...