试图从SMTPClient派生

时间:2010-01-12 16:15:49

标签: c# asp.net

我正在使用CreateUserWizard,如果在其上创建了MailDefinition,它将查找配置部分中定义的默认SMTPClient。

我想使用此配置部分,但我想要使用的密码是加密的。

我试图从SMTPClient派生(前一个问题中另一张慷慨的海报推荐)我的实施尝试如下:

public class MySmtpClient: SmtpClient
    {
       public MySmtpClient() : base()
        {
            MySmtpClient mySmtpClient = new MySmtpClient();
            NetworkCredential nc = CredentialCache.DefaultNetworkCredentials;
            nc.Password = DecryptMyPassword(nc.Password);
            mySmtpClient.Credentials = nc;

我仍然没有使用该部分 - 但是当我这样做时 - 我该怎么做才能让CreateUserWizard使用我的派生对象发送邮件而不是默认的SMTPClient对象?

谢谢!

1 个答案:

答案 0 :(得分:2)

处理CreateUserWizard的OnSendingMail事件。

在事件处理程序中,使用MySmtpClient并通过设置e.Cancel = true;

取消默认客户端
protected void CreateUserWizard_SendingMail(object sender, MailMessageEventArgs e)
    {
        //cancel default handling.
        e.Cancel = true;

        MySmtpClient myClient = new MySmtpClient();
        //fill details and send mail.
    }

希望这有帮助!