Вот код, который вызывает метод 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;
}
}