Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试从SMTPClient派生_C#_Asp.net - Fatal编程技术网

C# 尝试从SMTPClient派生

C# 尝试从SMTPClient派生,c#,asp.net,C#,Asp.net,我使用的是CreateUserWizard,如果在其上创建了MailDefinition,它将查找配置部分中定义的默认SMTPClient 我想使用此配置部分,但是我想使用的密码是加密的 我正试图从SMTPClient(上一个问题中另一张慷慨的海报推荐)中汲取经验,我的实施尝试如下: public class MySmtpClient: SmtpClient { public MySmtpClient() : base() { MyS

我使用的是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对象


谢谢大家!

处理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.
    }

希望这有帮助

小的改进:
newmysmtpclient().Send(e.Message)