EmbeddedMailObject Construtores
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Inicializa uma nova instância da EmbeddedMailObject classe.
Sobrecargas
| Name | Description |
|---|---|
| EmbeddedMailObject() |
Inicializa uma nova instância da EmbeddedMailObject classe. |
| EmbeddedMailObject(String, String) |
Inicializa uma nova instância da EmbeddedMailObject classe, usando o nome do identificador e o caminho especificados para preencher o objeto. |
EmbeddedMailObject()
Inicializa uma nova instância da EmbeddedMailObject classe.
public:
EmbeddedMailObject();
public EmbeddedMailObject();
Public Sub New ()
Observações
Para obter ou definir o identificador do item incorporado, use a propriedade Name . Para obter ou definir o caminho para o item embutido, use a Path propriedade. Ambas as propriedades devem ser definidas para incorporar com sucesso o item na mensagem de correio.
Ver também
Aplica-se a
EmbeddedMailObject(String, String)
Inicializa uma nova instância da EmbeddedMailObject classe, usando o nome do identificador e o caminho especificados para preencher o objeto.
public:
EmbeddedMailObject(System::String ^ name, System::String ^ path);
public EmbeddedMailObject(string name, string path);
new System.Web.UI.WebControls.EmbeddedMailObject : string * string -> System.Web.UI.WebControls.EmbeddedMailObject
Public Sub New (name As String, path As String)
Parâmetros
- name
- String
O nome usado como identificador do item a incorporar na mensagem de correio. Para obter mais informações, veja Name.
- path
- String
O caminho usado para recuperar um item para incorporar na mensagem de correio. Para obter mais informações, veja Path.
Exemplos
O exemplo de código seguinte mostra um exemplo code-behind de uma página ASP.NET que utiliza um controlo ChangePassword e inclui um gestor de eventos para o evento SendingMail chamado SendingMail. Este exemplo de código assume que o site do ASP.NET foi configurado para usar a adesão ao ASP.NET e autenticação por formulários, e que foi criado um utilizador cujo nome e palavra-passe são conhecidos por si. Para mais informações, veja Como: Implementar a Autenticação Simples de Formulários.
Se a alteração da palavra-passe for bem-sucedida, o código no SendingMail gestor de eventos tenta enviar uma mensagem de email ao utilizador para confirmar a alteração. O SMTP deve já estar configurado no servidor para que este exemplo de código funcione. Para informações sobre como configurar um servidor SMTP, veja Como: Instalar e Configurar Servidores Virtuais SMTP no IIS 6.0. Para efeitos deste exemplo, não é necessário configurar um servidor SMTP; O exemplo é construído para testar uma falha no envio de uma mensagem de email.
Se um servidor de email não estiver configurado corretamente ou ocorrer algum outro erro e a mensagem de email não puder ser enviada, a SendMailError função é chamada. É exibida uma mensagem ao utilizador. Além disso, um evento é registado no registo de eventos da Aplicação Windows assumindo que já existe uma fonte de evento chamada MySamplesSite. Para mais informações sobre a criação de uma fonte de eventos, consulte Server Event Handling em ASP.NET Web Forms Pages. A Handled propriedade do SendMailErrorEventArgs objeto está definida para true indicar que o erro foi tratado.
O exemplo de código seguinte demonstra o uso de um ficheiro code-behind.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
public partial class ChangePassword_cs_aspx : System.Web.UI.Page
{
protected void Page_Load(Object sender, EventArgs e)
{
// Manually register the event-handling methods.
ChangePassword1.SendingMail += new MailMessageEventHandler(this._SendingMail);
ChangePassword1.SendMailError += new SendMailErrorEventHandler(this._SendMailError);
ChangePassword1.MailDefinition.BodyFileName = "~/Attachments/ChangePasswordMail.htm";
EmbeddedMailObject loginGif = new EmbeddedMailObject();
loginGif.Name = "LoginGif";
loginGif.Path = "~/Attachments/Login.gif";
EmbeddedMailObject privacyNoticeTxt = new EmbeddedMailObject();
privacyNoticeTxt.Name = "PrivacyNoticeTxt";
privacyNoticeTxt.Path = "~/Attachments/PrivacyNotice.txt";
ChangePassword1.MailDefinition.EmbeddedObjects.Add(loginGif);
ChangePassword1.MailDefinition.EmbeddedObjects.Add(privacyNoticeTxt);
}
protected void _SendingMail(object sender, MailMessageEventArgs e)
{
Message1.Visible = true;
Message1.Text = "Sent mail to you to confirm the password change.";
System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress("someone@example.com", "Someone");
System.Net.Mail.MailAddress copy = new System.Net.Mail.MailAddress("someone@example.com", "Someone");
e.Message.From = from;
e.Message.CC.Add(copy);
e.Message.Subject = "Activity information for you";
e.Message.IsBodyHtml = true;
}
protected void _SendMailError(object sender, SendMailErrorEventArgs e)
{
Message1.Visible = true;
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.Source = "MySamplesSite";
myLog.Log = "Application";
myLog.WriteEntry(
"Sending mail via SMTP failed with the following error: " +
e.Exception.Message.ToString(),
System.Diagnostics.EventLogEntryType.Error);
e.Handled = true;
}
}
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls
Partial Class ChangePassword_vb_aspx
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal Sender As Object, ByVal e As System.EventArgs)
AddHandler ChangePassword1.SendingMail, AddressOf Me._SendingMail
AddHandler ChangePassword1.SendMailError, AddressOf Me._SendMailError
ChangePassword1.MailDefinition.BodyFileName = "~/Attachments/ChangePasswordMail.htm"
ChangePassword1.MailDefinition.Cc = "someone@example.com"
ChangePassword1.MailDefinition.From = "someone@example.com"
Dim loginGif As New EmbeddedMailObject
loginGif.Name = "LoginGif"
loginGif.Path = "~/Attachments/Login.gif"
Dim privacyNoticeTxt As New EmbeddedMailObject
privacyNoticeTxt.Name = "PrivacyNoticeTxt"
privacyNoticeTxt.Path = "~/Attachments/PrivacyNotice.txt"
ChangePassword1.MailDefinition.EmbeddedObjects.Add(loginGif)
ChangePassword1.MailDefinition.EmbeddedObjects.Add(privacyNoticeTxt)
End Sub
Protected Sub _SendingMail(ByVal Sender As Object, ByVal e As MailMessageEventArgs)
Message1.Visible = True
Message1.Text = "Sent mail to you to confirm the password change."
e.Message.Subject = "Activity information for you"
e.Message.IsBodyHtml = True
End Sub
Protected Sub _SendMailError(ByVal Sender As Object, ByVal e As SendMailErrorEventArgs)
Message1.Visible = True
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
End Class
Use o seguinte exemplo de código se precisar de adicionar programaticamente a fonte do evento chamada MySamplesSite ao registo da sua Aplicação. Esta fonte de eventos deve existir para que o primeiro exemplo de código funcione corretamente. O seguinte exemplo de código requer privilégios de Administrador.
#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
O seguinte código de exemplo pode ser usado como ficheiro ChangePasswordMail.htm para o código de exemplo anterior.
Importante
Enviar nomes de contas de utilizador ou palavras-passe numa mensagem de email é uma potencial ameaça à segurança. As mensagens de email são normalmente enviadas em texto simples e podem ser lidas por aplicações especiais de "sniffing" em rede. Para melhorar a segurança, utilize as mitigações descritas em Securing Login Controls.
<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>