Поделиться через


EmbeddedMailObject Конструкторы

Определение

Инициализирует новый экземпляр класса EmbeddedMailObject.

Перегрузки

Имя Описание
EmbeddedMailObject()

Инициализирует новый экземпляр класса EmbeddedMailObject.

EmbeddedMailObject(String, String)

Инициализирует новый экземпляр класса, используя указанное имя идентификатора EmbeddedMailObject и путь для заполнения объекта.

EmbeddedMailObject()

Инициализирует новый экземпляр класса EmbeddedMailObject.

public:
 EmbeddedMailObject();
public EmbeddedMailObject();
Public Sub New ()

Комментарии

Чтобы получить или задать идентификатор внедренного элемента, используйте Name свойство. Чтобы получить или задать путь к внедренным элементам, используйте Path свойство. Оба свойства должны быть установлены для успешного внедрения элемента в почтовое сообщение.

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

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

EmbeddedMailObject(String, String)

Инициализирует новый экземпляр класса, используя указанное имя идентификатора EmbeddedMailObject и путь для заполнения объекта.

public:
 EmbeddedMailObject(System::String ^ name, System::String ^ path);
public EmbeddedMailObject(string name, string path);
new System.Web.UI.WebControls.EmbeddedMailObject : string * string -> System.Web.UI.WebControls.EmbeddedMailObject
Public Sub New (name As String, path As String)

Параметры

name
String

Имя, используемое в качестве идентификатора элемента для внедрения в почтовое сообщение. Дополнительные сведения см. в разделе Name.

path
String

Путь, используемый для извлечения элемента для внедрения в почтовое сообщение. Дополнительные сведения см. в разделе Path.

Примеры

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

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

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

В следующем примере кода показано использование файла программной части.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

public partial class ChangePassword_cs_aspx : System.Web.UI.Page
{
    protected void Page_Load(Object sender, EventArgs e)
    {
        // Manually register the event-handling methods.
        ChangePassword1.SendingMail += new MailMessageEventHandler(this._SendingMail);
        ChangePassword1.SendMailError += new SendMailErrorEventHandler(this._SendMailError);

        ChangePassword1.MailDefinition.BodyFileName = "~/Attachments/ChangePasswordMail.htm";

        EmbeddedMailObject loginGif = new EmbeddedMailObject();
        loginGif.Name = "LoginGif";
        loginGif.Path = "~/Attachments/Login.gif";

        EmbeddedMailObject privacyNoticeTxt = new EmbeddedMailObject();
        privacyNoticeTxt.Name = "PrivacyNoticeTxt";
        privacyNoticeTxt.Path = "~/Attachments/PrivacyNotice.txt";

        ChangePassword1.MailDefinition.EmbeddedObjects.Add(loginGif);
        ChangePassword1.MailDefinition.EmbeddedObjects.Add(privacyNoticeTxt);
    }

    protected void _SendingMail(object sender, MailMessageEventArgs e)
    {
        Message1.Visible = true;
        Message1.Text = "Sent mail to you to confirm the password change.";

        System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress("someone@example.com", "Someone");
        System.Net.Mail.MailAddress copy = new System.Net.Mail.MailAddress("someone@example.com", "Someone");

        e.Message.From = from;
        e.Message.CC.Add(copy);
        e.Message.Subject = "Activity information for you";
        e.Message.IsBodyHtml = true;
    }

    protected void _SendMailError(object sender, SendMailErrorEventArgs e)
    {
        Message1.Visible = true;
        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.Source = "MySamplesSite";
        myLog.Log = "Application";
        myLog.WriteEntry(
          "Sending mail via SMTP failed with the following error: " +
          e.Exception.Message.ToString(),
          System.Diagnostics.EventLogEntryType.Error);

        e.Handled = true;
    }
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Partial Class ChangePassword_vb_aspx
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal Sender As Object, ByVal e As System.EventArgs)
        AddHandler ChangePassword1.SendingMail, AddressOf Me._SendingMail
        AddHandler ChangePassword1.SendMailError, AddressOf Me._SendMailError
        ChangePassword1.MailDefinition.BodyFileName = "~/Attachments/ChangePasswordMail.htm"
        ChangePassword1.MailDefinition.Cc = "someone@example.com"
        ChangePassword1.MailDefinition.From = "someone@example.com"

        Dim loginGif As New EmbeddedMailObject
        loginGif.Name = "LoginGif"
        loginGif.Path = "~/Attachments/Login.gif"

        Dim privacyNoticeTxt As New EmbeddedMailObject
        privacyNoticeTxt.Name = "PrivacyNoticeTxt"
        privacyNoticeTxt.Path = "~/Attachments/PrivacyNotice.txt"

        ChangePassword1.MailDefinition.EmbeddedObjects.Add(loginGif)
        ChangePassword1.MailDefinition.EmbeddedObjects.Add(privacyNoticeTxt)
    End Sub

    Protected Sub _SendingMail(ByVal Sender As Object, ByVal e As MailMessageEventArgs)
        Message1.Visible = True
        Message1.Text = "Sent mail to you to confirm the password change."

        e.Message.Subject = "Activity information for you"
        e.Message.IsBodyHtml = True

    End Sub

    Protected Sub _SendMailError(ByVal Sender As Object, ByVal e As SendMailErrorEventArgs)
        Message1.Visible = True
        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

End Class

Используйте следующий пример кода, если необходимо программно добавить источник событий 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>

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

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