ChangePassword.OnSendingMail(MailMessageEventArgs) Метод

Определение

SendingMail Вызывает событие перед отправкой сообщения электронной почты на SMTP-сервер для обработки. Затем SMTP-сервер отправляет пользователю сообщение электронной почты.

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)

Параметры

e
MailMessageEventArgs

MailMessageEventArgs Объект, содержащий данные события.

Примеры

В следующем примере кода показана страница ASP.NET, использующая ChangePassword веб-элемент управления, и включает обработчик событий для SendingMail события с именем SendingMail. В примере кода предполагается, что веб-сайт ASP.NET настроен для использования ASP.NET членства и проверки подлинности форм, и что пользователь был создан, имя и пароль которого известны вам. Дополнительные сведения см. в разделе "Практическое руководство. Реализация простой проверки подлинности форм".

Если изменение пароля выполнено успешно, код пытается использовать SMTP для отправки пользователю сообщения электронной почты, чтобы подтвердить это изменение. Это делается в обработчикеSendingMail событий. Сведения о настройке SMTP-сервера см. в статье "Практическое руководство. Установка и настройка виртуальных серверов SMTP в IIS 6.0". В этом примере не требуется настраивать SMTP-сервер; Пример создается для проверки сбоя отправки сообщения электронной почты.

Если почтовый сервер настроен неправильно или возникает другая ошибка, и сообщение электронной почты не может быть отправлено, SendMailError вызывается функция. Для пользователя отображается сообщение. Кроме того, событие регистрируется в журнале событий приложения Windows с предположением, что источник событий с именем MySamplesSite уже существует. Дополнительные сведения о создании источника событий см. в разделе "Обработка событий сервера" на страницах веб-форм ASP.NET. Свойство HandledSendMailErrorEventArgs объекта имеет значение, указывающее true , что ошибка была обработана.

Используйте следующий пример кода, если необходимо программно добавить источник событий MySamplesSite в журнал приложений. Этот источник событий должен существовать, чтобы первый пример кода работал правильно. В следующем примере кода требуются права администратора.

#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

Следующий пример кода можно использовать в качестве файла ChangePasswordMail.htm для предыдущего примера кода.

Это важно

Отправка имен учетных записей пользователей или паролей в электронной почте является потенциальной угрозой безопасности. Сообщения электронной почты обычно отправляются в виде обычного текста и могут читаться специальными приложениями сети "sniffing". Чтобы повысить безопасность, используйте способы устранения рисков, описанные в разделе "Защита элементов управления именами входа".

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

Комментарии

OnSendingMail Используйте метод для изменения сообщения электронной почты, отправленного пользователям после изменения пароля. Свойство MessageMailMessageEventArgs объекта будет отправлено на SMTP-сервер для обработки. Измените свойства MailMessage объекта, чтобы изменить сообщение электронной почты.

Сообщения электронной почты создаются только в том случае, если BodyFileName свойство объекта, указанного MailDefinitionMailDefinition свойством, указывает на допустимое имя файла.

Это важно

Отправка имен учетных записей пользователей или паролей в электронной почте является потенциальной угрозой безопасности. Сообщения электронной почты обычно отправляются в виде обычного текста и могут читаться специальными приложениями сети "sniffing". Чтобы повысить безопасность, используйте способы устранения рисков, описанные в разделе "Защита элементов управления именами входа".

При вызове события обработчик событий вызывается через делегат. Дополнительные сведения см. в разделе "Обработка событий сервера" на страницах веб-форм ASP.NET.

Метод OnSendingMail также позволяет производным классам обрабатывать событие без присоединения делегата. Это предпочтительный способ обработки события в производном классе.

Примечания для тех, кто наследует этот метод

При переопределении OnSendingMail(MailMessageEventArgs) метода в производном классе обязательно вызовите OnSendingMail(MailMessageEventArgs) метод для базового класса, чтобы зарегистрированные делегаты получали событие.

Применяется к

См. также раздел