来自ASP.NET的SMTP电子邮件
我有一个asp.net 4.0网站,它根据整个网站上的几个不同事件生成电子邮件警报。我在我的App_code文件夹中的Utility.cs类中使用以下代码。Subject、body和mailto是传递到方法中的参数来自ASP.NET的SMTP电子邮件,asp.net,smtp,Asp.net,Smtp,我有一个asp.net 4.0网站,它根据整个网站上的几个不同事件生成电子邮件警报。我在我的App_code文件夹中的Utility.cs类中使用以下代码。Subject、body和mailto是传递到方法中的参数 try { var mailmessage = new MailMessage(); mailmessage.From("admin@xxxxxx.com"); mailmessage.To.Add(new MailMessage(mailTo));
try
{
var mailmessage = new MailMessage();
mailmessage.From("admin@xxxxxx.com");
mailmessage.To.Add(new MailMessage(mailTo));
mailmessage.ReplyTo("no-reply@xxxxxx.com");
mailmessage.Subject = subject;
mailmessage.Body = body;
mailmessage.IsBodyHtml = true;
var smtpClient = new SmtpClient();
smtpClient.Send(mailmessage);
}
catch (Exception smtpEx)
{// write to windows event log}
还有我的web.config
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="no-reply@xxxxxx.com">
<network host="xxx.xxx.xxx.xxx" port="25" defaultCredentials="true"/>
</smtp>
</mailSettings>
</system.net>
这些电子邮件从未收到过。然而有趣的是,当我使用“忘记密码”功能时,我确实收到了我的电子邮件。该功能是使用PasswordRecovery控件实现的,使用方法如下
<asp:PasswordRecovery ID="xxx" Visible="false" runat="server"></asp:PasswordRecovery>
我根本没有设置任何MailDefinition属性,这使我假设它正在使用我的my web.config设置,那么为什么该控件可以使用这些设置,而我的c#代码却不能。我猜可能是我的邮件吧
感谢你们能提供的任何帮助
谢谢 这些电子邮件看起来像什么?他们可能会因为垃圾邮件而被杀死,特别是因为你以HTML的形式发送他们(垃圾邮件过滤器会为链接、图像等提供大量的点击率)。密码恢复控件默认发送纯文本;您是否尝试过运行上述代码以纯文本形式手动发送邮件?您的电子邮件服务器可能不喜欢的“发件人”地址admin@xxxxxx.com“(在您的代码中指定),但它确实像“发件人”地址中的“否”-reply@xxxxxx.com“(在web.config中指定)
验证您的电子邮件服务器是否设置为有效的电子邮件地址。此外,很多时候,电子邮件服务器会验证发件人地址的域实际上来自您发送邮件的IP地址。您可以在DNS中设置一个SPF记录,该记录将告诉电子邮件服务器该域是来自W.X.Y.Z IP地址的有效发件人。我想出来了-很抱歉浪费您的时间。这只是一个过了头的网站,我让intellisence占了上风 mailmessage.To.Add(新建mailmessage(mailTo)) 应该读 mailmessage.To.Add(新的邮件地址(mailTo))
很高兴问题解决了,但我不知道我怎么会错过它。如果您将DeliveryMethod更改为Pickupdirectory并指定一个目录,会怎么样?您是否收到该目录中的电子邮件?请查看smtp服务器的事件日志