Sdílet prostřednictvím


ChangePassword.OnSendingMail(MailMessageEventArgs) Metoda

Definice

SendingMail Vyvolá událost před odesláním e-mailové zprávy na server SMTP ke zpracování. Server SMTP pak odešle e-mailovou zprávu uživateli.

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)

Parametry

e
MailMessageEventArgs

Objekt MailMessageEventArgs obsahující data události.

Příklady

Následující příklad kódu ukazuje ASP.NET stránku, která používá ChangePassword webový ovládací prvek a obsahuje obslužnou rutinu SendingMail události pro událost s názvem SendingMail. Příklad kódu předpokládá, že web ASP.NET byl nakonfigurován tak, aby používal ASP.NET členství a ověřování pomocí formulářů a že byl vytvořen uživatel, jehož jméno a heslo znáte. Další informace naleznete v tématu Postupy: Implementace jednoduchého ověřování pomocí formulářů.

Pokud je změna hesla úspěšná, kód se pokusí použít smtp k odeslání e-mailové zprávy uživateli, aby změnu potvrdil. To se provádí v obslužné rutiněSendingMail události. Informace o konfiguraci serveru SMTP naleznete v tématu Postupy: Instalace a konfigurace virtuálních serverů SMTP ve službě IIS 6.0. Pro účely tohoto příkladu není nutné konfigurovat server SMTP; Příklad je vytvořen tak, aby testoval, že se nepodařilo odeslat e-mailovou zprávu.

Pokud poštovní server není správně nakonfigurovaný nebo dojde k nějaké jiné chybě a e-mailová zpráva se nedá odeslat, SendMailError volá se funkce. Uživateli se zobrazí zpráva. Kromě toho se událost zaprotokoluje do protokolu událostí aplikace systému Windows s předpokladem, že zdroj události s názvem MySamplesSite již existuje. Další informace o vytváření zdroje událostí naleznete v tématu Zpracování událostí serveru na ASP.NET webových formulářů stránky. Vlastnost Handled objektu SendMailErrorEventArgs je nastavena tak, aby true indikovala, že chyba byla zpracována.

Následující příklad kódu použijte, pokud potřebujete programově přidat zdroj události s názvem MySamplesSite do protokolu aplikace. Tento zdroj událostí musí existovat, aby první příklad kódu fungoval správně. Následující příklad kódu vyžaduje oprávnění správce.

#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

Následující příklad kódu lze použít jako ChangePasswordMail.htm soubor pro předchozí ukázkový kód.

Důležité

Posílání jmen uživatelských účtů nebo hesel v e-mailu je potenciální bezpečnostní hrozbou. E-mailové zprávy se obvykle odesílají ve formátu prostého textu a dají se číst speciálními aplikacemi "šifrování" sítě. Pokud chcete zlepšit zabezpečení, použijte zmírnění rizik popsaná v části Zabezpečení přihlašovacích ovládacích prvků.

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

Poznámky

OnSendingMail Pomocí této metody můžete upravit e-mailovou zprávu odesílanou uživatelům po změně hesla. Vlastnost Message objektu MailMessageEventArgs se odešle na server SMTP ke zpracování. Upravte vlastnosti objektu MailMessage a upravte e-mailovou zprávu.

E-mailové zprávy jsou vytvořeny pouze v případech, BodyFileName kdy vlastnost objektu MailDefinition určená MailDefinition vlastností odkazuje na platný název souboru.

Důležité

Posílání jmen uživatelských účtů nebo hesel v e-mailu je potenciální bezpečnostní hrozbou. E-mailové zprávy se obvykle odesílají ve formátu prostého textu a dají se číst speciálními aplikacemi "šifrování" sítě. Pokud chcete zlepšit zabezpečení, použijte zmírnění rizik popsaná v části Zabezpečení přihlašovacích ovládacích prvků.

Vyvolání události vyvolá obslužnou rutinu události prostřednictvím delegáta. Další informace naleznete v tématu Zpracování událostí serveru na ASP.NET webových formulářů stránky.

Metoda OnSendingMail také umožňuje odvozené třídy zpracovat událost bez připojení delegáta. Toto je upřednostňovaná technika pro zpracování události v odvozené třídě.

Poznámky pro dědice

Při přepsání OnSendingMail(MailMessageEventArgs) metody v odvozené třídě nezapomeňte volat metodu OnSendingMail(MailMessageEventArgs) pro základní třídu, aby registrovaní delegáti obdrželi událost.

Platí pro

Viz také