所以我在webmatrix中建立了一个应用程序,我构建了一个发送电子邮件的功能。如果我像5或6个目的地一样,一切都很好,但有时我需要发送到100多个目的地,它不起作用。
是否有最大数量的目的地?
更新
try
{
// Initialize WebMail helper
WebMail.SmtpServer = "mysmtpserver";
WebMail.SmtpPort = 25;
WebMail.UserName = "myuser";
WebMail.Password = "mypass";
WebMail.From = "myemail";
// Enviar email
WebMail.Send(to: "myemail",
bcc:sendMail,
subject: "Indisponibilidades - " + numeroTicket,
body: ocorrencia + " - " + numeroTicket + "<br>"
+ "Inicio: " + dataInicio + " " + horaInicio + "<br>"
);
}
catch (Exception ex)
{
errorMessage = ex.Message;
}
我还在使用网络服务同时发送短信,但短信没有问题。如果我发送电子邮件做5或6人(就像我之前说的那样),它会发送短信和电子邮件。
答案 0 :(得分:2)
我不认为这是与ASP.NET WebMail相关的问题,我认为您的服务提供商正在尝试将您与其服务断开连接以获取此类批量数据。不知何故,to: ""
参数仅适用于一个值。
您必须使用foreach
循环来遍历许多电子邮件收件人。像这样的东西
var customers = "the value of them here"; // must be array
foreach (var customer in customers) {
WebMail.Send(to: customer.Email,
subject: "your-subject",
body: "Email body here!");
}
这对于此目的就足够了,这样你甚至可以关闭线程一会儿并等待发送当前的电子邮件。一些电子邮件服务提供商也向其他成员提供服务。所以他们太快关闭了连接。 ASP.NET不会因为您拥有庞大的收件人列表而无法关闭连接。
正如我在答案中已经提到的,没有关于ASP.NET的问题是断开电子邮件发送过程的罪魁祸首。这可能与您的电子邮件服务提供商有关。您应该在他们的论坛上发帖并询问他们&#34;如果我必须一次发送10封以上的电子邮件,该怎么办?#34;。
http://www.codeproject.com/Articles/806037/Sending-emails-easily-using-ASP-NET-helpers
请阅读上面的文章,我试图在那里解释ASP.NET WebMail帮助器。您在此处共享的代码没有此类问题,如果电子邮件数量超过10个,则可能会减少网络连接。
我再次要求您不要包含bcc
并使用简单的循环,或者使用foreach循环将电子邮件发送给每个收件人。也许您的服务提供商在电子邮件中不允许超过5个密件抄送。
使用我在上面的代码中给出的简单的foreach循环,并向每个用户发送电子邮件。大多数电子邮件提供商都不允许许多bcc
收件人。
答案 1 :(得分:1)
您应该使用SendGrid等电子邮件递送服务。
他们有一个C# wrapper library,其中包含您安装和运行所需的所有说明。我已经将它与WebMatrix一起使用,因此可以保证它能够正常工作。
最多发送25K free emails a month注册Windows azure并将SendGrid添加为服务。然后,您将获得可在任何应用中使用的API密钥。