2
以下是調用sendmail
方法的代碼。問題是隻有第一次撥打sendmail
纔會將郵件發送給接收方。第二次調用sendmail
時,它會完美執行,但不會傳送任何郵件。如果我將應用程序置於調試模式,然後逐步執行,則這兩封郵件都可以發送。看起來程序的執行速度非常快,出現了問題。因此,我在發送功能下面延遲了一段時間,所以它開始爲我工作,但我認爲這不是一個完美的解決方案。任何人都知道這裏發生了什麼。SMTP郵件不發送第二個電話
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;
}
}
也許有些防洪地方低水平。調用你的方法一次,併發送'MessageTo'數組而不是一個,它將工作。 –
感謝shadow,但內容對於這兩個郵件都是不同的,因爲您可以在sendmail調用中看到它,它對於AdminMessageText和OwnerMessageText不同。如果我想發送2個用戶,那麼我可以使用CC,但那不是這種情況。你認爲防洪是什麼意思? – Chief
被黑客入侵的服務器發送成千上萬封垃圾郵件。一種方法可以解決這個問題,不允許一個接一個地發送郵件。所以這很可能是這樣的安全措施。查看服務器事件日誌以驗證它。無論如何,睡幾秒是不錯的做法,假設防洪水平較低並且不能停用,IMO不會想到更好的辦法。 –