1

我制作了一个 Razor MVC3 网站,可以从中发送电子邮件。

我创建了一个服务来获取所有用户和电子邮件信息,并启动一个发送格式化电子邮件的线程。
我制作了自己的线程池。

在我的电脑上一切正常。我每秒都发送电子邮件。
但是当我在我的亚马逊服务器 ec2 上部署我的网站时,电子邮件发送变得如此缓慢(3 分钟/邮件)并且我的一半电子邮件都失败了。

亚马逊服务器比我的电脑强大得多。带宽也一样。我不知道这是一个 IIS 还是一个线程配置,而不是我错过的。

有任何想法吗?

//----------------- 代码发送电子邮件------------------------

using (SmtpClient smtp = new SmtpClient()
{
      Host = serverSMTP,
      Port = 25,
      EnableSsl = false,
      DeliveryMethod = SmtpDeliveryMethod.Network,
      Credentials = new NetworkCredential(senderAddress.Address, carteiraPassword),
      Timeout = 10000
 })
 {
      ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; //test
      smtp.Send(message);
 }

//------------------类线程------------------------

public class MyThread
{
    #region Param
    public string Id { get; set; }
    public RunNewThread RunThreadDelegate;        
    private System.Threading.Thread Thread { get; set; }
    #endregion

    public SiscobThread(RunNewThread RunThreadDelegate)
    {
        this.RunThreadDelegate = RunThreadDelegate;
    }

    public void Init()
    {
        this.Thread = new System.Threading.Thread(this.RunThread);
        MsgManager.Instance.SendError("Thread born " + this.Id, null);
    }

    private void RunThread()
    {
        this.RunThreadDelegate();
    }

    public void Start()
    {
        this.Thread.Start();
    }

    public void Stop()
    {
        this.Thread.Abort();
    }
}
4

2 回答 2

3

与亚马逊核实。我很确定他们会限制出站电子邮件连接,除非您与他们一起填写表格,说明您的应用程序中电子邮件的用途。

这是为了让垃圾邮件发送者更难以简单地启动新实例并广播他们的垃圾。

我仔细看了看:http:
//aws.amazon.com/ec2/faqs/#Are_there_any_limitations_in_sending_email_from_EC2_instances

每个亚马逊:

是的。为了保持 EC2 地址发送电子邮件的质量,我们对可以从 EC2 账户发送的电子邮件数量实施默认限制。如果您希望从 EC2 发送大量电子邮件,您可以通过填写此表格申请从您的账户中删除这些限制。

于 2012-11-09T14:35:26.217 回答
0

谢谢是这个。我在一天结束时收到:

尊敬的 EC2 客户,您最近达到了可以从实例上的 SMTP 端口 25 发送的电子邮件量的限制:

实例 ID:xxxxxxxx * IP 地址:xxxxxxxx * 开始日期:xxxxxxxx

为了保持 EC2 地址发送电子邮件的质量,我们对可以从 EC2 账户发送的电子邮件数量实施默认限制。如果您希望从 EC2 发送大量电子邮件,您可以通过填写我们的在线申请表申请从您的账户中删除这些限制。

如果您不知道您的实例已发送电子邮件,我们建议检查您的实例应用程序以确认此活动是有意的。您有责任确保您的实例和所有应用程序受到保护以防止未经授权的使用。有关保护您的实例的建议,请访问 aws.amazon.com/security。

此致,您的 Amazon Web Services EC2 团队

于 2012-11-12T12:53:51.407 回答