EmbeddedMailObjectsCollection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje uporządkowany EmbeddedMailObject zestaw obiektów.
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
- Dziedziczenie
Przykłady
Poniższy przykład kodu przedstawia stronę ASP.NET, która używa kontrolki sieci Web i zawiera procedurę ChangePassword obsługi zdarzeń dla SendingMail zdarzenia o nazwie SendingMail
. W przykładzie kodu przyjęto założenie, że witryna sieci Web ASP.NET została skonfigurowana do używania ASP.NET członkostwa i uwierzytelniania formularzy oraz że użytkownik został utworzony, którego nazwa i hasło są dla Ciebie znane. Aby uzyskać więcej informacji, zobacz Instrukcje: implementowanie uwierzytelniania prostych formularzy.
Jeśli zmiana hasła powiedzie się, kod w SendingMail
procedurze obsługi zdarzeń próbuje wysłać wiadomość e-mail do użytkownika w celu potwierdzenia zmiany. Protokół SMTP musi być już skonfigurowany na serwerze, aby ten przykład kodu działał. Aby uzyskać informacje o sposobie konfigurowania serwera SMTP, zobacz How to: Install and Configure SMTP Virtual Servers in IIS 6.0 (Instrukcje: instalowanie i konfigurowanie serwerów wirtualnych SMTP w usługach IIS 6.0). Na potrzeby tego przykładu nie jest konieczne skonfigurowanie serwera SMTP; przykład jest skonstruowany w celu przetestowania błędu wysyłania wiadomości e-mail.
Jeśli serwer poczty nie jest poprawnie skonfigurowany lub wystąpi inny błąd i nie można wysłać wiadomości e-mail, funkcja jest wywoływana SendMailError
. Użytkownikowi zostanie wyświetlony komunikat. Ponadto zdarzenie jest rejestrowane w dzienniku zdarzeń aplikacji systemu Windows z założeniem, że źródło zdarzeń o nazwie MySamplesSite już istnieje. Zobacz poniższy przykład kodu, aby utworzyć określone źródło zdarzeń. Aby uzyskać więcej informacji na temat tworzenia źródła zdarzeń, zobacz Obsługa zdarzeń serwera w ASP.NET stron formularzy sieci Web. Właściwość HandledSendMailErrorEventArgs obiektu jest ustawiona na wartość , aby wskazać true
, że błąd został obsłużony.
<%@ 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>
Użyj poniższego przykładu kodu, jeśli musisz programowo dodać źródło zdarzeń o nazwie MySamplesSite do dziennika aplikacji. To źródło zdarzeń musi istnieć, aby pierwszy przykład kodu działał poprawnie. Poniższy przykład kodu wymaga uprawnień administratora.
#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
Poniższy przykładowy kod może służyć jako plik ChangePasswordMail.htm dla poprzedniego przykładowego kodu.
Ważne
Wysyłanie nazw kont użytkowników lub haseł w wiadomości e-mail jest potencjalnym zagrożeniem bezpieczeństwa. Wiadomości e-mail są zwykle wysyłane w postaci zwykłego tekstu i mogą być odczytywane przez specjalne aplikacje sieciowe "sniffing". Aby zwiększyć bezpieczeństwo, użyj środków zaradczych opisanych w temacie Zabezpieczanie kontrolek logowania.
<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>
Uwagi
Przechowuje EmbeddedMailObjectsCollection odwołania do elementów, które zostaną osadzone w wiadomości e-mail. Osadzone elementy mogą być plikami obrazów, takimi jak logo firmy. Właściwość EmbeddedMailObjectsCollection jest używana przez EmbeddedObjects właściwość MailDefinition obiektu.
Wiadomości e-mail, które zezwalają na obiekty osadzone, można skonfigurować w następujących kontrolkach sieci Web, ustawiając ich MailDefinition właściwości deklaratywnie:
Uwaga
Wartości w EmbeddedMailObject obiektach i EmbeddedMailObjectsCollection nie są przechowywane w stanie widoku. Chroni to przed złośliwymi użytkownikami, którzy odnajdyją informacje o ścieżce dla serwera.
Konstruktory
EmbeddedMailObjectsCollection() |
Inicjuje nowe wystąpienie klasy EmbeddedMailObjectsCollection. |
Właściwości
Capacity |
Pobiera lub ustawia liczbę elementów, które CollectionBase mogą zawierać. (Odziedziczone po CollectionBase) |
Count |
Pobiera liczbę elementów zawartych w wystąpieniu CollectionBase . Nie można zastąpić tej właściwości. (Odziedziczone po CollectionBase) |
InnerList |
Pobiera element ArrayList zawierający listę elementów w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
Item[Int32] |
Zwraca określony element klasy EmbeddedMailObjectsCollection, zidentyfikowany przez jego położenie. |
List |
Pobiera element IList zawierający listę elementów w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
Metody
Add(EmbeddedMailObject) |
Dodaje element EmbeddedMailObject na końcu kolekcji EmbeddedMailObjectsCollection . |
Clear() |
Usuwa wszystkie obiekty z CollectionBase wystąpienia. Nie można zastąpić tej metody. (Odziedziczone po CollectionBase) |
Contains(EmbeddedMailObject) |
Określa, czy element EmbeddedMailObjectsCollection zawiera określony EmbeddedMailObjectelement . |
CopyTo(EmbeddedMailObject[], Int32) |
Kopiuje obiekty kolekcji do wystąpienia jednowymiarowego Array rozpoczynającego się od określonego indeksu w tablicy. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetEnumerator() |
Zwraca moduł wyliczający, który iteruje za pośrednictwem CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
IndexOf(EmbeddedMailObject) |
Określa indeks określonego EmbeddedMailObject obiektu w obiekcie EmbeddedMailObjectsCollection. |
Insert(Int32, EmbeddedMailObject) |
Wstawia obiekt EmbeddedMailObject do określonego położenia indeksu EmbeddedMailObjectsCollection . |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnClear() |
Wykonuje dodatkowe procesy niestandardowe podczas czyszczenia zawartości CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnClearComplete() |
Wykonuje dodatkowe procesy niestandardowe po wyczyszczeniu zawartości CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnInsert(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe przed wstawieniem nowego elementu do CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnInsertComplete(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe po wstawieniu nowego elementu do CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnRemove(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe podczas usuwania elementu z CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnRemoveComplete(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe po usunięciu CollectionBase elementu z wystąpienia. (Odziedziczone po CollectionBase) |
OnSet(Int32, Object, Object) |
Wykonuje dodatkowe procesy niestandardowe przed ustawieniem wartości w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Wykonuje dodatkowe procesy niestandardowe po ustawieniu wartości w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
OnValidate(Object) |
Wykonuje dodatkowe procesy niestandardowe podczas sprawdzania poprawności wartości. (Odziedziczone po CollectionBase) |
Remove(EmbeddedMailObject) |
Usuwa pierwsze wystąpienie określonego EmbeddedMailObject elementu z elementu EmbeddedMailObjectsCollection. |
RemoveAt(Int32) |
Usuwa element w określonym indeksie CollectionBase wystąpienia. Ta metoda nie jest zastępowana. (Odziedziczone po CollectionBase) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
ICollection.CopyTo(Array, Int32) |
Kopiuje całą CollectionBase do zgodnej jednowymiarowej Arraytablicy, zaczynając od określonego indeksu tablicy docelowej. (Odziedziczone po CollectionBase) |
ICollection.IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do elementu CollectionBase jest synchronizowany (bezpieczny wątek). (Odziedziczone po CollectionBase) |
ICollection.SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do obiektu CollectionBase. (Odziedziczone po CollectionBase) |
IList.Add(Object) |
Dodaje obiekt na końcu obiektu CollectionBase. (Odziedziczone po CollectionBase) |
IList.Contains(Object) |
Określa, czy element CollectionBase zawiera określony element. (Odziedziczone po CollectionBase) |
IList.IndexOf(Object) |
Wyszukuje określony Object element i zwraca indeks oparty na zerowym pierwszym wystąpieniu w całym CollectionBaseobiekcie . (Odziedziczone po CollectionBase) |
IList.Insert(Int32, Object) |
Wstawia element do CollectionBase określonego indeksu. (Odziedziczone po CollectionBase) |
IList.IsFixedSize |
Pobiera wartość wskazującą, czy rozmiar CollectionBase ma stały rozmiar. (Odziedziczone po CollectionBase) |
IList.IsReadOnly |
Pobiera wartość wskazującą, czy kolekcja CollectionBase jest przeznaczona tylko do odczytu. (Odziedziczone po CollectionBase) |
IList.Item[Int32] |
Pobiera lub ustawia element pod określonym indeksem. (Odziedziczone po CollectionBase) |
IList.Remove(Object) |
Usuwa pierwsze wystąpienie określonego obiektu z obiektu CollectionBase. (Odziedziczone po CollectionBase) |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable do określonego typu. |
OfType<TResult>(IEnumerable) |
Filtruje elementy elementu IEnumerable na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |