EmbeddedMailObjectsCollection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет упорядоченный список объектов EmbeddedMailObject.
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
- Наследование
Примеры
В следующем примере кода показана страница ASP.NET, которая использует ChangePassword веб-элемент управления и включает обработчик событий для SendingMail события с именем SendingMail
. В примере кода предполагается, что веб-сайт ASP.NET настроен для использования ASP.NET членства и проверки подлинности с помощью форм, а также что создан пользователь, имя и пароль которого вам известны. Дополнительные сведения см. в разделе Практическое руководство. Реализация простой проверки подлинности с помощью форм.
Если смена пароля выполнена успешно, код в обработчике SendingMail
событий пытается отправить пользователю сообщение электронной почты для подтверждения изменения. Чтобы этот пример кода работал, необходимо уже настроить SMTP на сервере. Сведения о настройке SMTP-сервера см. в разделе Практическое руководство. Установка и настройка виртуальных серверов SMTP в IIS 6.0. Для целей этого примера не требуется настраивать SMTP-сервер; Пример создан для проверки на наличие ошибки при отправке сообщения электронной почты.
Если почтовый сервер настроен неправильно или возникает другая ошибка и сообщение электронной почты не может быть отправлено, SendMailError
вызывается функция . Пользователю отобразится сообщение. Кроме того, событие регистрируется в журнале событий приложений Windows с предположением, что источник события с именем MySamplesSite уже существует. См. пример кода ниже, чтобы создать указанный источник события. Дополнительные сведения о создании источника событий см. в разделе Server Event Handling in ASP.NET Web Forms Pages. Свойство HandledSendMailErrorEventArgs объекта имеет значение , true
чтобы указать, что ошибка была обработана.
<%@ 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 в журнал приложений. Этот источник событий должен существовать, чтобы первый пример кода работал правильно. В следующем примере кода требуются права администратора.
#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 для предыдущего примера кода.
Важно!
Отправка имен учетных записей пользователей или паролей по электронной почте является потенциальной угрозой безопасности. Сообщения электронной почты обычно отправляются в виде обычного текста и могут быть прочитаны специальными сетевыми "нюхающими" приложениями. Чтобы повысить безопасность, используйте меры по устранению рисков, описанные в разделе Защита элементов управления входом.
<html>
<head><title></title></head>
<body>
<form>
<h1>Your password for the account named "<%Username%>" 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 ссылки на элементы, которые будут внедрены в сообщение электронной почты. Внедренные элементы могут быть файлами изображений, такими как логотипы компании. Используется EmbeddedMailObjectsCollection свойством EmbeddedObjectsMailDefinition объекта .
Сообщения электронной почты, разрешающие внедренные объекты, можно настроить в следующих веб-элементах управления, задав их MailDefinition свойства декларативно:
Примечание
Значения в объектах EmbeddedMailObject и EmbeddedMailObjectsCollection не хранятся в состоянии представления. Это защищает от злоумышленников, обнаруживающих сведения о пути для вашего сервера.
Конструкторы
EmbeddedMailObjectsCollection() |
Инициализирует новый экземпляр класса EmbeddedMailObjectsCollection. |
Свойства
Capacity |
Возвращает или задает число элементов, которое может содержать список CollectionBase. (Унаследовано от CollectionBase) |
Count |
Возвращает количество элементов, содержащихся в экземпляре CollectionBase. Это свойство нельзя переопределить. (Унаследовано от CollectionBase) |
InnerList |
Возвращает объект ArrayList, в котором хранится список элементов экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
Item[Int32] |
Возвращает конкретный элемент EmbeddedMailObjectsCollection, идентифицируемый его позицией. |
List |
Возвращает объект IList, в котором хранится список элементов экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
Методы
Add(EmbeddedMailObject) |
Добавляет объект EmbeddedMailObject в конец коллекции EmbeddedMailObjectsCollection. |
Clear() |
Удаляет все объекты из экземпляра класса CollectionBase. Этот метод не может быть переопределен. (Унаследовано от CollectionBase) |
Contains(EmbeddedMailObject) |
Определяет, содержит ли коллекция EmbeddedMailObjectsCollection конкретный объект EmbeddedMailObject. |
CopyTo(EmbeddedMailObject[], Int32) |
Копирует объекты коллекции в экземпляр одномерного массива Array, начиная с указанного индекса. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetEnumerator() |
Возвращает перечислитель, перебирающий элементы экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IndexOf(EmbeddedMailObject) |
Определяет индекс конкретного объекта EmbeddedMailObject в коллекции EmbeddedMailObjectsCollection. |
Insert(Int32, EmbeddedMailObject) |
Вставляет объект EmbeddedMailObject в объект EmbeddedMailObjectsCollection по указанной позиции индекса. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnClear() |
Выполняет дополнительные пользовательские действия при очистке содержимого экземпляра CollectionBase. (Унаследовано от CollectionBase) |
OnClearComplete() |
Осуществляет дополнительные пользовательские действия после удаления содержимого экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
OnInsert(Int32, Object) |
Выполняет дополнительные пользовательские действия перед вставкой нового элемента в экземпляр класса CollectionBase. (Унаследовано от CollectionBase) |
OnInsertComplete(Int32, Object) |
Выполняет дополнительные пользовательские действия после вставки нового элемента в экземпляр класса CollectionBase. (Унаследовано от CollectionBase) |
OnRemove(Int32, Object) |
Осуществляет дополнительные пользовательские действия при удалении элемента из экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
OnRemoveComplete(Int32, Object) |
Осуществляет дополнительные пользовательские действия после удаления элемента из экземпляра класса CollectionBase. (Унаследовано от CollectionBase) |
OnSet(Int32, Object, Object) |
Выполняет дополнительные пользовательские действия перед заданием значения в экземпляре класса CollectionBase. (Унаследовано от CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Выполняет дополнительные пользовательские действия после задания значения в экземпляре класса CollectionBase. (Унаследовано от CollectionBase) |
OnValidate(Object) |
Выполняет дополнительные пользовательские операции при проверке значения. (Унаследовано от CollectionBase) |
Remove(EmbeddedMailObject) |
Удаляет первое вхождение указанного объекта EmbeddedMailObject из объекта EmbeddedMailObjectsCollection. |
RemoveAt(Int32) |
Удаляет элемент по указанному индексу в экземпляре класса CollectionBase. Этот метод нельзя переопределить. (Унаследовано от CollectionBase) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
ICollection.CopyTo(Array, Int32) |
Копирует целый массив CollectionBase в совместимый одномерный массив Array, начиная с заданного индекса целевого массива. (Унаследовано от CollectionBase) |
ICollection.IsSynchronized |
Возвращает значение, показывающее, является ли доступ к коллекции CollectionBase синхронизированным (потокобезопасным). (Унаследовано от CollectionBase) |
ICollection.SyncRoot |
Получает объект, с помощью которого можно синхронизировать доступ к коллекции CollectionBase. (Унаследовано от CollectionBase) |
IList.Add(Object) |
Добавляет объект в конец коллекции CollectionBase. (Унаследовано от CollectionBase) |
IList.Contains(Object) |
Определяет, содержит ли интерфейс CollectionBase определенный элемент. (Унаследовано от CollectionBase) |
IList.IndexOf(Object) |
Осуществляет поиск указанного объекта Object и возвращает отсчитываемый от нуля индекс первого вхождения в коллекцию CollectionBase. (Унаследовано от CollectionBase) |
IList.Insert(Int32, Object) |
Вставляет элемент в коллекцию CollectionBase по указанному индексу. (Унаследовано от CollectionBase) |
IList.IsFixedSize |
Получает значение, указывающее, имеет ли список CollectionBase фиксированный размер. (Унаследовано от CollectionBase) |
IList.IsReadOnly |
Получает значение, указывающее, является ли объект CollectionBase доступным только для чтения. (Унаследовано от CollectionBase) |
IList.Item[Int32] |
Возвращает или задает элемент по указанному индексу. (Унаследовано от CollectionBase) |
IList.Remove(Object) |
Удаляет первое вхождение указанного объекта из коллекции CollectionBase. (Унаследовано от CollectionBase) |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |