EmbeddedMailObjectsCollection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen geordneten Satz von EmbeddedMailObject-Objekten dar.
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
- Vererbung
Beispiele
Das folgende Codebeispiel veranschaulicht eine ASP.NET Seite, die ein ChangePassword Websteuerelement verwendet, und enthält einen Ereignishandler für das Ereignis mit dem SendingMail Namen SendingMail
. Im Codebeispiel wird davon ausgegangen, dass die ASP.NET-Website für die Verwendung ASP.NET Mitgliedschaft und Formularauthentifizierung konfiguriert wurde und dass ein Benutzer erstellt wurde, dessen Name und Kennwort Ihnen bekannt sind. Weitere Informationen finden Sie unter Vorgehensweise: Implementieren der Authentifizierung für einfache Formulare.
Wenn die Kennwortänderung erfolgreich ist, versucht der SendingMail
Code im Ereignishandler, eine E-Mail-Nachricht an den Benutzer zu senden, um die Änderung zu bestätigen. SMTP muss bereits auf dem Server konfiguriert sein, damit dieses Codebeispiel funktioniert. Informationen zum Konfigurieren eines SMTP-Servers finden Sie unter Vorgehensweise: Installieren und Konfigurieren virtueller SMTP-Server in IIS 6.0. Für die Zwecke dieses Beispiels ist es nicht erforderlich, einen SMTP-Server zu konfigurieren. Das Beispiel wird erstellt, um zu testen, dass eine E-Mail-Nachricht nicht gesendet werden kann.
Wenn ein E-Mail-Server nicht ordnungsgemäß konfiguriert ist oder ein anderer Fehler auftritt und die E-Mail-Nachricht nicht gesendet werden kann, wird die SendMailError
Funktion aufgerufen. Dem Benutzer wird eine Meldung angezeigt. Darüber hinaus wird ein Ereignis im Ereignisprotokoll der Windows-Anwendung protokolliert, wobei davon ausgegangen wird, dass bereits eine Ereignisquelle mit dem Namen MySamplesSite vorhanden ist. Sehen Sie sich das codebeispiel unten an, um die angegebene Ereignisquelle zu erstellen. Weitere Informationen zum Erstellen einer Ereignisquelle finden Sie unter Serverereignisbehandlung in ASP.NET Web Forms-Seiten. Die Handled -Eigenschaft des SendMailErrorEventArgs -Objekts wird auf true
festgelegt, um anzugeben, dass der Fehler behandelt wurde.
<%@ 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>
Verwenden Sie das folgende Codebeispiel, wenn Sie ihrem Anwendungsprotokoll programmgesteuert die Ereignisquelle MySamplesSite hinzufügen müssen. Diese Ereignisquelle muss vorhanden sein, damit das erste Codebeispiel ordnungsgemäß funktioniert. Im folgenden Codebeispiel sind Administratorrechte erforderlich.
#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
Der folgende Beispielcode kann als ChangePasswordMail.htm-Datei für den vorherigen Beispielcode verwendet werden.
Wichtig
Das Senden von Benutzernamen oder Kennwörtern per E-Mail stellt eine potenzielle Sicherheitsbedrohung dar. E-Mail-Nachrichten werden in der Regel als Nur-Text gesendet und können von speziellen Netzwerkanwendungen gelesen werden. Um die Sicherheit zu verbessern, verwenden Sie die Unter Sichern von Anmeldesteuerelementen beschriebenen Entschärfungen.
<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>
Hinweise
Der EmbeddedMailObjectsCollection speichert Verweise auf Elemente, die in eine E-Mail-Nachricht eingebettet werden. Die eingebetteten Elemente können Bilddateien wie Firmenlogos sein. Wird EmbeddedMailObjectsCollection von der EmbeddedObjects -Eigenschaft des MailDefinition -Objekts verwendet.
E-Mail-Nachrichten, die eingebettete Objekte zulassen, können in den folgenden Websteuerelementen konfiguriert werden, indem sie deren MailDefinition Eigenschaften deklarativ festlegen:
Hinweis
Die Werte in den EmbeddedMailObject -Objekten und EmbeddedMailObjectsCollection -Objekten werden nicht im Ansichtszustand gespeichert. Dies schützt vor böswilligen Benutzern, die Pfadinformationen für Ihren Server entdecken.
Konstruktoren
EmbeddedMailObjectsCollection() |
Initialisiert eine neue Instanz der EmbeddedMailObjectsCollection-Klasse. |
Eigenschaften
Capacity |
Ruft die Anzahl der Elemente ab, die die CollectionBase enthalten kann, oder legt diese fest. (Geerbt von CollectionBase) |
Count |
Ruft die Anzahl der in der CollectionBase-Instanz enthaltenen Elemente ab. Diese Eigenschaft kann nicht überschrieben werden. (Geerbt von CollectionBase) |
InnerList |
Ruft eine ArrayList mit der Liste der Elemente in der CollectionBase-Instanz ab. (Geerbt von CollectionBase) |
Item[Int32] |
Gibt ein bestimmtes Element von EmbeddedMailObjectsCollection zurück, das durch seine Position identifiziert wird. |
List |
Ruft eine IList mit der Liste der Elemente in der CollectionBase-Instanz ab. (Geerbt von CollectionBase) |
Methoden
Add(EmbeddedMailObject) |
Fügt EmbeddedMailObjectam Ende der EmbeddedMailObjectsCollection-Auflistung hinzu. |
Clear() |
Entfernt alle Objekte aus der CollectionBase-Instanz. Diese Methode kann nicht überschrieben werden. (Geerbt von CollectionBase) |
Contains(EmbeddedMailObject) |
Ermittelt, ob die EmbeddedMailObjectsCollection einen bestimmten EmbeddedMailObject enthält. |
CopyTo(EmbeddedMailObject[], Int32) |
Kopiert die Auflistungsobjekte in eine eindimensionale Array-Instanz, beginnend am angegebenen Index im Array. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetEnumerator() |
Gibt einen Enumerator zurück, der die CollectionBase durchläuft. (Geerbt von CollectionBase) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexOf(EmbeddedMailObject) |
Ermittelt den Index eines bestimmten EmbeddedMailObject in EmbeddedMailObjectsCollection. |
Insert(Int32, EmbeddedMailObject) |
Fügt EmbeddedMailObject an der angegebenen Indexposition in das EmbeddedMailObjectsCollection-Objekt ein. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnClear() |
Führt beim Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus. (Geerbt von CollectionBase) |
OnClearComplete() |
Führt nach dem Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus. (Geerbt von CollectionBase) |
OnInsert(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse vor dem Einfügen eines neuen Elements in die CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnInsertComplete(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Einfügen eines neuen Elements in die CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnRemove(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse beim Entfernen eines Elements aus der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnRemoveComplete(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Entfernen eines Elements aus der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnSet(Int32, Object, Object) |
Führt zusätzliche benutzerdefinierte Prozesse vor dem Festlegen eines Werts in der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Festlegen eines Werts in der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnValidate(Object) |
Führt zusätzliche benutzerdefinierte Prozesse beim Validieren eines Werts aus. (Geerbt von CollectionBase) |
Remove(EmbeddedMailObject) |
Entfernt das erste Vorkommen der angegebenen EmbeddedMailObject aus der EmbeddedMailObjectsCollection. |
RemoveAt(Int32) |
Entfernt das Element am angegebenen Index aus der CollectionBase-Instanz. Diese Methode kann nicht überschrieben werden. (Geerbt von CollectionBase) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICollection.CopyTo(Array, Int32) |
Kopiert die gesamte CollectionBase-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays. (Geerbt von CollectionBase) |
ICollection.IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf die CollectionBase synchronisiert (threadsicher) ist. (Geerbt von CollectionBase) |
ICollection.SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf CollectionBase synchronisiert werden kann. (Geerbt von CollectionBase) |
IList.Add(Object) |
Fügt am Ende der CollectionBase ein Objekt hinzu. (Geerbt von CollectionBase) |
IList.Contains(Object) |
Ermittelt, ob CollectionBase ein bestimmtes Element enthält. (Geerbt von CollectionBase) |
IList.IndexOf(Object) |
Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten CollectionBase zurück. (Geerbt von CollectionBase) |
IList.Insert(Int32, Object) |
Fügt am angegebenen Index ein Element in die CollectionBase ein. (Geerbt von CollectionBase) |
IList.IsFixedSize |
Ruft einen Wert ab, der angibt, ob das CollectionBase eine feste Größe aufweist. (Geerbt von CollectionBase) |
IList.IsReadOnly |
Ruft einen Wert ab, der angibt, ob das CollectionBase schreibgeschützt ist. (Geerbt von CollectionBase) |
IList.Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt dieses fest. (Geerbt von CollectionBase) |
IList.Remove(Object) |
Entfernt das erste Vorkommen eines angegebenen Objekts aus der CollectionBase. (Geerbt von CollectionBase) |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |