ChangePassword.OnSendingMail(MailMessageEventArgs) Metod

Definition

Genererar SendingMail händelsen innan ett e-postmeddelande skickas till SMTP-servern för bearbetning. SMTP-servern skickar sedan e-postmeddelandet till användaren.

protected:
 virtual void OnSendingMail(System::Web::UI::WebControls::MailMessageEventArgs ^ e);
protected virtual void OnSendingMail(System.Web.UI.WebControls.MailMessageEventArgs e);
abstract member OnSendingMail : System.Web.UI.WebControls.MailMessageEventArgs -> unit
override this.OnSendingMail : System.Web.UI.WebControls.MailMessageEventArgs -> unit
Protected Overridable Sub OnSendingMail (e As MailMessageEventArgs)

Parametrar

e
MailMessageEventArgs

Ett MailMessageEventArgs objekt som innehåller händelsedata.

Exempel

Följande kodexempel visar en ASP.NET sida som använder en ChangePassword webbkontroll och innehåller en händelsehanterare för händelsen SendingMail med namnet SendingMail. Kodexemplet förutsätter att ASP.NET webbplats har konfigurerats för att använda ASP.NET medlemskap och formulärautentisering och att en användare har skapats vars namn och lösenord är kända för dig. Mer information finns i Så här implementerar du enkel formulärautentisering.

Om lösenordsändringen lyckas försöker koden använda SMTP för att skicka ett e-postmeddelande till användaren för att bekräfta ändringen. Detta görs iSendingMail händelsehanteraren. Information om hur du konfigurerar en SMTP-server finns i Så här installerar och konfigurerar du virtuella SMTP-servrar i IIS 6.0. I det här exemplet är det inte nödvändigt att konfigurera en SMTP-server. exemplet är konstruerat för att testa om det inte går att skicka ett e-postmeddelande.

Om en e-postserver inte är korrekt konfigurerad eller om något annat fel inträffar och e-postmeddelandet inte kan skickas anropas SendMailError funktionen. Ett meddelande visas för användaren. Dessutom loggas en händelse till händelseloggen Windows Application med antagandet att det redan finns en händelsekälla med namnet MySamplesSite. Mer information om hur du skapar en händelsekälla finns i Server Event Handling i ASP.NET Web Forms Pages. Egenskapen Handled för SendMailErrorEventArgs objektet är inställd på för true att indikera att felet har hanterats.

Använd följande kodexempel om du behöver lägga till händelsekällan mySamplesSite programmatiskt i programloggen. Den här händelsekällan måste finnas för att det första kodexemplet ska fungera korrekt. Följande kodexempel kräver administratörsbehörighet.

#region Using directives

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

#endregion

namespace CreateEventSource
{
    class Program
    {
        static void Main(string[] args)
        {

            try
            {
                // Create the source, if it does not already exist.
                if (!EventLog.SourceExists("MySamplesSite"))
                {
                    EventLog.CreateEventSource("MySamplesSite", "Application");
                    Console.WriteLine("Creating Event Source");
                }

                // Create an EventLog instance and assign its source.
                EventLog myLog = new EventLog();
                myLog.Source = "MySamplesSite";

                // Write an informational entry to the event log.    
                myLog.WriteEntry("Testing writing to event log.");

                Console.WriteLine("Message written to event log.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception:");
                Console.WriteLine("{0}", e.ToString());
            }
        }
    }
}
Imports System.Collections.Generic
Imports System.Text
Imports System.Diagnostics


Namespace CreateEventSource
  Class Program
    Sub Main()

        Try
            ' Create the source, if it does not already exist.
            If Not (EventLog.SourceExists("MySamplesSite")) Then
                EventLog.CreateEventSource("MySamplesSite", "Application")
                Console.WriteLine("Creating Event Source")
            End If

            ' Create an EventLog instance and assign its source.
            Dim myLog As New EventLog
            myLog.Source = "MySamplesSite"

            ' Write an informational entry to the event log.
            myLog.WriteEntry("Testing writing to event log.")

            Console.WriteLine("Message written to event log.")
        Catch e As Exception
            Console.WriteLine("Exception:")
            Console.WriteLine(e.ToString)
        End Try

    End Sub
  End Class
End Namespace

Följande exempelkod kan användas som den ChangePasswordMail.htm filen för föregående exempelkod.

Important

Att skicka användarnamn eller lösenord i e-post är ett potentiellt säkerhetshot. E-postmeddelanden skickas vanligtvis i oformaterad text och kan läsas av särskilda nätverksprogram för "sniffning". Du kan förbättra säkerheten genom att använda de åtgärder som beskrivs i Skydda inloggningskontroller.

<html>
<head><title></title></head>
<body>
<form>

  <h1>Your password for the account named &quot;<%Username%>&quot; has changed.</h1>

  <p>
  If you did not initiate this change, please call 1-206-555-0100.
  </p>

  <p>
  <a href="http://www.contoso.com/login.aspx">
    <img src="cid:LoginGif" alt="Log In" />
  </a>
  </p>

  <p>
  Please read our attached Privacy Notice.
  </p>

</form>
</body>
</html>

Kommentarer

Använd metoden OnSendingMail för att ändra e-postmeddelandet som skickas till användare när de har ändrat sitt lösenord. Objektets MessageMailMessageEventArgs egenskap skickas till SMTP-servern för bearbetning. Ändra egenskaperna för MailMessage objektet för att ändra e-postmeddelandet.

E-postmeddelanden skapas endast när BodyFileName egenskapen för MailDefinition objektet som anges av MailDefinition egenskapen pekar på ett giltigt filnamn.

Important

Att skicka användarnamn eller lösenord i e-post är ett potentiellt säkerhetshot. E-postmeddelanden skickas vanligtvis i oformaterad text och kan läsas av särskilda nätverksprogram för "sniffning". Du kan förbättra säkerheten genom att använda de åtgärder som beskrivs i Skydda inloggningskontroller.

När du skapar en händelse anropas händelsehanteraren via ett ombud. Mer information finns i Server Event Handling i ASP.NET Web Forms Pages.

Metoden OnSendingMail gör det också möjligt för härledda klasser att hantera händelsen utan att koppla ett ombud. Det här är den bästa tekniken för att hantera händelsen i en härledd klass.

Anteckningar till arvingar

När du OnSendingMail(MailMessageEventArgs) åsidosätter metoden i en härledd klass måste du anropa OnSendingMail(MailMessageEventArgs) metoden för basklassen så att registrerade ombud får händelsen.

Gäller för

Se även