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 SendingMail Ereignis namens SendingMail. Im Codebeispiel wird davon ausgegangen, dass die ASP.NET Website für die Verwendung ASP.NET Mitgliedschafts- und Formularauthentifizierung konfiguriert wurde und dass ein Benutzer erstellt wurde, dessen Name und Kennwort Ihnen bekannt sind. Weitere Informationen finden Sie unter How to: Implement Simple Forms Authentication.
Wenn die Kennwortänderung erfolgreich verläuft, versucht der Code im SendingMail Ereignishandler, eine E-Mail-Nachricht an den Benutzer zu senden, um die Änderung zu bestätigen. SMTP muss bereits auf dem Server konfiguriert werden, damit dieses Codebeispiel funktioniert. Informationen zum Konfigurieren eines SMTP-Servers finden Sie unter How to: Install and Configure SMTP Virtual Servers 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 wird.
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. Eine Nachricht wird dem Benutzer angezeigt. Darüber hinaus wird ein Ereignis mit der Annahme protokolliert, dass eine Ereignisquelle mit dem Namen MySamplesSite bereits vorhanden ist, im Windows Application-Ereignisprotokoll protokolliert wird. Sehen Sie sich das folgende Codebeispiel an, um die angegebene Ereignisquelle zu erstellen. Weitere Informationen zum Erstellen einer Ereignisquelle finden Sie in der Serverereignisbehandlung in ASP.NET Web Forms Seiten. Die Handled Eigenschaft des SendMailErrorEventArgs Objekts wird so festgelegt true , 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 die Ereignisquelle "MySamplesSite" programmgesteuert zu Ihrem Anwendungsprotokoll 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 in E-Mails ist eine potenzielle Sicherheitsgefahr. E-Mail-Nachrichten werden in der Regel in Nur-Text gesendet und können von speziellen Netzwerkanwendungen gelesen werden. Um die Sicherheit zu verbessern, verwenden Sie die in der Sicherung 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
Die EmbeddedMailObjectsCollection Speichert Verweise auf Elemente, die in eine E-Mail-Nachricht eingebettet werden. Die eingebetteten Elemente können Bilddateien wie Firmenlogos sein. Dies EmbeddedMailObjectsCollection wird von der EmbeddedObjects Eigenschaft des MailDefinition Objekts verwendet.
E-Mail-Nachrichten, die eingebettete Objekte zulassen, sind in den folgenden Websteuerelementen konfigurierbar, indem sie ihre MailDefinition Eigenschaften deklarativ festlegen:
Hinweis
Die Werte in den EmbeddedMailObject und EmbeddedMailObjectsCollection Objekten werden nicht im Ansichtszustand gespeichert. Dies schützt vor böswilligen Benutzern, die Pfadinformationen für Ihren Server ermitteln.
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. |