EmbeddedMailObject EmbeddedMailObject EmbeddedMailObject EmbeddedMailObject Class

Definizione

Rappresenta un elemento da incorporare in un messaggio di posta elettronica costruito usando la classe MailDefinition.Represents an item to embed in an email message constructed using the MailDefinition class.

public ref class EmbeddedMailObject sealed
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmbeddedMailObject/EmbeddedMailObjectTypeConverter))]
public sealed class EmbeddedMailObject
type EmbeddedMailObject = class
Public NotInheritable Class EmbeddedMailObject
Ereditarietà
EmbeddedMailObjectEmbeddedMailObjectEmbeddedMailObjectEmbeddedMailObject
Attributi

Esempi

Nell'esempio di codice seguente viene illustrata una pagina ASP.NET ChangePassword che utilizza un controllo Web e include un gestore eventi SendingMail per l' SendingMailevento denominato.The following code example demonstrates an ASP.NET page that uses a ChangePassword Web control, and includes an event handler for the SendingMail event named SendingMail. Nell'esempio di codice si presuppone che il sito Web ASP.NET sia stato configurato per utilizzare l'appartenenza ASP.NET e l'autenticazione basata su form e che sia stato creato un utente il cui nome e password sono noti.The code example assumes that the ASP.NET Web site has been configured to use ASP.NET membership and Forms authentication, and that a user has been created whose name and password are known to you. Per altre informazioni, vedere Procedura: Implementare l'autenticazione basatasu form semplici.For more information, see How to: Implement Simple Forms Authentication.

Se la modifica della password ha esito positivo, il SendingMail codice nel gestore dell'evento tenta di inviare un messaggio di posta elettronica all'utente per confermare la modifica.If the password change succeeds, the code in the SendingMail event handler attempts to send an email message to the user to confirm the change. Per consentire il funzionamento di questo esempio di codice, è necessario che nel server sia già configurato SMTP.SMTP must already be configured on the server in order for this code example to work. Per informazioni su come configurare un server SMTP, vedere il pennino: Procedura: Installare e configurare i server virtuali SMTP in IIS6,0.For information about how to configure an SMTP server, see NIB: How to: Install and Configure SMTP Virtual Servers in IIS 6.0. Ai fini di questo esempio, non è necessario configurare un server SMTP. L'esempio viene costruito per verificare la mancata trasmissione di un messaggio di posta elettronica.For the purposes of this example, it is not necessary to configure an SMTP server; the example is constructed to test for a failure to send an email message.

Se un server di posta non è configurato correttamente o si verifica un altro errore e non è possibile inviare il messaggio SendMailError di posta elettronica, viene chiamata la funzione.If a mail server is not configured correctly or some other error occurs and the email message cannot be sent, the SendMailError function is called. Viene visualizzato un messaggio all'utente.A message is displayed to the user. Inoltre, viene registrato un evento nel registro eventi applicazioni di Windows con il presupposto che esista già un'origine evento denominata MySamplesSite.In addition, an event is logged to the Windows Application event log with the assumption that an event source named MySamplesSite already exists. Vedere l'esempio di codice seguente per creare l'origine evento specificata.See the code example below to create the specified event source. Per ulteriori informazioni sulla creazione di un'origine eventi, vedere gestione degli eventi del server nelle pagine Web form ASP.NET.For more information about creating an event source, see Server Event Handling in ASP.NET Web Forms Pages. La Handled proprietà true dell'oggetto è impostata su per indicare che l'errore è stato gestito. SendMailErrorEventArgsThe Handled property of the SendMailErrorEventArgs object is set to true to indicate that the error has been handled.

<%@ 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 applicazioni.Use the following code example if you need to programmatically add the event source named MySamplesSite to your Application log. Questa origine evento deve esistere affinché il primo esempio di codice funzioni correttamente.This event source must exist in order for the first code example to work correctly. Nell'esempio di codice seguente sono necessari i privilegi di amministratore.The following code example requires Administrator privileges.

#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.The following example code can be used as the ChangePasswordMail.htm file for the preceding example code.

Importante

L'invio di nomi di account utente o password nella posta elettronica costituisce una potenziale minaccia per la sicurezza.Sending user account names or passwords in email is a potential security threat. I messaggi di posta elettronica vengono in genere inviati in testo normale e possono essere letti da applicazioni di "sniffing" di rete speciali.Email messages are typically sent in plain text and can be read by special network "sniffing" applications. Per migliorare la sicurezza, utilizzare le mitigazioni descritte in protezione dei controlli di accesso.To improve security, use the mitigations that are described in Securing Login Controls.

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

Commenti

EmbeddedMailObject Rappresenta un elemento da incorporare in un messaggio di posta elettronica.The EmbeddedMailObject represents an item to embed in a mail message. Questi elementi incorporati possono essere file di immagine, ad esempio logo della società.These embedded items can be image files such as company logos. Ogni elemento incorporato viene specificato da un identificatore e da un percorso.Each embedded item is specified by an identifier and a path.

Per assicurarsi che un oggetto incorporato venga visualizzato correttamente nel file di messaggio di posta elettronica, è necessario che siano soddisfatte le condizioni seguenti:To ensure that an embedded object is displayed correctly within the email message file, the following conditions must be met:

  • Il messaggio di posta elettronica è in formato HTML.The mail message is in HTML format.

  • L'elemento è un file di immagine (jpg, gif, BMP e così via).The item is an image file (.jpg, .gif, .bmp, and so on).

  • Il file del corpo in formato HTML specificato nella BodyFileName proprietà contiene un riferimento al file di immagine usando la sintassi seguente:The HTML-formatted body file specified in the BodyFileName property contains a reference to the image file using the following syntax:

    <img src="cid:identifier" alt="Alternate Text" />.  
    

Se un EmbeddedMailObject oggetto viene aggiunto a un messaggio di posta elettronica e non soddisfa tutti i requisiti specificati in precedenza, sarà probabilmente visualizzato come allegato nel messaggio di posta elettronica.If an EmbeddedMailObject is added to a mail message and does not fulfill all of the requirements specified previously, it will most likely be displayed as an attachment in the mail message. Se a un elemento viene fatto riferimento da un identificatore nel messaggio di posta elettronica, ma non incluso come elemento incorporato, questo verrà visualizzato come allegato interruppe quando viene visualizzato il messaggio di posta elettronica.If an item is referenced by an identifier in the mail message but not included as an embedded item, it will appear as a broken attachment when the mail is viewed.

Archivia una raccolta di EmbeddedMailObject oggetti per un singolo messaggio di posta elettronica. EmbeddedMailObjectsCollectionThe EmbeddedMailObjectsCollection stores a collection of EmbeddedMailObject objects for a single mail message. Il EmbeddedMailObjectsCollection viene utilizzato EmbeddedObjects dalla proprietà dell' MailDefinition oggetto per creare il messaggio di posta elettronica.The EmbeddedMailObjectsCollection is used by the EmbeddedObjects property of the MailDefinition object to create the mail message.

I messaggi di posta elettronica che consentono oggetti incorporati possono essere configurati nei seguenti MailDefinition controlli Web impostando le relative proprietà in modo dichiarativo:Mail messages that allow embedded objects are configurable in the following Web controls by setting their MailDefinition properties declaratively:

Nota

I valori negli EmbeddedMailObject oggetti e EmbeddedMailObjectsCollection non vengono archiviati nello stato di visualizzazione.The values in the EmbeddedMailObject and EmbeddedMailObjectsCollection objects are not stored in view state. Ciò impedisce agli utenti malintenzionati di individuare le informazioni sul percorso per il server.This protects against malicious users discovering path information for your server.

Costruttori

EmbeddedMailObject() EmbeddedMailObject() EmbeddedMailObject() EmbeddedMailObject()

Inizializza una nuova istanza della classe EmbeddedMailObject.Initializes a new instance of the EmbeddedMailObject class.

EmbeddedMailObject(String, String) EmbeddedMailObject(String, String) EmbeddedMailObject(String, String) EmbeddedMailObject(String, String)

Inizializza una nuova istanza della classe EmbeddedMailObject, utilizzando l'identificatore e il percorso specificati per inserire i dati nell'oggetto.Initializes a new instance of the EmbeddedMailObject class, using the specified identifier name and path to populate the object.

Proprietà

Name Name Name Name

Ottiene o imposta il nome utilizzato come identificatore dell'elemento da incorporare in un messaggio di posta costruito con la classe MailDefinition.Gets or sets the name that is used as the identifier of the item to be embedded in a mail message constructed with the MailDefinition class.

Path Path Path Path

Ottiene o imposta il percorso utilizzato per recuperare un elemento da incorporare in un messaggio di posta costruito con la classe MailDefinition.Gets or sets the path that is used to retrieve an item to embed in a mail message constructed with the MailDefinition class.

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Si applica a

Vedi anche