我有一個小的控制檯應用程序。它會檢查幾個設置,做出一些決定併發送一封電子郵件。問題是電子郵件實際上並沒有發送,直到我的應用程序完成。我想在發送電子郵件的方法完成後馬上發送電子郵件。從我的應用程序發送電子郵件時,如何避免延遲?
最初,我創建了一個MailMessage並調用了.Send()。那是當我注意到郵件沒有被髮送,直到應用程序完成。
然後我嘗試使用任務並行庫。
var taskA = Task.Factory.StartNew(() => msg.Send());
此外,直到我的整個應用程序完成後纔會發送消息。
如何在msg.send執行時發送電子郵件,而不是在應用程序完成時發送郵件?
謝謝!
如何一定是你,這是沒有得到發送,直到應用程序關閉? Send()是一種同步方法。這可能是Smtp服務器延遲。 –
@Kevin - 我在完成發送的方法之後等待。 SMTPClient.Send()已經執行,我進入另一種方法。我等了15分鐘以上,我的收件箱中沒有任何內容出現。只要我點擊F5,消息就會顯示在應用完成的一兩秒內。如果我不等(只讓應用程序運行w/o斷點),則消息會在一兩秒鐘內出現。 – DenaliHardtail
您的SMTP服務器是本地機器還是其他機器上? –