2014-01-17 131 views
2

我在控制檯應用程序Visual Studio 2012中使用以下代碼發送郵件。 由於某些原因,當我從Exchange服務器帳戶發送郵件時,一次只能發送5封郵件應用。Outlook Exchange帳戶僅發送5封郵件

但是,如果我從免費outlook.com網絡帳戶發送,那麼我可以一次發送全部10條消息。我不確定這是否是服務器配置問題。

代碼段:

public static void SendMail(string recipientEmail, string subject, string body) 
{ 
    using (MailMessage mailMessage = new MailMessage()) 
    { 
     try 
     { 
      mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["MailFrom"]); 
      mailMessage.Subject = subject; 
      mailMessage.Body = body; 
      mailMessage.IsBodyHtml = true; 
      mailMessage.To.Add(new MailAddress(recipientEmail)); 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = ConfigurationManager.AppSettings["MailHost"]; 
      smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["MailEnableSsl"]); 
      System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); 
      NetworkCred.UserName = ConfigurationManager.AppSettings["MailUserName"]; 
      NetworkCred.Password = ConfigurationManager.AppSettings["MailPassword"]; 
      smtp.UseDefaultCredentials = true; 
      smtp.Credentials = NetworkCred; 
      smtp.Port = int.Parse(ConfigurationManager.AppSettings["MailPort"]); 
      smtp.Send(mailMessage); 
     } 

     catch (MailException ex) 
     { 
      throw ex; 
     } 

     catch (Exception ex) 
     { 
      throw new MailException("Email sending failed", ex); 
     } 
    } 
} 

在應用程序配置文件:

<add key="MailHost" value="Mail.myMail.com"/> 
<add key="MailEnableSsl" value="true"/> 
<add key="MailFrom" value="myEmailAddress"/> 
<add key="MailUserName" value="MyUserName"/> 
<add key="MailPassword" value="MyPassword"/> 
<add key="MailPort" value="587"/> 

<add key="MailTemplatePath" value="X:\MyFolder\email.html"/> 
<add key="MailSubject" value="MyEmail Subject"/> 

回答

1

你們是不是要在一個循環發送10條消息?還是你想一次發送給10個收件人?這聽起來像是一個速率限制,您將在使用公司Exchange或免費的Outlook.com帳戶時收到此限制。

我會使用專爲更高吞吐量設計的SMTP服務來測試此功能,例如Rackspace Mailgun(http://www.mailgun.com/)。您可以免費發送10,000封郵件。我將它用於我的所有聯繫表格以及通知,新聞簡報等等。交付能力也更好。我會註冊並換出SMTP憑證。

+0

我試圖一次發送給10個收件人,但是發送給個人電子郵件地址。數據位於表格中,因此我循環使用用戶ID併發送到每個用戶的電子郵件地址。它在我使用免費的網絡帳戶時有效。但是,該信息是保密的,我必須使用House內部交換賬戶。在與IT人員交談之前,我只是想把事情搞砸。 – Asynchronous

+0

這可能只是在消息之間等待一段合適的時間。以下是Exchange 2013中的限制工作方式(http://technet.microsoft.com/zh-cn/library/bb232205(v=exchg.150).aspx)。你知道交換的版本嗎?你是否通過上面的代碼得到異常?你能讓我們知道這個消息嗎? – Aaron

+0

沒有拋出異常,我可以發送100條消息,但是我不能同時發送它們。沒有例外。有沒有辦法讓我以增量發送? – Asynchronous

相關問題