EmbeddedMailObjectsCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un set ordinato di oggetti 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
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrata una pagina di ASP.NET che usa un controllo Web e include un ChangePassword gestore eventi per l'evento SendingMail denominato SendingMail
. Nell'esempio di codice si presuppone che il sito Web ASP.NET sia stato configurato per l'uso dell'appartenenza ASP.NET e l'autenticazione di Forms e che un utente sia stato creato il cui nome e la password sono noti all'utente. Per altre informazioni, vedere Procedura: Implementare l'autenticazione di moduli semplici.
Se la modifica della password ha esito positivo, il codice nel SendingMail
gestore eventi tenta di inviare un messaggio di posta elettronica all'utente per confermare la modifica. SMTP deve essere già configurato nel server per consentire il funzionamento di questo esempio di codice. Per informazioni su come configurare un server SMTP, vedere Procedura: Installare e configurare server virtuali SMTP in IIS 6.0. Ai fini di questo esempio, non è necessario configurare un server SMTP; l'esempio viene costruito per testare un errore per l'invio di un messaggio di posta elettronica.
Se un server di posta elettronica non è configurato correttamente o si verifica un altro errore e non è possibile inviare il messaggio di posta elettronica, viene chiamata la SendMailError
funzione. Viene visualizzato un messaggio all'utente. Inoltre, un evento viene registrato nel registro eventi di Windows Application con il presupposto che esista già un'origine evento denominata MySamplesSite. Per creare l'origine evento specificata, vedere l'esempio di codice seguente. Per altre informazioni sulla creazione di un'origine evento, vedere Gestione eventi server in pagine web form ASP.NET. La Handled proprietà dell'oggetto è impostata su per true
indicare che l'errore SendMailErrorEventArgs è stato gestito.
<%@ 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>
Usare l'esempio di codice seguente se è necessario aggiungere a livello di codice l'origine evento denominata MySamplesSite al log dell'applicazione. Questa origine evento deve esistere per consentire al primo esempio di codice di funzionare correttamente. L'esempio di codice seguente richiede privilegi di amministratore.
#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
Il codice di esempio seguente può essere usato come file ChangePasswordMail.htm per il codice di esempio precedente.
Importante
L'invio di nomi di account utente o password nel messaggio di posta elettronica è una potenziale minaccia di sicurezza. I messaggi di posta elettronica vengono in genere inviati in testo normale e possono essere letti da applicazioni speciali di "sniffing". Per migliorare la sicurezza, usare le mitigazioni descritte in Protezione dei controlli di accesso.
<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>
Commenti
I EmbeddedMailObjectsCollection riferimenti agli elementi che verranno incorporati in un messaggio di posta elettronica. Gli elementi incorporati possono essere file di immagine, ad esempio logo aziendali. Viene EmbeddedMailObjectsCollection usato dalla EmbeddedObjects proprietà dell'oggetto MailDefinition .
I messaggi di posta elettronica che consentono agli oggetti incorporati sono configurabili nei controlli Web seguenti impostando le proprietà MailDefinition dichiarative:
Nota
I valori negli EmbeddedMailObject oggetti e EmbeddedMailObjectsCollection non vengono archiviati nello stato di visualizzazione. Ciò consente di proteggere gli utenti malintenzionati individuando le informazioni sul percorso per il server.
Costruttori
EmbeddedMailObjectsCollection() |
Inizializza una nuova istanza della classe EmbeddedMailObjectsCollection. |
Proprietà
Capacity |
Ottiene o imposta il numero di elementi che CollectionBase può contenere. (Ereditato da CollectionBase) |
Count |
Ottiene il numero di elementi contenuti nell'istanza di CollectionBase. Questa proprietà non può essere sottoposta a override. (Ereditato da CollectionBase) |
InnerList |
Ottiene un ArrayList contenente l'elenco degli elementi presenti nell'istanza CollectionBase. (Ereditato da CollectionBase) |
Item[Int32] |
Restituisce un elemento specifico di un oggetto EmbeddedMailObjectsCollection, identificato dalla relativa posizione. |
List |
Ottiene un IList contenente l'elenco degli elementi presenti nell'istanza CollectionBase. (Ereditato da CollectionBase) |
Metodi
Add(EmbeddedMailObject) |
Aggiunge un oggetto EmbeddedMailObject alla fine dell'insieme EmbeddedMailObjectsCollection. |
Clear() |
Consente di rimuovere tutti gli oggetti dall'istanza CollectionBase. Questo metodo non può essere sottoposto a override. (Ereditato da CollectionBase) |
Contains(EmbeddedMailObject) |
Determina se EmbeddedMailObjectsCollection contiene un oggetto EmbeddedMailObject specifico. |
CopyTo(EmbeddedMailObject[], Int32) |
Copia gli oggetti dell'insieme in un'istanza Array unidimensionale a partire dall'indice specificato nella matrice. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetEnumerator() |
Restituisce un enumeratore per lo scorrimento dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IndexOf(EmbeddedMailObject) |
Determina l'indice di un oggetto EmbeddedMailObject specifico in EmbeddedMailObjectsCollection. |
Insert(Int32, EmbeddedMailObject) |
Inserisce un oggetto EmbeddedMailObject nell'oggetto EmbeddedMailObjectsCollection in corrispondenza della posizione di indice specificata. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnClear() |
Esegue processi personalizzati aggiuntivi quando viene cancellato il contenuto dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnClearComplete() |
Esegue procedure personalizzate aggiuntive prima di cancellare il contenuto dell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnInsert(Int32, Object) |
Esegue procedure personalizzate aggiuntive prima di inserire un nuovo elemento nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnInsertComplete(Int32, Object) |
Esegue procedure personalizzate aggiuntive dopo aver inserito un nuovo elemento nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnRemove(Int32, Object) |
Consente di eseguire procedure personalizzate aggiuntive durante l'eliminazione di un elemento dall'istanza CollectionBase. (Ereditato da CollectionBase) |
OnRemoveComplete(Int32, Object) |
Esegue procedure personalizzate aggiuntive dopo della rimozione di un elemento dall'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnSet(Int32, Object, Object) |
Esegue procedure personalizzate aggiuntive prima di impostare un valore nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Esegue procedure personalizzate aggiuntive dopo aver impostato un valore nell'istanza di CollectionBase. (Ereditato da CollectionBase) |
OnValidate(Object) |
Esegue processi personalizzati aggiuntivi durante la convalida di un valore. (Ereditato da CollectionBase) |
Remove(EmbeddedMailObject) |
Rimuove la prima occorrenza dell'oggetto EmbeddedMailObject specificato da EmbeddedMailObjectsCollection. |
RemoveAt(Int32) |
Consente di rimuovere la voce in corrispondenza dell'indice specificato dell'istanza CollectionBase. Questo metodo non può essere sottoposto a override. (Ereditato da CollectionBase) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICollection.CopyTo(Array, Int32) |
Copia l'intero oggetto CollectionBase in un oggetto Array compatibile unidimensionale, a partire dall'indice specificato della matrice di destinazione. (Ereditato da CollectionBase) |
ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso a CollectionBase è sincronizzato (thread-safe). (Ereditato da CollectionBase) |
ICollection.SyncRoot |
Ottiene un oggetto che può essere usato per sincronizzare l'accesso a CollectionBase. (Ereditato da CollectionBase) |
IList.Add(Object) |
Aggiunge un oggetto alla fine di CollectionBase. (Ereditato da CollectionBase) |
IList.Contains(Object) |
Consente di stabilire se CollectionBase contiene un elemento specifico. (Ereditato da CollectionBase) |
IList.IndexOf(Object) |
Cerca l'oggetto Object specificato e restituisce l'indice in base zero della prima occorrenza all'interno dell'intero CollectionBase. (Ereditato da CollectionBase) |
IList.Insert(Int32, Object) |
Inserisce un elemento in CollectionBase in corrispondenza dell'indice specificato. (Ereditato da CollectionBase) |
IList.IsFixedSize |
Ottiene un valore che indica se CollectionBase ha dimensioni fisse. (Ereditato da CollectionBase) |
IList.IsReadOnly |
Ottiene un valore che indica se CollectionBase è di sola lettura. (Ereditato da CollectionBase) |
IList.Item[Int32] |
Ottiene o imposta l'elemento in corrispondenza dell'indice specificato. (Ereditato da CollectionBase) |
IList.Remove(Object) |
Rimuove la prima occorrenza di un oggetto specifico da CollectionBase. (Ereditato da CollectionBase) |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |