2015-02-06 49 views
1

我在我的應用程序中使用Smtp客戶端發送郵件,發送郵件的速度非常慢。 我的代碼是:如何提高發送郵件的速度?

var smtp = _settingsService.GetSettings().SMTP; 
var smtpUsername = _settingsService.GetSettings().SMTPUsername; 
var smtpPassword = _settingsService.GetSettings().SMTPPassword; 
var smtpPort = _settingsService.GetSettings().SMTPPort; 
var smtpEnableSsl = _settingsService.GetSettings().SMTPEnableSSL; 

if (string.IsNullOrEmpty(smtp)) 
{ 
    return; 
} 
else 
{ 
    var mySmtpClient = new System.Net.Mail.SmtpClient(smtp); 
    if (!string.IsNullOrEmpty(smtpUsername) && !string.IsNullOrEmpty(smtpPassword)) 
    { 
     mySmtpClient.Credentials = new NetworkCredential(smtpUsername, smtpPassword); 
    } 

    if (smtpEnableSsl != null) 
    { 
     mySmtpClient.EnableSsl = (bool)smtpEnableSsl; 
    } 

    if (!string.IsNullOrEmpty(smtpPort)) 
    { 
     mySmtpClient.Port = Convert.ToInt32(smtpPort); 
    } 


     if (defaultEmail != null) 
     { 
      var msg = new MailMessage 
      { 
       IsBodyHtml = true, 
       Body = defaultEmail.Body, 
       From = new MailAddress(defaultEmail.EmailFrom), 
       Subject = defaultEmail.Subject 
      }; 
      msg.To.Add(defaultEmail.EmailTo); 
      mySmtpClient.Send(msg); 
} 

我想知道,什麼是最快的速度最好的方法發送郵件或如何提高發送郵件的速度?

+0

向郵件服務器添加更多內存 – 2015-02-06 10:27:30

+0

我見過我的web提供者的smtp服務器( discountasp)和hotmail(smtp.live.com)。看來hotmail增加了+ - 通過smtp發送電子郵件時延遲了10秒,只是爲了防止使用它發送垃圾郵件。請記住,Hotmail在創建Hotmail帳戶時沒有進行大量驗證(例如,沒有請求電話號碼),所以很多垃圾郵件發送者在匿名時使用它。 – Ben 2017-02-27 13:33:42

回答

1

這是非常基本的代碼,它可能只是因爲I/O(網絡,smtp服務器本身)而變慢。你可以做的唯一的事情就是在你的應用程序中使用異步和/或並行處理

+0

我知道這只是因爲郵件服務器的設置很慢,但我只有Gmail,因爲它使用SSL協議很慢,現在我想讓你建議另一個郵件服務器來提高我的速度 – 2015-02-06 13:54:08

+0

如果問題出在郵件服務器本身,這不是要問的恰當的Q/A網站。嘗試在http://superuser.com/或http://serverfault.com/上詢問 – DixonD 2015-02-06 14:48:21