2010-03-08 16 views
0

我正在使用ASP.NET成員資格提供程序控件(ChangePassword和PasswordRecovery),它們通常工作得很好。ASP.NET ChangePassword和PasswordRecovery不發送電子郵件

不幸的是,一旦這個過程結束,他們不會發送任何電子郵件。

我設置使用ASP.NET配置網站SMTP服務器並將其添加以下行到Web.config:

<system.net> 
<mailSettings> 
    <smtp from="[email protected]"> 
    <network host="pagetailors.de" password="XXXX" userName="XXXX" /> 
    </smtp> 
</mailSettings> 
</system.net> 

我也用,而不是域的服務器的IP地址嘗試。

除了我設置於所使用的網絡控制maildefinition屬性:

<MailDefinition From="[email protected]" 
Subject="Your new password"> 
</MailDefinition> 

一旦我完成改變或復位口令,對照表示成功消息。它不顯示任何錯誤,但郵件不發送。

我也檢查了服務器上的SMTP日誌文件(這是一個MailEnable服務器),但甚至無法發現嘗試發送這些消息。

我使用的是自定義的電子郵件助手類使用以下設置手動發送電子郵件:對於郵件服務器,用戶名和密碼從配置文件讀取的是作爲ASP的定義相同

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); 
} 

值.NET配置工具。這些郵件已成功發送。

任何想法? 在此先感謝!

回答

1

好吧,我發現了一個解決辦法

我可以打電話給我在passwordRecovery.OnSendingMail事件定製EmailHelper類。 奇怪的是,如果我將e.Cancel設置爲true後,則不會發送該消息,而是調用我的助手(誰說它已成功發送)。如果我離開e.Cancel = false,則一切正常。