我正在使用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对象?
谢谢!
答案 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.
}
希望这有帮助!