EmbeddedMailObjectsCollection Classe

Définition

Représente un ensemble ordonné d’objets 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
Héritage
EmbeddedMailObjectsCollection

Exemples

L’exemple de code suivant illustre une page ASP.NET qui utilise un ChangePassword contrôle Web et inclut un gestionnaire d’événements pour l’événement SendingMail nommé SendingMail. L’exemple de code suppose que le site web ASP.NET a été configuré pour utiliser ASP.NET’appartenance et l’authentification par formulaire, et qu’un utilisateur a été créé dont vous connaissez le nom et le mot de passe. Pour plus d’informations, consultez Guide pratique pour implémenter l’authentification par formulaire simple.

Si la modification du mot de passe réussit, le code du SendingMail gestionnaire d’événements tente d’envoyer un e-mail à l’utilisateur pour confirmer la modification. SMTP doit déjà être configuré sur le serveur pour que cet exemple de code fonctionne. Pour plus d’informations sur la configuration d’un serveur SMTP, consultez Guide pratique pour installer et configurer des serveurs virtuels SMTP dans IIS 6.0. Pour les besoins de cet exemple, il n’est pas nécessaire de configurer un serveur SMTP ; l’exemple est construit pour tester l’échec de l’envoi d’un message électronique.

Si un serveur de messagerie n’est pas configuré correctement ou si une autre erreur se produit et que l’e-mail ne peut pas être envoyé, la SendMailError fonction est appelée. Un message s’affiche pour l’utilisateur. En outre, un événement est consigné dans le journal des événements des applications Windows avec l’hypothèse qu’une source d’événement nommée MySamplesSite existe déjà. Consultez l’exemple de code ci-dessous pour créer la source d’événement spécifiée. Pour plus d’informations sur la création d’une source d’événements, consultez Gestion des événements de serveur dans ASP.NET Web Forms Pages. La Handled propriété de l’objet SendMailErrorEventArgs est définie sur true pour indiquer que l’erreur a été gérée.

<%@ 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>

Utilisez l’exemple de code suivant si vous devez ajouter par programmation la source d’événement nommée MySamplesSite à votre journal des applications. Cette source d’événement doit exister pour que le premier exemple de code fonctionne correctement. L’exemple de code suivant nécessite des privilèges d’administrateur.

#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

L’exemple de code suivant peut être utilisé comme fichier ChangePasswordMail.htm pour l’exemple de code précédent.

Important

L’envoi de noms de comptes d’utilisateur ou de mots de passe dans un e-mail est une menace potentielle pour la sécurité. Email messages sont généralement envoyés en texte brut et peuvent être lus par des applications de « détection » réseau spéciales. Pour améliorer la sécurité, utilisez les atténuations décrites dans Sécurisation des contrôles de connexion.

<html>  
<head><title></title></head>  
<body>  
<form>  

  <h1>Your password for the account named &quot;<%Username%>&quot; 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>  

Remarques

Le EmbeddedMailObjectsCollection stocke les références à des éléments qui seront incorporés dans un message électronique. Les éléments incorporés peuvent être des fichiers image tels que des logos d’entreprise. est EmbeddedMailObjectsCollection utilisé par la EmbeddedObjects propriété de l’objet MailDefinition .

Email messages qui autorisent les objets incorporés sont configurables dans les contrôles Web suivants en définissant leurs MailDefinition propriétés de manière déclarative :

Notes

Les valeurs des EmbeddedMailObject objets et EmbeddedMailObjectsCollection ne sont pas stockées dans l’état d’affichage. Cela protège contre les utilisateurs malveillants qui découvrent des informations de chemin d’accès pour votre serveur.

Constructeurs

EmbeddedMailObjectsCollection()

Initialise une nouvelle instance de la classe EmbeddedMailObjectsCollection.

Propriétés

Capacity

Obtient ou définit le nombre d'éléments que CollectionBase peut contenir.

(Hérité de CollectionBase)
Count

Obtient le nombre d'éléments contenus dans l'instance CollectionBase. Cette propriété ne peut pas être remplacée.

(Hérité de CollectionBase)
InnerList

Obtient ArrayList contenant la liste des éléments dans l'instance de CollectionBase.

(Hérité de CollectionBase)
Item[Int32]

Retourne un élément spécifique d'un EmbeddedMailObjectsCollection, identifié par sa position.

List

Obtient IList contenant la liste des éléments dans l'instance de CollectionBase.

(Hérité de CollectionBase)

Méthodes

Add(EmbeddedMailObject)

Ajoute un EmbeddedMailObject à la fin de la collection EmbeddedMailObjectsCollection.

Clear()

Supprime tous les objets de l'instance de CollectionBase. Cette méthode ne peut pas être substituée.

(Hérité de CollectionBase)
Contains(EmbeddedMailObject)

Détermine si la EmbeddedMailObjectsCollection contient un EmbeddedMailObject spécifique.

CopyTo(EmbeddedMailObject[], Int32)

Copie la collection d'objets dans une instance unidimensionnelle Array en commençant à l'index spécifié dans le tableau.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui itère au sein de l'instance CollectionBase.

(Hérité de CollectionBase)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IndexOf(EmbeddedMailObject)

Détermine l'index d'un EmbeddedMailObject spécifique dans EmbeddedMailObjectsCollection.

Insert(Int32, EmbeddedMailObject)

Insère un EmbeddedMailObject dans l'objet EmbeddedMailObjectsCollection à la position d'index spécifiée.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnClear()

Effectue des traitements personnalisés supplémentaires pendant l’effacement du contenu de l’instance de CollectionBase.

(Hérité de CollectionBase)
OnClearComplete()

Exécute des processus personnalisés supplémentaires après l'effacement du contenu de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnInsert(Int32, Object)

Exécute les processus personnalisés supplémentaires avant l'insertion d'un nouvel élément dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnInsertComplete(Int32, Object)

Exécute les processus personnalisés supplémentaires après l'insertion d'un nouvel élément dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnRemove(Int32, Object)

Exécute des processus personnalisés supplémentaires lors de la suppression d'un élément de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnRemoveComplete(Int32, Object)

Exécute des processus personnalisés supplémentaires après la suppression d'un élément de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnSet(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires avant la définition d'une valeur dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnSetComplete(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires après la définition d'une valeur dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnValidate(Object)

Exécute des processus personnalisés supplémentaires lors de la validation d'une valeur.

(Hérité de CollectionBase)
Remove(EmbeddedMailObject)

Supprime la première occurrence de la classe EmbeddedMailObject spécifiée de EmbeddedMailObjectsCollection.

RemoveAt(Int32)

Supprime l'élément à l'index spécifié de l'instance de CollectionBase. Cette méthode n'est pas substituable.

(Hérité de CollectionBase)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie l'ensemble de l'objet CollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.

(Hérité de CollectionBase)
ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès à CollectionBase est synchronisé (thread-safe).

(Hérité de CollectionBase)
ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à CollectionBase.

(Hérité de CollectionBase)
IList.Add(Object)

Ajoute un objet à la fin de la CollectionBase.

(Hérité de CollectionBase)
IList.Contains(Object)

Détermine si CollectionBase contient un élément spécifique.

(Hérité de CollectionBase)
IList.IndexOf(Object)

Recherche le Object spécifié et retourne l’index de base zéro de la première occurrence dans l’ensemble du CollectionBase.

(Hérité de CollectionBase)
IList.Insert(Int32, Object)

Insère un élément dans la classe CollectionBase au niveau de l'index spécifié.

(Hérité de CollectionBase)
IList.IsFixedSize

Obtient une valeur indiquant si CollectionBase est de taille fixe.

(Hérité de CollectionBase)
IList.IsReadOnly

Obtient une valeur indiquant si CollectionBase est en lecture seule.

(Hérité de CollectionBase)
IList.Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.

(Hérité de CollectionBase)
IList.Remove(Object)

Supprime la première occurrence d’un objet spécifique de CollectionBase.

(Hérité de CollectionBase)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à

Voir aussi