EmbeddedMailObjectsCollection Класс

Определение

Представляет упорядоченный список объектов EmbeddedMailObject.Represents an ordered set of EmbeddedMailObject objects.

public ref class EmbeddedMailObjectsCollection sealed : System::Collections::CollectionBase
public sealed class EmbeddedMailObjectsCollection : System.Collections.CollectionBase
type EmbeddedMailObjectsCollection = class
    inherit CollectionBase
Public NotInheritable Class EmbeddedMailObjectsCollection
Inherits CollectionBase
Наследование
EmbeddedMailObjectsCollection

Примеры

В следующем примере кода показана страница ASP.NET, использующая ChangePassword веб-элемент управления и содержащая обработчик событий для SendingMail события с именем SendingMail .The following code example demonstrates an ASP.NET page that uses a ChangePassword Web control, and includes an event handler for the SendingMail event named SendingMail. В примере кода предполагается, что веб-сайт 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-сервера см. в разделе как установить и настроить виртуальные SMTP-серверы в IIS 6,0.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. Кроме того, событие заносится в журнал событий приложений 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.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>

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

Следующий пример кода можно использовать в качестве файла ChangePasswordMail.htm для предыдущего примера кода.The following example code can be used as the ChangePasswordMail.htm file for the preceding example code.

Важно!

Отправка имен учетных записей пользователей или паролей в сообщении электронной почты является потенциальной угрозой безопасности.Sending user account names or passwords in email is a potential security threat. Сообщения электронной почты обычно отправляются в виде обычного текста и могут быть прочитаны специальными сетевыми приложениями «перехвата».Email messages are typically sent in plain text and can be read by special network "sniffing" applications. Для повышения безопасности используйте способы защиты, описанные в статье Защита элементов управления входом.To improve security, use the mitigations that are described in Securing Login Controls.

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

Комментарии

EmbeddedMailObjectsCollectionХранит ссылки на элементы, которые будут внедрены в сообщение электронной почты.The EmbeddedMailObjectsCollection stores references to items that will be embedded in an email message. Внедренными элементами могут быть файлы изображений, например эмблемы компании.The embedded items can be image files such as company logos. EmbeddedMailObjectsCollection EmbeddedObjects Объект используется свойством MailDefinition объекта.The EmbeddedMailObjectsCollection is used by the EmbeddedObjects property of the MailDefinition object.

Сообщения электронной почты, которые разрешают внедренные объекты, можно настроить в следующих веб-элементах управления, задав их MailDefinition свойства декларативно:Email messages that allow embedded objects are configurable in the following Web controls by setting their MailDefinition properties declaratively:

Примечание

Значения в EmbeddedMailObject EmbeddedMailObjectsCollection объектах и не хранятся в состоянии представления.The values in the EmbeddedMailObject and EmbeddedMailObjectsCollection objects are not stored in view state. Это обеспечивает защиту от вредоносных пользователей, которые обнаруживают сведения о пути для сервера.This protects against malicious users discovering path information for your server.

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

EmbeddedMailObjectsCollection()

Инициализирует новый экземпляр класса EmbeddedMailObjectsCollection.Initializes a new instance of the EmbeddedMailObjectsCollection class.

Свойства

Capacity

Возвращает или задает число элементов, которое может содержать список CollectionBase.Gets or sets the number of elements that the CollectionBase can contain.

(Унаследовано от CollectionBase)
Count

Возвращает количество элементов, содержащихся в экземпляре CollectionBase.Gets the number of elements contained in the CollectionBase instance. Это свойство нельзя переопределить.This property cannot be overridden.

(Унаследовано от CollectionBase)
InnerList

Возвращает объект ArrayList, в котором хранится список элементов экземпляра класса CollectionBase.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Унаследовано от CollectionBase)
Item[Int32]

Возвращает конкретный элемент EmbeddedMailObjectsCollection, идентифицируемый его позицией.Returns a specific element of a EmbeddedMailObjectsCollection, identified by its position.

List

Возвращает объект IList, в котором хранится список элементов экземпляра класса CollectionBase.Gets an IList containing the list of elements in the CollectionBase instance.

(Унаследовано от CollectionBase)

Методы

Add(EmbeddedMailObject)

Добавляет объект EmbeddedMailObject в конец коллекции EmbeddedMailObjectsCollection.Adds an EmbeddedMailObject to the end of the EmbeddedMailObjectsCollection collection.

Clear()

Удаляет все объекты из экземпляра класса CollectionBase.Removes all objects from the CollectionBase instance. Этот метод не может быть переопределен.This method cannot be overridden.

(Унаследовано от CollectionBase)
Contains(EmbeddedMailObject)

Определяет, содержит ли коллекция EmbeddedMailObjectsCollection конкретный объект EmbeddedMailObject.Determines whether the EmbeddedMailObjectsCollection contains a specific EmbeddedMailObject.

CopyTo(EmbeddedMailObject[], Int32)

Копирует объекты коллекции в экземпляр одномерного массива Array, начиная с указанного индекса.Copies the collection objects to a one-dimensional Array instance beginning at the specified index in the array.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, перебирающий элементы экземпляра класса CollectionBase.Returns an enumerator that iterates through the CollectionBase instance.

(Унаследовано от CollectionBase)
GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Унаследовано от Object)
IndexOf(EmbeddedMailObject)

Определяет индекс конкретного объекта EmbeddedMailObject в коллекции EmbeddedMailObjectsCollection.Determines the index of a specific EmbeddedMailObject in the EmbeddedMailObjectsCollection.

Insert(Int32, EmbeddedMailObject)

Вставляет объект EmbeddedMailObject в объект EmbeddedMailObjectsCollection по указанной позиции индекса.Inserts an EmbeddedMailObject into the EmbeddedMailObjectsCollection object at the specified index position.

MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Унаследовано от Object)
OnClear()

Выполняет дополнительные пользовательские действия при очистке содержимого экземпляра CollectionBase.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Унаследовано от CollectionBase)
OnClearComplete()

Осуществляет дополнительные пользовательские действия после удаления содержимого экземпляра класса CollectionBase.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Унаследовано от CollectionBase)
OnInsert(Int32, Object)

Выполняет дополнительные пользовательские действия перед вставкой нового элемента в экземпляр класса CollectionBase.Performs additional custom processes before inserting a new element into the CollectionBase instance.

(Унаследовано от CollectionBase)
OnInsertComplete(Int32, Object)

Выполняет дополнительные пользовательские действия после вставки нового элемента в экземпляр класса CollectionBase.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Унаследовано от CollectionBase)
OnRemove(Int32, Object)

Осуществляет дополнительные пользовательские действия при удалении элемента из экземпляра класса CollectionBase.Performs additional custom processes when removing an element from the CollectionBase instance.

(Унаследовано от CollectionBase)
OnRemoveComplete(Int32, Object)

Осуществляет дополнительные пользовательские действия после удаления элемента из экземпляра класса CollectionBase.Performs additional custom processes after removing an element from the CollectionBase instance.

(Унаследовано от CollectionBase)
OnSet(Int32, Object, Object)

Выполняет дополнительные пользовательские действия перед заданием значения в экземпляре класса CollectionBase.Performs additional custom processes before setting a value in the CollectionBase instance.

(Унаследовано от CollectionBase)
OnSetComplete(Int32, Object, Object)

Выполняет дополнительные пользовательские действия после задания значения в экземпляре класса CollectionBase.Performs additional custom processes after setting a value in the CollectionBase instance.

(Унаследовано от CollectionBase)
OnValidate(Object)

Выполняет дополнительные пользовательские операции при проверке значения.Performs additional custom processes when validating a value.

(Унаследовано от CollectionBase)
Remove(EmbeddedMailObject)

Удаляет первое вхождение указанного объекта EmbeddedMailObject из объекта EmbeddedMailObjectsCollection.Removes the first occurrence of the specified EmbeddedMailObject from the EmbeddedMailObjectsCollection.

RemoveAt(Int32)

Удаляет элемент по указанному индексу в экземпляре класса CollectionBase.Removes the element at the specified index of the CollectionBase instance. Этот метод нельзя переопределить.This method is not overridable.

(Унаследовано от CollectionBase)
ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.CopyTo(Array, Int32)

Копирует целый массив CollectionBase в совместимый одномерный массив Array, начиная с заданного индекса целевого массива.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(Унаследовано от CollectionBase)
ICollection.IsSynchronized

Возвращает значение, показывающее, является ли доступ к коллекции CollectionBase синхронизированным (потокобезопасным).Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(Унаследовано от CollectionBase)
ICollection.SyncRoot

Получает объект, с помощью которого можно синхронизировать доступ к коллекции CollectionBase.Gets an object that can be used to synchronize access to the CollectionBase.

(Унаследовано от CollectionBase)
IList.Add(Object)

Добавляет объект в конец коллекции CollectionBase.Adds an object to the end of the CollectionBase.

(Унаследовано от CollectionBase)
IList.Contains(Object)

Определяет, содержит ли интерфейс CollectionBase определенный элемент.Determines whether the CollectionBase contains a specific element.

(Унаследовано от CollectionBase)
IList.IndexOf(Object)

Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в коллекцию CollectionBase.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(Унаследовано от CollectionBase)
IList.Insert(Int32, Object)

Вставляет элемент в коллекцию CollectionBase по указанному индексу.Inserts an element into the CollectionBase at the specified index.

(Унаследовано от CollectionBase)
IList.IsFixedSize

Получает значение, указывающее, имеет ли список CollectionBase фиксированный размер.Gets a value indicating whether the CollectionBase has a fixed size.

(Унаследовано от CollectionBase)
IList.IsReadOnly

Получает значение, указывающее, является ли объект CollectionBase доступным только для чтения.Gets a value indicating whether the CollectionBase is read-only.

(Унаследовано от CollectionBase)
IList.Item[Int32]

Возвращает или задает элемент по указанному индексу.Gets or sets the element at the specified index.

(Унаследовано от CollectionBase)
IList.Remove(Object)

Удаляет первое вхождение указанного объекта из коллекции CollectionBase.Removes the first occurrence of a specific object from the CollectionBase.

(Унаследовано от CollectionBase)

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

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

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