Scott on Writing

Musings on technical writing...

Configuring the PasswordRecovery To Send Email to an SSL-Enabled SMTP Client

ASP.NET's PasswordRecovery provides a mechanism for users to recover their forgotten passwords. Depending on how user passwords are saved, the PasswordRecovery control will either email a user their password or it will reset the user's password to a new, auto-generated one and email them this new password. In either case, the PasswordRecovery control sends an email message. To accommodate this, your web application should have the SMTP settings defined in Web.config's section as described in this article: Sending Email in ASP.NET.

Certain SMTP servers (such as GMail's) only accept connections over SSL. Unfortunately, you cannot specify whether to send emails via SSL from the section; rather, you have to do it when you instantiate the SmtpClient object, via its EnableSsl property. This is problematic if you need to have the PasswordRecovery control send the user her password via an SMTP server that requires SSL. The workaround is to create an event handler for the PasswordRecovery control's SendingMail event, where you create your own SmtpClient object, set its EnableSsl property, and use it to send the MailMessage object the PasswordRecovery control is getting ready to send.

Protected Sub prResetPwd_SendingMail(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.MailMessageEventArgs) Handles prResetPwd.SendingMail
    Dim smtp As New SmtpClient
    smtp.EnableSsl = True

    Try
        smtp.Send(e.Message)
    Catch ex As Exception
        'Decide how to handle SMTP errors
    End Try

    'Instruct the control to cancel sending the email itself, since we just sent it
    e.Cancel = True
End Sub

Two things to note:

  1. The MailMessage object that the PasswordRecovery control is about to send is available via e.Message, and
  2. It is important to set e.Cancel to True. This tells the PasswordRecovery control to not send the email, which is what we want because we have already sent it with the SmtpClient object created in this event handler.

This concept can be extended to other ASP.NET Web controls that can automatically send emails (such as the CreateUserWizard control).

Happy Programming!

posted on Tuesday, November 10, 2009 12:54 PM

Feedback

# Dew Drop – November 11, 2009 | Alvin Ashcraft's Morning Dew 11/11/2009 4:57 AM Pingback/TrackBack

Dew Drop – November 11, 2009 | Alvin Ashcraft's Morning Dew

# Scott on Writing 11/12/2009 12:00 PM PimpThisBlog.com

Thank you for submitting this cool story - Trackback from PimpThisBlog.com

Title:  
Name:  
Url:
Protected by Clearscreen.SharpHIPEnter the code you see:
Comments   

My Links

Ads Via DevMavens

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<December 2009>
SMTWTFS
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

Comment Stats

DayTotal% of Total
Sunday 2046.8%
Monday 42514.1%
Tuesday 51317.1%
Wednesday 55218.4%
Thursday 57919.3%
Friday 54418.1%
Saturday 1876.2%
Total 3004100.0%

Hour1Total% of Total
12:00 AM 762.5%
1:00 AM 812.7%
2:00 AM 682.3%
3:00 AM 822.7%
4:00 AM 682.3%
5:00 AM 1264.2%
6:00 AM 1183.9%
7:00 AM 1785.9%
8:00 AM 1926.4%
9:00 AM 1575.2%
10:00 AM 1866.2%
11:00 AM 1936.4%
12:00 PM 2016.7%
1:00 PM 1846.1%
2:00 PM 1685.6%
3:00 PM 1354.5%
4:00 PM 1153.8%
5:00 PM 1063.5%
6:00 PM 1013.4%
7:00 PM 1063.5%
8:00 PM 923.1%
9:00 PM 872.9%
10:00 PM 893.0%
11:00 PM 953.2%
Total 3004100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 4.94158
Monday 4.80384
Tuesday 4.10476
Wednesday 7.46679
Thursday 6.24674
Friday 5.02457
Saturday 4.76176
Total 5.413004

Hour1 Entry MadeAvg.Total
12:00 AM 5.2937
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 3.8550
8:00 AM 3.72134
9:00 AM 6.06291
10:00 AM 5.61275
11:00 AM 4.27192
12:00 PM 6.14350
1:00 PM 3.17133
2:00 PM 5.00230
3:00 PM 7.62320
4:00 PM 3.96107
5:00 PM 6.00168
6:00 PM 4.64116
7:00 PM 8.95188
8:00 PM 8.58163
9:00 PM 5.00115
10:00 PM 6.31101
11:00 PM 4.5732
Total 5.413004

Learn More About Comment Stats
1 - All times GMT -8...


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles