C# 慢线程电子邮件发送者
我制作了一个Razor MVC3网站,从中我可以发送电子邮件 我提供了一项服务,获取所有用户和电子邮件信息,并启动一个发送格式化电子邮件的线程。C# 慢线程电子邮件发送者,c#,asp.net-mvc,email,iis-7,C#,Asp.net Mvc,Email,Iis 7,我制作了一个Razor MVC3网站,从中我可以发送电子邮件 我提供了一项服务,获取所有用户和电子邮件信息,并启动一个发送格式化电子邮件的线程。 我做了自己的线程池 在我的电脑上,一切都很正常。我每秒发送电子邮件。 但是,当我在亚马逊服务器ec2上部署我的网站时,电子邮件发送速度变得非常慢(3分钟/封邮件),我的一半电子邮件都失败了 亚马逊服务器比我的电脑强大得多。带宽也一样。 我不知道这是IIS还是线程配置,我错过了 有什么想法吗 //-----------------代码发送电子邮件----
我做了自己的线程池 在我的电脑上,一切都很正常。我每秒发送电子邮件。
但是,当我在亚马逊服务器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();
}
}
//-----------------类线程------------------------
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();
}
}
请向亚马逊咨询。我敢肯定,除非你在申请表中填写一份表格,说明电子邮件的用途,否则他们会限制出站电子邮件连接 这使得垃圾邮件发送者更难创建新实例并广播其垃圾 我仔细看了看:
每亚马逊: 对。为了保持发送的EC2地址的质量 电子邮件,我们对可以发送的电子邮件数量强制执行默认限制 从EC2帐户发送。如果您希望发送更多的电子邮件 从EC2中,您可以申请从您的帐户中删除这些限制 由
谢谢,就是这个。我在一天结束时收到: 亲爱的EC2客户,您最近达到了电子邮件数量的限制 您能够从实例上的SMTP端口25发送: 实例ID:xxxxxxxx *IP地址:xxxxxxxx *开始日期:xxxxxxxx 为了保持发送电子邮件的EC2地址的质量, 我们对可以从中发送的电子邮件数量实施默认限制 EC2账户。如果您希望从EC2发送更多的电子邮件, 您可以通过以下方式申请从您的帐户中删除这些限制: 填写我们的在线申请表 如果您不知道您的实例已发送电子邮件,我们建议 检查实例应用程序以确认此活动 是有意的。您有责任确保您的实例 所有应用程序都受到保护,防止未经授权使用。对于 有关保护实例的建议,请访问aws.amazon.com/security 您好,您的Amazon Web Services EC2团队