EmbeddedMailObject Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy EmbeddedMailObject.
Przeciążenia
EmbeddedMailObject() |
Inicjuje nowe wystąpienie klasy EmbeddedMailObject. |
EmbeddedMailObject(String, String) |
Inicjuje EmbeddedMailObject nowe wystąpienie klasy przy użyciu określonej nazwy identyfikatora i ścieżki w celu wypełnienia obiektu. |
EmbeddedMailObject()
Inicjuje nowe wystąpienie klasy EmbeddedMailObject.
public:
EmbeddedMailObject();
public EmbeddedMailObject ();
Public Sub New ()
Uwagi
Aby pobrać lub ustawić identyfikator osadzonego elementu, użyj Name właściwości . Aby pobrać lub ustawić ścieżkę do osadzonego elementu, użyj Path właściwości . Obie właściwości muszą zostać ustawione tak, aby pomyślnie osadzić element w wiadomości e-mail.
Zobacz też
Dotyczy
EmbeddedMailObject(String, String)
Inicjuje EmbeddedMailObject nowe wystąpienie klasy przy użyciu określonej nazwy identyfikatora i ścieżki w celu wypełnienia obiektu.
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)
Parametry
- name
- String
Nazwa używana jako identyfikator elementu do osadzenia w wiadomości e-mail. Aby uzyskać więcej informacji, zobacz Name.
- path
- String
Ścieżka używana do pobierania elementu do osadzania w wiadomości e-mail. Aby uzyskać więcej informacji, zobacz Path.
Przykłady
Poniższy przykład kodu przedstawia przykładowy kod strony ASP.NET, która używa kontrolki, i zawiera procedurę ChangePassword obsługi zdarzeń dla SendingMail zdarzenia o nazwie SendingMail
. W tym przykładzie kodu przyjęto założenie, że witryna sieci Web ASP.NET została skonfigurowana do używania ASP.NET członkostwa i uwierzytelniania formularzy oraz że użytkownik został utworzony, którego nazwa i hasło są dla Ciebie znane. Aby uzyskać więcej informacji, zobacz Instrukcje: implementowanie uwierzytelniania prostych formularzy.
Jeśli zmiana hasła powiedzie się, kod w SendingMail
procedurze obsługi zdarzeń próbuje wysłać wiadomość e-mail do użytkownika w celu potwierdzenia zmiany. Protokół SMTP musi być już skonfigurowany na serwerze, aby ten przykład kodu działał. Aby uzyskać informacje o sposobie konfigurowania serwera SMTP, zobacz How to: Install and Configure SMTP Virtual Servers in IIS 6.0 (Instrukcje: instalowanie i konfigurowanie serwerów wirtualnych SMTP w usługach IIS 6.0). Na potrzeby tego przykładu nie jest konieczne skonfigurowanie serwera SMTP; przykład jest skonstruowany w celu przetestowania błędu wysyłania wiadomości e-mail.
Jeśli serwer poczty nie jest poprawnie skonfigurowany lub wystąpi inny błąd i nie można wysłać wiadomości e-mail, funkcja jest wywoływana SendMailError
. Użytkownikowi zostanie wyświetlony komunikat. Ponadto zdarzenie jest rejestrowane w dzienniku zdarzeń aplikacji systemu Windows z założeniem, że źródło zdarzeń o nazwie MySamplesSite już istnieje. Zobacz poniższy przykład kodu, aby utworzyć określone źródło zdarzeń. Aby uzyskać więcej informacji na temat tworzenia źródła zdarzeń, zobacz Obsługa zdarzeń serwera w ASP.NET stron formularzy sieci Web. Właściwość HandledSendMailErrorEventArgs obiektu jest ustawiona na wartość , aby wskazać true
, że błąd został obsłużony.
Poniższy przykład kodu pokazuje użycie strony .aspx.
<%@ Page Language="C#" CodeFile="ChangePassword.cs" Inherits="ChangePassword_cs_aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ChangePassword using code-behind 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"
ContinueDestinationPageUrl="~/Default.aspx" >
</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" CodeFile="ChangePassword.vb" Inherits="ChangePassword_vb_aspx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ChangePassword using code-behind 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"
ContinueDestinationPageUrl="~/Default.aspx"
OnSendingMail="_SendingMail"
OnSendMailError="_SendMailError" >
</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>
W poniższym przykładzie kodu pokazano, jak używać pliku w tle.
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
Użyj poniższego przykładu kodu, jeśli musisz programowo dodać źródło zdarzeń o nazwie MySamplesSite do dziennika aplikacji. To źródło zdarzeń musi istnieć, aby pierwszy przykład kodu działał poprawnie. Poniższy przykład kodu wymaga uprawnień administratora.
#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
Poniższy przykładowy kod może służyć jako plik ChangePasswordMail.htm dla poprzedniego przykładowego kodu.
Ważne
Wysyłanie nazw kont użytkowników lub haseł w wiadomości e-mail jest potencjalnym zagrożeniem bezpieczeństwa. Wiadomości e-mail są zwykle wysyłane w postaci zwykłego tekstu i mogą być odczytywane przez specjalne aplikacje sieciowe "sniffing". Aby zwiększyć bezpieczeństwo, użyj środków zaradczych opisanych w temacie Zabezpieczanie kontrolek logowania.
<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>