ChangePassword.OnSendingMail(MailMessageEventArgs) Methode

Definitie

Hiermee wordt de SendingMail gebeurtenis gegenereerd voordat een e-mailbericht wordt verzonden naar de SMTP-server voor verwerking. De SMTP-server verzendt het e-mailbericht vervolgens naar de gebruiker.

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)

Parameters

e
MailMessageEventArgs

Een MailMessageEventArgs object met de gebeurtenisgegevens.

Voorbeelden

In het volgende codevoorbeeld ziet u een ASP.NET pagina die gebruikmaakt van een ChangePassword Web-besturingselement en een gebeurtenis-handler bevat voor de gebeurtenis SendingMail met de naam SendingMail. In het codevoorbeeld wordt ervan uitgegaan dat de ASP.NET website is geconfigureerd voor het gebruik van ASP.NET lidmaatschap en formulierverificatie en dat een gebruiker is gemaakt waarvan u de naam en het wachtwoord kent. Zie Procedure: Eenvoudige formulierverificatie implementeren voor meer informatie.

Als de wachtwoordwijziging is geslaagd, probeert de code SMTP te gebruiken om een e-mailbericht naar de gebruiker te verzenden om de wijziging te bevestigen. Dit wordt gedaan in deSendingMail gebeurtenis-handler. Zie How to: Install and Configure SMTP Virtual Servers in IIS 6.0 (SMTP-virtuele servers installeren en configureren in IIS 6.0) voor informatie over het configureren van een SMTP-server. In dit voorbeeld is het niet nodig om een SMTP-server te configureren; het voorbeeld is samengesteld om te testen op een fout bij het verzenden van een e-mailbericht.

Als een e-mailserver niet juist is geconfigureerd of een andere fout optreedt en het e-mailbericht niet kan worden verzonden, wordt de SendMailError functie aangeroepen. Er wordt een bericht weergegeven aan de gebruiker. Daarnaast wordt een gebeurtenis vastgelegd in het gebeurtenislogboek van de Windows Toepassing met de veronderstelling dat er al een gebeurtenisbron met de naam MySamplesSite bestaat. Zie Server Event Handling in ASP.NET Web Forms Pages voor meer informatie over het maken van een gebeurtenisbron. De Handled eigenschap van het SendMailErrorEventArgs object is ingesteld om true aan te geven dat de fout is verwerkt.

Gebruik het volgende codevoorbeeld als u de gebeurtenisbron met de naam MySamplesSite programmatisch wilt toevoegen aan uw toepassingslogboek. Deze gebeurtenisbron moet bestaan om ervoor te zorgen dat het eerste codevoorbeeld correct werkt. Voor het volgende codevoorbeeld zijn beheerdersbevoegdheden vereist.

#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

De volgende voorbeeldcode kan worden gebruikt als het ChangePasswordMail.htm-bestand voor de vorige voorbeeldcode.

Important

Het verzenden van gebruikersaccountnamen of wachtwoorden in e-mail is een mogelijke beveiligingsrisico. E-mailberichten worden meestal in tekst zonder opmaak verzonden en kunnen worden gelezen door speciale netwerktoepassingen voor 'sniffing'. Gebruik de oplossingen die worden beschreven in Aanmeldingsbesturingselementen beveiligen om de beveiliging te verbeteren.

<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>

Opmerkingen

Gebruik de OnSendingMail methode om het e-mailbericht te wijzigen dat naar gebruikers wordt verzonden nadat ze hun wachtwoord hebben gewijzigd. De Message eigenschap van het MailMessageEventArgs object wordt verzonden naar de SMTP-server voor verwerking. Wijzig de eigenschappen van het MailMessage object om het e-mailbericht te wijzigen.

E-mailberichten worden alleen gemaakt wanneer de BodyFileName eigenschap van het MailDefinition object dat is opgegeven door de MailDefinition eigenschap verwijst naar een geldige bestandsnaam.

Important

Het verzenden van gebruikersaccountnamen of wachtwoorden in e-mail is een mogelijke beveiligingsrisico. E-mailberichten worden meestal in tekst zonder opmaak verzonden en kunnen worden gelezen door speciale netwerktoepassingen voor 'sniffing'. Gebruik de oplossingen die worden beschreven in Aanmeldingsbesturingselementen beveiligen om de beveiliging te verbeteren.

Als u een gebeurtenis aanroept, wordt de gebeurtenis-handler via een gemachtigde aangeroepen. Zie Server Event Handling in ASP.NET Web Forms Pages voor meer informatie.

Met OnSendingMail de methode kunnen afgeleide klassen de gebeurtenis ook verwerken zonder een gemachtigde te koppelen. Dit is de voorkeurstechniek voor het verwerken van de gebeurtenis in een afgeleide klasse.

Notities voor overnemers

Wanneer u de OnSendingMail(MailMessageEventArgs) methode in een afgeleide klasse overschrijft, moet u de OnSendingMail(MailMessageEventArgs) methode voor de basisklasse aanroepen, zodat geregistreerde gemachtigden de gebeurtenis ontvangen.

Van toepassing op

Zie ook