MailDefinition Klasse
Definition
Ermöglicht einem Steuerelement das Erstellen von E-Mails aus Textdateien oder Zeichenfolgen.Allows a control to create email messages from text files or strings. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.
public ref class MailDefinition sealed : System::Web::UI::IStateManager
[System.ComponentModel.Bindable(false)]
[System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))]
public sealed class MailDefinition : System.Web.UI.IStateManager
[<System.ComponentModel.Bindable(false)>]
[<System.ComponentModel.TypeConverter(typeof(System.Web.UI.WebControls.EmptyStringExpandableObjectConverter))>]
type MailDefinition = class
interface IStateManager
Public NotInheritable Class MailDefinition
Implements IStateManager
- Vererbung
-
MailDefinition
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel wird eine Internet-e-Mail-Nachricht von einer Web Forms Seite erstellt.The following code example creates an Internet email message from a Web Forms page. Sie können entweder den Text der Nachricht in das Formular eingeben oder den Namen einer Textdatei eingeben, die als Textkörper der e-Mail verwendet werden soll.You can either enter the text of the message in the form or enter the name of a text file to use as the body of the mail. Im Code werden zwei Zeichen folgen Ersetzungen für die Meldung definiert: die Empfängerliste aus dem Textfeld "an" ersetzt die Zeichenfolge " <%To%> ", und der in der-Eigenschaft angegebene Text From ersetzt die Zeichenfolge " <%From%> ".The code defines two string replacements for the message: the recipient list from the form's To text box will replace the string "<%To%>", and the text specified in the From property will replace the string "<%From%>".
Auf der Web Forms Seite, die dieser Code generiert, können Sie auf e-Mail erstellen klicken und nur anzeigen , um eine e-Mail-Nachricht zu erstellen und die Eigenschaften des MailMessage Objekts auf der Webseite anzuzeigen.On the Web Forms page that this code generates, you can click Create email and display only to create an email message and display the properties of the MailMessage object in the Web page. Klicken Sie auf e-Mail erstellen und senden , um die e-Mail-Nachricht auf der Webseite anzuzeigen, und senden Sie die Nachricht per Internet-e-Mail an die Empfänger.Click Create email and send to both display the email message in the Web page and send the message to the recipients using Internet email.
Wichtig
Dieses Steuerelement verfügt über ein Textfeld, das Benutzereingaben akzeptiert. Dies stellt ein potenzielles Sicherheitsrisiko dar.This control has a text box that accepts user input, which is a potential security threat. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten.By default, ASP.NET Web pages validate that user input does not include script or HTML elements. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.For more information, see Script Exploits Overview.
<%@ page language="C#"%>
<%@ import namespace="System.Net.Mail"%>
<%@ import namespace="System.Reflection"%>
<%@ import namespace="System.Collections.Specialized"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
HtmlTable ShowMessage(System.Net.Mail.MailMessage msg)
{
HtmlTable table = new HtmlTable();
HtmlTableRow topRow = new HtmlTableRow();
HtmlTableCell fieldHeaderCell = new HtmlTableCell();
HtmlTableCell valueHeaderCell = new HtmlTableCell();
fieldHeaderCell.InnerText = "Field";
topRow.Cells.Add(fieldHeaderCell);
valueHeaderCell.InnerText = "Value";
topRow.Cells.Add(valueHeaderCell);
table.Rows.Add(topRow);
foreach(PropertyInfo p in msg.GetType().GetProperties())
{
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell labelCell = new HtmlTableCell();
HtmlTableCell valueCell = new HtmlTableCell();
if (!((p.Name == "Headers") ||
(p.Name == "Fields") ||
(p.Name == "Attachments")))
{
labelCell.InnerText = String.Format("{0}",p.Name);
row.Cells.Add(labelCell);
valueCell.InnerText = String.Format("{0}",p.GetValue(msg,null));
row.Cells.Add(valueCell);
}
table.Rows.Add(row);
}
return table;
}
System.Net.Mail.MailMessage CreateMessage()
{
// <Snippet2>
MailDefinition md = new MailDefinition();
// </Snippet2>
// <Snippet3>
md.BodyFileName = sourceMailFile.Text;
// </Snippet3>
// <Snippet4>
md.CC = sourceCC.Text;
// </Snippet4>
// <Snippet5>
md.From = sourceFrom.Text;
// </Snippet5>
// <Snippet6>
md.Subject = sourceSubject.Text;
// </Snippet6>
// <Snippet10>
if (sourcePriority.SelectedValue == "Normal")
{
md.Priority = MailPriority.Normal;
}
else if (sourcePriority.SelectedValue == "High")
{
md.Priority = MailPriority.High;
}
else if (sourcePriority.SelectedValue == "Low")
{
md.Priority = MailPriority.Low;
}
// </Snippet10>
// <Snippet7>
ListDictionary replacements = new ListDictionary();
replacements.Add("<%To%>",sourceTo.Text);
replacements.Add("<%From%>", md.From);
// </Snippet7>
if (true == useFile.Checked)
{
// <Snippet8>
System.Net.Mail.MailMessage fileMsg;
fileMsg = md.CreateMailMessage(sourceTo.Text, replacements, this);
// </Snippet8>
return fileMsg;
}
else
{
// <Snippet9>
System.Net.Mail.MailMessage textMsg;
textMsg = md.CreateMailMessage(sourceTo.Text, replacements, sourceBodyText.Text, this);
// </Snippet9>
return textMsg;
}
}
void createEMail_Click(object sender, System.EventArgs e)
{
System.Net.Mail.MailMessage msg = CreateMessage();
PlaceHolder1.Controls.Add(ShowMessage(msg));
}
void sendEMail_Click(object sender, System.EventArgs e)
{
System.Net.Mail.MailMessage msg = CreateMessage();
PlaceHolder1.Controls.Add(ShowMessage(msg));
errorMsg.Text = String.Empty;
try {
SmtpClient sc = new SmtpClient();
sc.Send(msg);
}
catch (HttpException ex) {
errorMsg.Text = ex.ToString();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Create an email message</title>
</head>
<body>
<form id="Form1" runat="server">
<table id="Table1" cellspacing="1"
style="padding:1; width:450px; text-align:center">
<tr>
<td align="center" colspan="3">
<h3>Create an email message</h3>
</td>
</tr>
<tr>
<td align="right">To:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceTo" runat="server" columns="54">
</asp:textbox>
<asp:requiredfieldvalidator id="RequiredFieldValidator1"
runat="server" errormessage="*" controltovalidate="sourceTo">
</asp:requiredfieldvalidator>
</td>
</tr>
<tr>
<td align="right">Cc:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceCC" runat="server" columns="54">
</asp:textbox> </td>
</tr>
<tr>
<td align="right">From:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceFrom" runat="server" columns="54">
</asp:textbox>
<asp:requiredfieldvalidator id="RequiredFieldValidator2"
runat="server" errormessage="*" controltovalidate="sourceFrom">
</asp:requiredfieldvalidator>
</td>
</tr>
<tr>
<td align="right">Subject:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceSubject" runat="server" columns="54">
</asp:textbox> </td>
</tr>
<tr>
<td align="right">
Priority</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:dropdownlist id="sourcePriority" runat="server">
<asp:listitem value="Low">Low</asp:listitem>
<asp:listitem value="Normal" selected="true">Normal
</asp:listitem>
<asp:listitem value="High">High</asp:listitem>
</asp:dropdownlist> </td>
<td>
</td>
</tr>
<tr>
<td align="right">Source:</td>
<td style="WIDTH: 10px">
</td>
<td>
<table id="Table2" cellspacing="1" cellpadding="1" width="100%">
<tr>
<td style="WIDTH: 100px">
<asp:radiobutton id="useFile" runat="server" text="Use file"
width="80px" groupname="textSource" checked="True">
</asp:radiobutton> </td>
<td style="WIDTH: 11px">
</td>
<td>
<p style="text-align:right">File name:</p>
</td>
<td>
<asp:textbox id="sourceMailFile" runat="server" columns="22">
mail.txt</asp:textbox> </td>
</tr>
<tr>
<td style="WIDTH: 100px">
<asp:radiobutton id="useText" runat="server"
text="Enter text" width="80px" height="22px"
groupname="textSource">
</asp:radiobutton> </td>
<td style="WIDTH: 11px">
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</td>
<td> </td>
</tr>
<tr>
<td align="center" colspan="3">
<asp:textbox id="sourceBodyText" runat="server" columns="51"
textmode="MultiLine" rows="15">
</asp:textbox> </td>
</tr>
<tr>
<td align="center" colspan="3">
<asp:button id="createEMail" runat="server"
text="Create email and display only"
onclick="createEMail_Click">
</asp:button>
<asp:button id="sendEMail" runat="server"
text="Create email and send">
</asp:button></td>
</tr>
</table>
<p> </p>
<p>
<asp:placeholder id="PlaceHolder1" runat="server">
</asp:placeholder>
</p>
<p>
<asp:literal id="errorMsg" runat="server">
</asp:literal>
</p>
</form>
</body>
</html>
<%@ page language="VB"%>
<%@ import namespace="System.Net.Mail"%>
<%@ import namespace="System.Reflection"%>
<%@ import namespace="System.Collections.Specialized"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Function ShowMessage(ByVal msg As System.Net.Mail.MailMessage) As HtmlTable
Dim table As HtmlTable = New HtmlTable
Dim topRow As HtmlTableRow = New HtmlTableRow
Dim fieldHeaderCell As HtmlTableCell = New HtmlTableCell
Dim valueHeaderCell As HtmlTableCell = New HtmlTableCell
fieldHeaderCell.InnerText = "Field"
topRow.Cells.Add(fieldHeaderCell)
valueHeaderCell.InnerText = "Value"
topRow.Cells.Add(valueHeaderCell)
table.Rows.Add(topRow)
Dim p As PropertyInfo
For Each p In msg.GetType().GetProperties()
Dim row As HtmlTableRow = New HtmlTableRow
Dim labelCell As HtmlTableCell = New HtmlTableCell
Dim valueCell As HtmlTableCell = New HtmlTableCell
If (Not ((p.Name = "Headers") Or _
(p.Name = "Fields") Or _
(p.Name = "Attachments"))) Then
labelCell.InnerText = String.Format("{0}", p.Name)
row.Cells.Add(labelCell)
valueCell.InnerText = String.Format("{0}", p.GetValue(msg, Nothing))
row.Cells.Add(valueCell)
End If
table.Rows.Add(row)
Next
Return table
End Function
Function CreateMessage() As System.Net.Mail.MailMessage
' <Snippet2>
Dim md As MailDefinition = New MailDefinition
' </Snippet2>
' <Snippet3>
md.BodyFileName = sourceMailFile.Text
' </Snippet3>
' <Snippet4>
md.CC = sourceCC.Text
' </Snippet4>
' <Snippet5>
md.From = sourceFrom.Text
' </Snippet5>
' <Snippet6>
md.Subject = sourceSubject.Text
' </Snippet6>
' <Snippet10>
If sourcePriority.SelectedValue = "Normal" Then
md.Priority = MailPriority.Normal
ElseIf sourcePriority.SelectedValue = "High" Then
md.Priority = MailPriority.High
ElseIf sourcePriority.SelectedValue = "Low" Then
md.Priority = MailPriority.Low
End If
' </Snippet10>
' <Snippet7>
Dim replacements As ListDictionary = New ListDictionary
replacements.Add("<%To%>", sourceTo.Text)
replacements.Add("<%From%>", sourceFrom.Text)
' </Snippet7>
If useFile.Checked Then
' <Snippet8>
Dim fileMsg As System.Net.Mail.MailMessage
fileMsg = md.CreateMailMessage(sourceTo.Text, replacements, Me)
' </Snippet8>
Return fileMsg
Else
' <Snippet9>
Dim textMsg As System.Net.Mail.MailMessage
textMsg = md.CreateMailMessage(sourceTo.Text, replacements, sourceBodyText.Text, Me)
' </Snippet9>
Return textMsg
End If
End Function
Sub createEMail_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim msg As System.Net.Mail.MailMessage = CreateMessage()
PlaceHolder1.Controls.Add(ShowMessage(msg))
End Sub
Sub sendEMail_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim msg As System.Net.Mail.MailMessage = CreateMessage()
PlaceHolder1.Controls.Add(ShowMessage(msg))
Try
Dim sc As SmtpClient
sc = New SmtpClient()
sc.Send(msg)
Catch ex As Exception
errorMsg.Text = ex.ToString()
End Try
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Create an email message</title>
</head>
<body>
<form id="Form1" runat="server">
<table id="Table1" cellspacing="1"
style="padding:1; width:450px; text-align:center">
<tr>
<td align="center" colspan="3">
<h3>Create an email message</h3>
</td>
</tr>
<tr>
<td align="right">To:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceTo" runat="server" columns="54">
</asp:textbox> <asp:requiredfieldvalidator
id="RequiredFieldValidator1" runat="server" errormessage="*"
controltovalidate="sourceTo">
</asp:requiredfieldvalidator>
</td>
</tr>
<tr>
<td align="right">Cc:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceCC" runat="server" columns="54">
</asp:textbox> </td>
</tr>
<tr>
<td align="right">From:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceFrom" runat="server" columns="54">
</asp:textbox> <asp:requiredfieldvalidator
id="RequiredFieldValidator2" runat="server" errormessage="*"
controltovalidate="sourceFrom">
</asp:requiredfieldvalidator>
</td>
</tr>
<tr>
<td align="right">
Priority</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:dropdownlist id="sourcePriority" runat="server">
<asp:listitem value="Low">Low</asp:listitem>
<asp:listitem value="Normal" selected="true">Normal</asp:listitem>
<asp:listitem value="High">High</asp:listitem>
</asp:dropdownlist> </td>
<td>
</td>
</tr>
<tr>
<td align="right">Subject:</td>
<td style="WIDTH: 10px">
</td>
<td>
<asp:textbox id="sourceSubject" runat="server" columns="54">
</asp:textbox> </td>
</tr>
<tr>
<td align="right">Source:</td>
<td style="WIDTH: 10px">
</td>
<td>
<table id="Table2" cellspacing="1" cellpadding="1" width="100%">
<tr>
<td style="WIDTH: 100px">
<asp:radiobutton id="useFile" runat="server"
text="Use file" width="80px" groupname="textSource"
checked="True">
</asp:radiobutton> </td>
<td style="WIDTH: 11px">
</td>
<td>
<p style="text-align:right">File name:</p>
</td>
<td>
<asp:textbox id="sourceMailFile" runat="server" columns="22">
mail.txt</asp:textbox> </td>
</tr>
<tr>
<td style="WIDTH: 100px">
<asp:radiobutton id="useText" runat="server"
text="Enter text" width="80px" height="22px"
groupname="textSource">
</asp:radiobutton> </td>
<td style="WIDTH: 11px">
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</td>
<td> </td>
</tr>
<tr>
<td align="center" colspan="3">
<asp:textbox id="sourceBodyText" runat="server" columns="51"
textmode="MultiLine" rows="15">
</asp:textbox> </td>
</tr>
<tr>
<td align="center" colspan="3">
<asp:button id="createEMail" runat="server"
text="Create email and display only" onclick="createEMail_Click">
</asp:button>
<asp:button id="sendEMail" runat="server" text="Create email and send">
</asp:button></td>
</tr>
</table>
<p> </p>
<p>
<asp:placeholder id="PlaceHolder1" runat="server">
</asp:placeholder> </p>
<p>
<asp:literal id="errorMsg" runat="server">
</asp:literal></p>
</form>
</body>
</html>
Hinweise
Die- MailDefinition Klasse kann von Steuerelementen verwendet werden, um ein- MailMessage Objekt aus einer Textdatei oder einer Zeichenfolge zu erstellen, die den Text der e-Mail-Nachricht enthält.The MailDefinition class can be used by controls to create a MailMessage object from a text file or a string that contains the body of the email message. Verwenden MailDefinition Sie die-Klasse, um das Erstellen von vordefinierten e-Mail-Nachrichten zu vereinfachen, die von einemUse the MailDefinition class to simplify creating predefined email messages to be sent by a control. Informationen zum Senden von e-Mails, die kein-Steuerelement verwenden, finden Sie in der- System.Net.Mail Klasse.If you want to send email not using a control, see the System.Net.Mail class.
Sie können Text Ersetzungen im Text der e-Mail-Nachricht erstellen, indem Sie an die- CreateMailMessage Methode einer- IDictionary Instanz übergeben, die Zeichen folgen ihren Ersetzungen zuordnet.You can make text substitutions in the body of the email message by passing to the CreateMailMessage method an IDictionary instance that maps strings to their replacements.
Das MailMessage von der-Klasse erstellte-Objekt MailDefinition wird mithilfe der- Send Methode der- SmtpClient Klasse gesendet.The MailMessage object created by the MailDefinition class is sent using the Send method of the SmtpClient class. Um e-Mails senden zu können, müssen Sie einen SMTP-Mailserver in der Web.config-Datei konfigurieren.To be able to send email, you must configure an SMTP mail server in your Web.config file. Weitere Informationen finden Sie unter < SMTP- > Element (Netzwerkeinstellungen).For more information, see the <smtp> Element (Network Settings).
Hinweis
Die- MailDefinition Klasse unterstützt keine Datenbindung.The MailDefinition class does not support data binding. Eigenschaften der MailDefinition Klasse können nicht mithilfe der <%# %>
Syntax für Daten Bindungs Ausdrücke an Daten gebunden werden.Properties of the MailDefinition class cannot be bound to data using the <%# %>
data-binding expression syntax.
Konstruktoren
MailDefinition() |
Initialisiert eine neue Instanz der MailDefinition-Klasse.Initializes a new instance of the MailDefinition class. |
Eigenschaften
BodyFileName |
Ruft den Namen der Datei ab, die den Text der E-Mail enthält, oder legt diesen Namen fest.Gets or sets the name of the file that contains text for the body of the email message. |
CC |
Dient zum Abrufen oder Festlegen einer durch Trennzeichen getrennten Liste von E-Mail-Adressen, an die eine Kopie (CC) der Nachricht gesendet werden soll.Gets or sets a comma-separated list of email addresses to send a copy (CC) of the message to. |
EmbeddedObjects |
Ruft eine Auflistung von EmbeddedMailObject-Instanzen ab, mit der für gewöhnlich Images in ein MailDefinition-Objekt eingebettet werden, bevor die E-Mail an einen Benutzer gesendet wird.Gets a collection of EmbeddedMailObject instances, typically used to embed images in a MailDefinition object before sending an email to a user. |
From |
Ruft die E-Mail-Adresse des Absenders ab oder legt diese fest.Gets or sets the email address of the message sender. |
IsBodyHtml |
Ruft einen Wert ab, der angibt, ob der Text der E-Mail im HTML-Format vorliegt, oder legt diesen Wert fest.Gets or sets a value indicating whether the body of the email is HTML. |
Priority |
Ruft die Priorität der E-Mail ab oder legt diese fest.Gets or sets the priority of the email message. |
Subject |
Ruft die Betreffzeile der E-Mail ab oder legt diese fest.Gets or sets the subject line of the email message. |
Methoden
CreateMailMessage(String, IDictionary, Control) |
Erstellt eine E-Mail aus einer Textdatei, die über SMTP (Simple Mail Transfer Protocol) gesendet werden soll.Creates an email message from a text file to send by means of SMTP (Simple Mail Transfer Protocol). |
CreateMailMessage(String, IDictionary, String, Control) |
Erstellt eine E-Mail mit Ersetzungen aus einer Textdatei, die über SMTP gesendet werden soll.Creates an email message with replacements from a text file to send by means of SMTP (Simple Mail Transfer Protocol). |
Equals(Object) |
Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion.Serves as the default hash function. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob das Serversteuerelement Änderungen des Ansichtszustands speichert.Gets a value that indicates whether the server control is saving changes to its view state. |
IStateManager.LoadViewState(Object) |
Stellt die Informationen über den Ansichtszustand aus einer früheren Seitenanforderung wieder her, die mit der SaveViewState()-Methode gespeichert wurden.Restores view-state information from a previous page request that was saved by the SaveViewState() method. |
IStateManager.SaveViewState() |
Speichert alle Ansichtszustandsänderungen des Serversteuerelements, die seit dem Zeitpunkt aufgetreten sind, zu dem die Seite an den Server zurückgesendet wurde.Saves any server control view-state changes that have occurred since the time the page was posted back to the server. |
IStateManager.TrackViewState() |
Veranlasst die Überwachung von Änderungen am Ansichtszustand des Serversteuerelements, sodass die Änderungen im StateBag-Objekt des Serversteuerelements gespeichert werden können.Causes tracking of view-state changes to the server control so they can be stored in the server control's StateBag object. |