ASP.NET更改密码和密码恢复不发送电子邮件

ASP.NET更改密码和密码恢复不发送电子邮件,asp.net,email,smtp,membership-provider,Asp.net,Email,Smtp,Membership Provider,我正在使用ASP.NET成员资格提供程序控件(ChangePassword和PasswordRecovery),它们通常工作正常 不幸的是,一旦流程完成,他们就不会发送任何电子邮件 我使用ASP.NET配置网站设置SMTP服务器,它在web.config中添加了以下行: <system.net> <mailSettings> <smtp from="maildaemon@pagetailors.de"> <network host="page

我正在使用ASP.NET成员资格提供程序控件(ChangePassword和PasswordRecovery),它们通常工作正常

不幸的是,一旦流程完成,他们就不会发送任何电子邮件

我使用ASP.NET配置网站设置SMTP服务器,它在web.config中添加了以下行:

<system.net>
 <mailSettings>
  <smtp from="maildaemon@pagetailors.de">
   <network host="pagetailors.de" password="XXXX" userName="XXXX" />
  </smtp>
 </mailSettings>
</system.net>
从配置文件读取的mailserver、用户名和密码的值与ASP.NET配置工具中定义的值相同。这些邮件已成功投递

有什么想法吗?
提前谢谢

好的,我找到了一个解决办法:

我可以在passwordRecovery.OnSendingMail事件中调用我的自定义EmailHelper类。 奇怪的是,如果我在打电话给我的助手(他说消息发送成功)后将e.Cancel设置为true,消息就不会被发送。如果我离开e.Cancel=false,一切正常

<MailDefinition From="maildaemon@pagetailors.de"
 Subject="Your new password">
</MailDefinition>
public static void SendEmail(string from, string to, string subject, string body)
{
    SmtpClient mailClient = new SmtpClient(ConfigReader.GetStringValue("MailServer"));
    mailClient.Credentials = new NetworkCredential(ConfigReader.GetStringValue("MailUsername"),
                                                   ConfigReader.GetStringValue("MailPassword"));

    MailMessage mailMessage = new MailMessage(from, to, subject, body);
    mailClient.Send(mailMessage);
}