SendMailErrorEventArgs 클래스

정의

ChangePassword 컨트롤, CreateUserWizard 컨트롤 및 PasswordRecovery 컨트롤 같은 컨트롤의 SendMailError 이벤트에 대한 데이터를 제공합니다.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
상속
SendMailErrorEventArgs

예제

다음 코드 예제를 사용 하는 ASP.NET 페이지를 보여 줍니다.는 ChangePassword 웹 컨트롤 및 이벤트 처리기를 포함 합니다 SendMailError SendMailError 라는 이벤트입니다.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. 코드 예제에서는 ASP.NET 멤버 자격 및 폼 인증 및 사용자가 만들어졌는지 해당 이름 및 암호를 알고 사용 하 여 ASP.NET 웹 사이트를 구성한 경우를 가정 합니다.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. 자세한 내용은 방법: 간단한 폼 인증 구현합니다.For more information, see How to: Implement Simple Forms Authentication.

암호 변경에 성공 하면 코드를 SendingMail 이벤트 처리기를 변경할 것인지 사용자에 게 전자 메일 메시지를 보내려고 시도 합니다.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 서버의 작동 하려면이 코드 예제에 대 한 순서에 이미 구성 되어야 합니다.SMTP must already be configured on the server in order for this code example to work. SMTP 서버를 구성 하는 방법에 대 한 자세한 내용은 방법: IIS 6.0에서 Smtp 가상 서버 설치 및 구성을 참조 하세요.For information about how to configure an SMTP server, see How to: Install and Configure SMTP Virtual Servers in IIS 6.0. 이 예제에서는 필요 없는 SMTP 서버를 구성 하려면 이 예제에서는 전자 메일 메시지를 보내는 오류에 대 한 테스트에 생성 됩니다.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.

메일 서버가 올바르게 구성 되지 않았습니다. 또는 다른 오류가 발생 하 고 전자 메일 메시지를 보낼 수 없는 경우는 SendMailError 함수를 호출 합니다.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. 사용자에 게 메시지가 표시 됩니다.A message is displayed to the user. 또한 이벤트는 이미 MySamplesSite 라는 이벤트 소스가 있는지 가정을 사용 하 여 Windows 애플리케이션 이벤트 로그에 기록 됩니다.In addition, an event is logged to the Windows Application event log with the assumption that an event source named MySamplesSite already exists. 지정된 된 이벤트 소스를 만들려면 다음 코드 예제를 참조 하세요.See the code example below to create the specified event source. 이벤트 소스를 만드는 방법에 대 한 자세한 내용은 참조 하세요. ASP.NET Web Forms 페이지에서 서버 이벤트 처리합니다.For more information about creating an event source, see Server Event Handling in ASP.NET Web Forms Pages. 합니다 Handled 의 속성을 SendMailErrorEventArgs 개체로 설정 됩니다 true 오류가 처리 된 것을 나타내기 위해.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>

프로그래밍 방식으로 애플리케이션 로그에 MySamplesSite 라는 이벤트 소스를 추가 해야 하는 경우 다음 코드 예제를 사용 합니다.Use the following code example if you need to programmatically add the event source named MySamplesSite to your Application log. 이 이벤트 소스는 제대로 작동 하려면 첫 번째 코드 예제에 대 한 순서로 존재 해야 합니다.This event source must exist in order for the first code example to work correctly. 다음 코드 예제에는 관리자 권한이 필요합니다.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

설명

합니다 SendMailErrorEventArgs 하 여 전자 메일 메시지를 보낼 수 없을 때 SMTP 메일 공급자에 의해 발생 하는 오류 메시지를 포함 하는 개체를 ChangePassword 컨트롤 또는 CreateUserWizard 컨트롤입니다.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. 이러한 경우에는 SendMailErrorEventArgs 개체는 전송할는 SendMailErrorEventHandler합니다.In such a case, the SendMailErrorEventArgs object is sent to the SendMailErrorEventHandler.

만들기는 SendMailErrorEventHandler 이벤트를 처리 하는 대리자입니다.Create a SendMailErrorEventHandler delegate to handle the event. 이벤트 처리를 통해 웹 애플리케이션을 계속 해 서 예외가 발생 하더라도 실행 합니다.Handling the event allows your Web application to continue to run even though an exception has occurred. 전자 메일 메시지를 보내는 중요 하지 않은 경우에 유용 합니다.This is useful when it is not critical to send an email message. 예를 들어, 다중 단계 마법사를 통해 사용자가 작업 하는 경우 예외가 발생 하는 경우에 오류를 기록, 정보 메시지를 사용자에 게 표시 및 사용자가 마법사를 완료 하도록 허용 하는 것이 좋습니다 수 있습니다.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.

검사는 Exception 예외의 실제 원인을 확인 하는 속성입니다.Examine the Exception property to determine the actual cause of the exception. 예외에 대 한 가장 일반적인 이유는 컴퓨터 구성 파일의 < smtp > 요소 (네트워크 설정) 에서 구성 오류가 발생 한 것입니다.The most common reason for the exception is a configuration error in the <smtp> Element (Network Settings) of the machine configuration file. 하지만 다음과 같은 오류에는 일반적으로 개발 하는 동안 검색 되어이 한 애플리케이션의 디버깅, 메일 서버가 예기치 않게 실패할 수 프로덕션 환경에서 하 고 전체 애플리케이션이 이러한 상황에서는 실패할 것인지 결정 해야 키를 누릅니다.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. 그렇지 않은 경우 이벤트를 처리 하면 계속 하려면 애플리케이션이 있습니다.If not, handling the event allows your application to proceed.

설정 해야 합니다는 Handled 속성을 true 신호 예외가 처리 되었으면이 고 그렇지, 예외가 다시 throw 되 고 원래 호출 스택과 오류 메시지가 포함 됩니다.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.

이벤트 처리기를 만들지 않도록 하는 경우는 SendMailError 이벤트를 쓰여 졌지만 이벤트 처리기를 만드는 경우 또는 합니다 Handled 속성으로 설정 false, 웹 애플리케이션의 전자 메일 메시지를 보낼 때 오류가 발생 하면 실행이 중지 됨 및 ASP.NET은 오류 메시지를 표시 합니다.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.

합니다 OnSendMailError 방법을 사용 하는 대신 이벤트를 처리 하기 위해 파생된 클래스 수를 SendMailErrorEventHandler입니다.The OnSendMailError method also allows derived classes to handle the event, instead of this being done by the SendMailErrorEventHandler. 파생 된 클래스에서 이벤트를 처리 하는 기본 방법 이것이 ChangePassword 또는 CreateUserWizard합니다.This is the preferred technique for handling the event in a class that is derived from ChangePassword or CreateUserWizard.

이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 하세요. ASP.NET Web Forms 페이지에서 서버 이벤트 처리합니다.For more information about handling events, see Server Event Handling in ASP.NET Web Forms Pages.

상속자 참고

재정의 하는 경우 OnSendMailError(SendMailErrorEventArgs) 파생된 클래스에서 호출 해야 합니다 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.

생성자

SendMailErrorEventArgs(Exception)

SendMailErrorEventArgs 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the SendMailErrorEventArgs class.

속성

Exception

이메일 메시지를 보낼 수 없을 때 SMTP 메일 서비스에서 throw된 예외를 반환합니다.Returns the exception thrown by an SMTP mail service when an email message cannot be sent.

Handled

Exception 속성에 포함된 SMTP 예외가 처리되었는지 여부를 나타냅니다.Indicates if the SMTP exception that is contained in the Exception property has been handled.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상

추가 정보