由于SmtpClient.SslStream设置为false,CreateUserWizard无法发送电子邮件(通过gmail)

时间:2009-07-15 01:08:15

标签: asp.net email asp.net-membership smtp


我希望 CreateUserWizard 控件向已创建的用户发送电子邮件通知。 由于我没有托管自己的SMTP服务器,因此我尝试使用我的Gmail帐户发送这些通知,但我一直“必须先发出STARTTLS命令”。一个站点建议这是由于CreateUserWizard的SmtpClient使用 System.Net.Sockets.NetworkStream 而不是 System.Net.Security.SslStream

因此,只有我知道如何配置 CreateUserWizard 控件来发送电子邮件(通过gmail)才能处理 SendingMail 事件,我必须取消该事件(通过< em> MailMessageEventArgs.Cancel )然后手动创建并发送电子邮件(这样我就可以将 SmtpClient.EnableSsl 设置为 true )。

有没有办法获取对 CreateUserWizard的SmtpClient 对象的引用,并将其 EnableSsl 设置为 true ,这样我就不必手动发送电子邮件通知?


thanx

1 个答案:

答案 0 :(得分:2)

恐怕没有其他解决办法...... 在microsoft站点上有一个Suggestion,用于将EnableSSL直接添加到smtp配置中... 在此之前,解决方法是:

protected void CreateUserWizard1_OnSendingMail(object sender, MailMessageEventArgs e)
{
SmtpClient smtpClient = new SmtpClient();
smtpClient.EnableSsl = true;
smtpClient.Send(e.Message);
e.Cancel = true;
}