【问题标题】:Sending emails in webmatrix - Max numbers of destinataries在 webmatrix 中发送电子邮件 - 最大目的地数
【发布时间】:2014-08-13 08:25:02
【问题描述】:

所以我在 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 个人(如我之前所说)发送短信和电子邮件。

【问题讨论】:

  • “不起作用”是什么意思?
  • @MikeBrind,我认为他的意思是“没有发送电子邮件”。
  • @AfzaalAhmadZeeshan 显然,但是关于发生的事情的更多细节 - 错误消息,一些代码可能 - 会有所帮助。
  • @MikeBrind,是的,我也期待这一点。但我假设端口或连接已关闭,因为 ASP.NET 为什么会关闭与服务的连接。
  • 嗨 Mike 和 Afzal 我已经用一些代码更新了这个问题。

标签: email razor webmatrix


【解决方案1】:

我不认为这是与 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 相关是断开电子邮件发送过程的罪魁祸首。这可能与您的电子邮件服务提供商有关。您应该在他们的论坛上发布此内容并询问他们“如果我必须一次发送超过 10 封电子邮件,我该怎么办”。

http://www.codeproject.com/Articles/806037/Sending-emails-easily-using-ASP-NET-helpers

请阅读上面的文章,我已经尝试在那里解释 ASP.NET WebMail 助手。您在此处共享的代码不存在如果电子邮件数量超过 10 则可能会切断网络连接的问题。

问题(可能是这个)

还有一次,我要求您不要包含 bcc 并使用简单的循环、for 或 foreach 循环将电子邮件发送给每个收件人。也许您的服务提供商不允许电子邮件中的密件抄送超过 5 个。

使用我在上面的代码中给出的简单 foreach 循环,并向每个用户发送电子邮件。大多数电子邮件提供商不允许很多bcc 收件人。

【讨论】:

  • 好的,我明白你的意思,但还有一件事。现在我们正在通过 Outlook 发送这些电子邮件,并在密件抄送上使用该“列表”,这没有问题,电子邮件已发送。所以我认为我们的服务提供商允许超过 5 个密件抄送。
  • @Nibbler 是的,如果 OutLook 可以发送超过 5 个密件抄送,那么是的,Outlook 允许 超过 5 个密件抄送。如果适合您的需要,您可以尝试使用 OutLook。 :)
  • 是的,但这是一种解决方法,我会尝试您的解决方案。非常感谢您再次提供帮助。
【解决方案2】:

您确实应该使用SendGrid 之类的电子邮件递送服务。

他们有一个C# wrapper library,其中包含安装和运行它所需的所有说明。我已经将它与 WebMatrix 一起使用,因此可以保证它会起作用。

要发送至 25K free emails a month,请注册 windows azure 并将 SendGrid 添加为服务。然后,您将获得一个 API 密钥,可以在您的任何应用中使用。

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2014-07-20
    相关资源
    最近更新 更多