C# Outlook Exchange帐户仅发送5封邮件
我在控制台应用程序Visual Studio 2012中使用以下代码发送消息。 由于某些原因,当我从exchange server帐户发送邮件时,在运行应用程序时一次只能发送5封邮件 但是,如果我使用免费的C# Outlook Exchange帐户仅发送5封邮件,c#,exchange-server,outlook-2010,C#,Exchange Server,Outlook 2010,我在控制台应用程序Visual Studio 2012中使用以下代码发送消息。 由于某些原因,当我从exchange server帐户发送邮件时,在运行应用程序时一次只能发送5封邮件 但是,如果我使用免费的outlook.comweb帐户发送邮件,那么我可以一次发送所有10封邮件。我不确定这是否是服务器配置问题 代码片段: public static void SendMail(string recipientEmail, string subject, string body) { u
outlook.com
web帐户发送邮件,那么我可以一次发送所有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"/>
在应用程序配置文件中:
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"/>
您是否尝试在一个循环中发送10条消息?或者你想一次发送给10个收件人?这听起来像是一个利率限制,当您使用公司交易所或免费Outlook.com帐户时,您将收到该限制
我将使用专为更高吞吐量而设计的SMTP服务(如Rackspace Mailgun())对此进行测试。你可以免费发送10000条信息。我把它用于我所有的联系方式以及通知、时事通讯等。它的可交付性也更好。我将注册并交换SMTP凭据。我试图一次发送给10个收件人,但发送到单个电子邮件地址。数据在一个表中,所以我通过用户ID循环并发送到每个用户的电子邮件地址。当我使用一个免费的网络帐户时,它就起作用了。但是,该信息是保密的,我必须使用内部交换帐户。我只是想在和IT人员交谈之前把事情弄清楚。这可能只是在消息之间等待一段合适的时间。以下是限制在Exchange 2013()上的工作方式。您知道exchange的版本吗?是否通过上面的代码引发异常?你能告诉我们消息吗?没有抛出异常,我可以发送100条消息,但不能同时发送所有消息。没有例外。有没有办法让我以增量发送?