【问题标题】:Slow thread Email Sender慢线程电子邮件发件人
【发布时间】:2012-11-09 14:33:40
【问题描述】:

我创建了一个 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();
    }
}

【问题讨论】:

    标签: c# asp.net-mvc email iis-7


    【解决方案1】:

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

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

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

    每个亚马逊:

    是的。为了保持EC2地址发送的质量 电子邮件,我们对可以接收的电子邮件数量实施默认限制 从 EC2 帐户发送。如果您希望发送大量电子邮件 从 EC2,您可以申请从您的账户中删除这些限制 filling out this form.

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      此致,您的 Amazon Web Services EC2 团队

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-22
        • 2016-03-10
        • 2016-01-21
        • 2011-09-04
        • 2023-03-28
        • 1970-01-01
        • 2012-03-29
        相关资源
        最近更新 更多