SendMailErrorEventArgs SendMailErrorEventArgs SendMailErrorEventArgs SendMailErrorEventArgs Class

Definition

Stellt Daten für das SendMailError-Ereignis von Steuerelementen wie ChangePassword, CreateUserWizard und PasswordRecovery bereit.Provides data for the SendMailError event of controls such as the ChangePassword control, the CreateUserWizard control, and the PasswordRecovery control.

public ref class SendMailErrorEventArgs : EventArgs
public class SendMailErrorEventArgs : EventArgs
type SendMailErrorEventArgs = class
    inherit EventArgs
Public Class SendMailErrorEventArgs
Inherits EventArgs
Vererbung
SendMailErrorEventArgsSendMailErrorEventArgsSendMailErrorEventArgsSendMailErrorEventArgs

Beispiele

Im folgenden Codebeispiel wird eine ASP.NET-Seite veranschaulicht, ChangePassword die ein websteuer Element verwendet und einen Ereignishandler SendMailError für das-Ereignis mit dem Namen SendMailError enthält.The following code example demonstrates an ASP.NET page that uses a ChangePassword Web control, and includes an event handler for the SendMailError event named SendMailError. Im Codebeispiel wird davon ausgegangen, dass die ASP.NET-Website für die Verwendung der ASP.NET-Mitgliedschaft und Formular Authentifizierung konfiguriert wurde und dass ein Benutzer erstellt wurde, dessen Name und Kennwort Ihnen bekannt sind.The code example assumes that the ASP.NET Web site has been configured to use ASP.NET membership and Forms authentication, and that a user has been created whose name and password are known to you. Weitere Informationen finden Sie unter Vorgehensweise: Implementieren Sie die einfacheFormular Authentifizierung.For more information, see How to: Implement Simple Forms Authentication.

Wenn die Kenn Wort Änderung erfolgreich ist, versucht der SendingMail Code im-Ereignishandler, eine e-Mail-Nachricht an den Benutzer zu senden, um die Änderung zu bestätigen.If the password change succeeds, the code in the SendingMail event handler attempts to send an email message to the user to confirm the change. SMTP muss bereits auf dem Server konfiguriert sein, damit dieses Codebeispiel funktioniert.SMTP must already be configured on the server in order for this code example to work. Informationen zum Konfigurieren eines SMTP-Servers finden Sie unter NIB: Vorgehensweise: Installieren und Konfigurieren virtueller SMTP-Server in IIS6,0.For information about how to configure an SMTP server, see NIB: How to: Install and Configure SMTP Virtual Servers in IIS 6.0. Im Rahmen dieses Beispiels ist es nicht erforderlich, einen SMTP-Server zu konfigurieren. Das Beispiel wird erstellt, um zu testen, dass ein Fehler beim Senden einer e-Mail-Nachricht vorliegt.For the purposes of this example, it is not necessary to configure an SMTP server; the example is constructed to test for a failure to send an email message.

Wenn ein Mailserver nicht ordnungsgemäß konfiguriert ist oder ein anderer Fehler auftritt und die e-Mail-Nachricht nicht SendMailError gesendet werden kann, wird die-Funktion aufgerufen.If a mail server is not configured correctly or some other error occurs and the email message cannot be sent, the SendMailError function is called. Dem Benutzer wird eine Meldung angezeigt.A message is displayed to the user. Außerdem wird ein Ereignis im Windows-Anwendungs Ereignisprotokoll mit der Annahme protokolliert, dass eine Ereignis Quelle mit dem Namen MySamplesSite bereits vorhanden ist.In addition, an event is logged to the Windows Application event log with the assumption that an event source named MySamplesSite already exists. Weitere Informationen finden Sie im folgenden Codebeispiel, um die angegebene Ereignis Quelle zu erstellen.See the code example below to create the specified event source. Weitere Informationen zum Erstellen einer Ereignis Quelle finden Sie unter Server Ereignis Behandlung auf ASP.net-Web Forms Seiten.For more information about creating an event source, see Server Event Handling in ASP.NET Web Forms Pages. Die Handled -Eigenschaft SendMailErrorEventArgs des-Objekts wird auf true festgelegt, um anzugeben, dass der Fehler behandelt wurde.The Handled property of the SendMailErrorEventArgs object is set to true to indicate that the error has been handled.

<%@ Page Language="C#" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void MySendingMail(object sender, MailMessageEventArgs e)
  {
    Message1.Text = "Sent mail to you to confirm the password change.";
  }

  void MySendMailError(object sender, SendMailErrorEventArgs e)
  {
    Message1.Text = "Could not send email to confirm password change.";

    // The MySamplesSite event source has already been created by an administrator.
    System.Diagnostics.EventLog myLog = new System.Diagnostics.EventLog();
    myLog.Log = "Application";
    myLog.Source = "MySamplesSite";
    myLog.WriteEntry(
        "Sending mail via SMTP failed with the following error: " + 
        e.Exception.Message.ToString(), 
        System.Diagnostics.EventLogEntryType.Error);

    e.Handled = true;
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a SendMailError Event</title>
</head>
<body>
  <form id="form1" runat="server">
  <div style="text-align:center">

    <h1>ChangePassword</h1>
    
    <asp:LoginView ID="LoginView1" Runat="server" 
      Visible="true">
      <LoggedInTemplate>
        <asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
        <br />
      </LoggedInTemplate>
      <AnonymousTemplate>
        You are not logged in
      </AnonymousTemplate>
    </asp:LoginView><br />
    
    <asp:ChangePassword ID="ChangePassword1" Runat="server"
      BorderStyle="Solid" 
      BorderWidth="1" 
      CancelDestinationPageUrl="~/Default.aspx" 
      DisplayUserName="true"
      OnSendingMail="MySendingMail" 
      OnSendMailError="MySendMailError" 
      ContinueDestinationPageUrl="~/Default.aspx" >
      <MailDefinition 
        BodyFileName="~\MailFiles\ChangePasswordMail.htm" 
        Subject="Activity information for you">
        <EmbeddedObjects>
          <asp:EmbeddedMailObject Name="LoginGif" Path="~\MailFiles\Login.gif" />
          <asp:EmbeddedMailObject Name="PrivacyNoticeTxt" Path="~\MailFiles\PrivacyNotice.txt" />
        </EmbeddedObjects>
      </MailDefinition>
    </asp:ChangePassword><br />
  
    <asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />

    <asp:HyperLink ID="HyperLink1" Runat="server" 
      NavigateUrl="~/Default.aspx">
      Home
    </asp:HyperLink>
    
  </div>
  </form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  Public Sub MySendingMail(ByVal Sender As Object, ByVal e As MailMessageEventArgs)
    Message1.Text = "Sent mail to you to confirm the password change."
  End Sub

  Public Sub MySendMailError(ByVal Sender As Object, ByVal e As SendMailErrorEventArgs)
    Message1.Text = "Could not send mail to confirm the password change."
    
    ' The MySamplesSite event source has already been created by an administrator.
    Dim myLog As System.Diagnostics.EventLog
    myLog = new System.Diagnostics.EventLog
    myLog.Log = "Application"
    myLog.Source = "MySamplesSite"
    myLog.WriteEntry("Sending mail via SMTP failed with the following error: " & e.Exception.Message.ToString(), System.Diagnostics.EventLogEntryType.Error)

    e.Handled = True
    
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
  <title>ChangePassword including a SendMailError Event</title>
</head>
<body>
  <form id="form1" runat="server">
  <div style="text-align:center">

    <h1>ChangePassword</h1>
    
    <asp:LoginView ID="LoginView1" Runat="server" 
      Visible="true">
      <LoggedInTemplate>
        <asp:LoginName ID="LoginName1" Runat="server" FormatString="You are logged in as {0}." />
        <br />
      </LoggedInTemplate>
      <AnonymousTemplate>
        You are not logged in
      </AnonymousTemplate>
    </asp:LoginView><br />
    
    <asp:ChangePassword ID="ChangePassword1" Runat="server"
      BorderStyle="Solid" 
      BorderWidth="1" 
      CancelDestinationPageUrl="~/Default.aspx" 
      DisplayUserName="true"
      OnSendingMail="MySendingMail" 
      OnSendMailError="MySendMailError" 
      ContinueDestinationPageUrl="~/Default.aspx" >
      <MailDefinition 
        BodyFileName="~\MailFiles\ChangePasswordMail.htm" 
        Subject="Activity information for you">
        <EmbeddedObjects>
          <asp:EmbeddedMailObject Name="LoginGif" Path="~\MailFiles\Login.gif" />
          <asp:EmbeddedMailObject Name="PrivacyNoticeTxt" Path="~\MailFiles\PrivacyNotice.txt" />
        </EmbeddedObjects>
      </MailDefinition>
    </asp:ChangePassword><br />
  
    <asp:Label ID="Message1" Runat="server" ForeColor="Red" /><br />

    <asp:HyperLink ID="HyperLink1" Runat="server" 
      NavigateUrl="~/Default.aspx">
      Home
    </asp:HyperLink>
    
  </div>
  </form>
</body>
</html>

Verwenden Sie das folgende Codebeispiel, wenn Sie die Ereignis Quelle namens MySamplesSite Programm gesteuert dem Anwendungsprotokoll hinzufügen müssen.Use the following code example if you need to programmatically add the event source named MySamplesSite to your Application log. Diese Ereignis Quelle muss vorhanden sein, damit das erste Codebeispiel ordnungsgemäß funktioniert.This event source must exist in order for the first code example to work correctly. Für das folgende Codebeispiel sind Administrator Rechte erforderlich.The following code example requires Administrator privileges.

#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

Hinweise

Das SendMailErrorEventArgs -Objekt enthält eine Fehlermeldung, die vom SMTP-Mail-Anbieter ausgelöst wird, wenn keine e-Mail ChangePassword -Nachricht vom- CreateUserWizard Steuerelement gesendet werden kann, oder das-Steuerelement.The SendMailErrorEventArgs object contains an error message that is raised by the SMTP mail provider when an email message cannot be sent by the ChangePassword control, or the CreateUserWizard control. In einem solchen Fall wird das SendMailErrorEventArgs Objekt an das SendMailErrorEventHandler-Objekt gesendet.In such a case, the SendMailErrorEventArgs object is sent to the SendMailErrorEventHandler.

Erstellen Sie SendMailErrorEventHandler einen Delegaten, um das Ereignis zu behandeln.Create a SendMailErrorEventHandler delegate to handle the event. Wenn Sie das-Ereignis behandeln, kann die Webanwendung auch dann weiterhin ausgeführt werden, wenn eine Ausnahme aufgetreten ist.Handling the event allows your Web application to continue to run even though an exception has occurred. Dies ist nützlich, wenn es nicht wichtig ist, eine e-Mail-Nachricht zu senden.This is useful when it is not critical to send an email message. Wenn z. b. die Ausnahme auftritt, wenn ein Benutzer einen mehrstufigen Assistenten durchläuft, kann es vorteilhaft sein, den Fehler zu protokollieren, eine informative Meldung für den Benutzer anzuzeigen und dem Benutzer das Beenden des Assistenten zu gestatten.For example, if the exception occurs when a user is working through a multi-step wizard, it can be advantageous to log the error, display an informative message to the user, and allow the user to complete the wizard.

Überprüfen Exception Sie die-Eigenschaft, um die tatsächliche Ursache der Ausnahme zu bestimmen.Examine the Exception property to determine the actual cause of the exception. Der häufigste Grund für die Ausnahme ist ein Konfigurationsfehler im <SMTP> -Element (Netzwerkeinstellungen) der Computer Konfigurationsdatei.The most common reason for the exception is a configuration error in the <smtp> Element (Network Settings) of the machine configuration file. Obwohl bei der Entwicklung und beim Debuggen einer Anwendung ein solcher Fehler normalerweise entdeckt wird, können e-Mail-Server in einer Produktionsumgebung unerwartet ausfallen, und Sie müssen bestimmen, ob die gesamte Anwendung in dieser Situation fehlschlagen soll.Although an error like this is typically discovered during the development and debugging of an application, mail servers can fail unexpectedly in a production environment, and you must determine whether you want the entire application to fail in that situation. Wenn dies nicht der Fall ist, kann die Anwendung durch Behandeln des Ereignisses fortgesetzt werden.If not, handling the event allows your application to proceed.

Sie müssen die Handled -Eigenschaft auf true festlegen, um zu signalisieren, dass die Ausnahme behandelt wurde. andernfalls wird die Ausnahme erneut ausgelöst, und es werden die ursprüngliche und die ursprüngliche Fehlermeldung angezeigt.You must set the Handled property to true to signal that the exception has been handled; otherwise, the exception is rethrown, and will include the original call stack and error message.

Wenn Sie keinen Ereignishandler für das SendMailError -Ereignis erstellen oder wenn Sie einen Ereignishandler erstellen, aber die-Eigenschaft auf falsefestgelegt lassen, wird die Handled Ausführung Ihrer Webanwendung beendet, wenn beim Senden einer e-Mail-Nachricht ein Fehler auftritt, und ASP.net zeigt eine Fehlermeldung an.If you do not create an event handler for the SendMailError event, or if you create an event handler but leave the Handled property set to false, your Web application will stop running if an error occurs when sending an email message, and ASP.NET will display an error message.

Die OnSendMailError -Methode ermöglicht es abgeleiteten Klassen auch, das-Ereignis zu behandeln, anstatt dies SendMailErrorEventHandlerdurch zu tun.The OnSendMailError method also allows derived classes to handle the event, instead of this being done by the SendMailErrorEventHandler. Dies ist die bevorzugte Methode für die Behandlung des Ereignisses in einer Klasse, die von ChangePassword oder CreateUserWizardabgeleitet wird.This is the preferred technique for handling the event in a class that is derived from ChangePassword or CreateUserWizard.

Weitere Informationen zur Behandlung von Ereignissen finden Sie unter Server Ereignis Behandlung auf ASP.net-Web Forms Seiten.For more information about handling events, see Server Event Handling in ASP.NET Web Forms Pages.

Hinweise für Vererber

Stellen Sie beim Überschreiben OnSendMailError(SendMailErrorEventArgs) ineinerabgeleitetenKlassesicher,dassdie-MethodederBasisklasseaufgerufenwird,damitregistrierteDelegatendasEreignisempfangenkönnen.OnSendMailError(SendMailErrorEventArgs)When overriding OnSendMailError(SendMailErrorEventArgs) in a derived class, be sure to call the OnSendMailError(SendMailErrorEventArgs) method of the base class to enable registered delegates to receive the event.

Konstruktoren

SendMailErrorEventArgs(Exception) SendMailErrorEventArgs(Exception) SendMailErrorEventArgs(Exception) SendMailErrorEventArgs(Exception)

Initialisiert eine neue Instanz der SendMailErrorEventArgs-Klasse.Initializes a new instance of the SendMailErrorEventArgs class.

Eigenschaften

Exception Exception Exception Exception

Gibt die Ausnahme zurück, die vom SMTP-Maildienst ausgelöst wird, wenn eine E-Mail nicht gesendet werden kann.Returns the exception thrown by an SMTP mail service when an email message cannot be sent.

Handled Handled Handled Handled

Gibt an, ob die in der Exception-Eigenschaft enthaltene SMTP-Ausnahme behandelt wurde.Indicates if the SMTP exception that is contained in the Exception property has been handled.

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch