MailDefinition Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermöglicht einem Steuerelement das Erstellen von E-Mails aus Textdateien oder Zeichenfolgen. Diese Klasse kann nicht vererbt werden.
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. 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. Der Code definiert zwei Zeichenfolgenersetzungen für die Nachricht: Die Empfängerliste aus dem Textfeld An des Formulars ersetzt die Zeichenfolge "<%To%>", und der in der From -Eigenschaft angegebene Text ersetzt die Zeichenfolge "<%From%>".
Auf der Web Forms-Seite, die von diesem Code generiert wird, können Sie auf E-Mail erstellen klicken und nur anzeigen , um eine E-Mail-Nachricht zu erstellen und die Eigenschaften des Objekts auf der MailMessage Webseite anzuzeigen. Klicken Sie auf E-Mail erstellen und senden , um die E-Mail-Nachricht auf der Webseite anzuzeigen und die Nachricht per Internet-E-Mail an die Empfänger zu senden.
Wichtig
Dieses Steuerelement verfügt über ein Textfeld, das Benutzereingaben akzeptiert, was eine potenzielle Sicherheitsgefährdung darstellt. Standardmäßig stellen ASP.NET-Webseiten sicher, dass Benutzereingaben keine Skript- oder HTML-Elemente enthalten. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe.
<%@ 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. Verwenden Sie die -Klasse, um das MailDefinition Erstellen vordefinierter E-Mail-Nachrichten zu vereinfachen, die von einem Steuerelement gesendet werden sollen. Wenn Sie E-Mails senden möchten, die kein Steuerelement verwenden, lesen Sie die System.Net.Mail -Klasse.
Sie können Textersetzungen im Text der E-Mail-Nachricht vornehmen, indem Sie an die CreateMailMessage -Methode eine IDictionary Instanz übergeben, die Zeichenfolgen ihren Ersetzungen zuordnet.
Das MailMessage von der MailDefinition -Klasse erstellte Objekt wird mithilfe der Send -Methode der SmtpClient -Klasse gesendet. Um E-Mails senden zu können, müssen Sie einen SMTP-E-Mail-Server in Ihrer Web.config-Datei konfigurieren. Weitere Informationen finden Sie im <smtp-Element> (Netzwerkeinstellungen).
Hinweis
Die MailDefinition -Klasse unterstützt keine Datenbindung. Eigenschaften der MailDefinition -Klasse können nicht mithilfe der <%# %>
Datenbindungsausdruckssyntax an Daten gebunden werden.
Konstruktoren
MailDefinition() |
Initialisiert eine neue Instanz der MailDefinition-Klasse. |
Eigenschaften
BodyFileName |
Ruft den Namen der Datei ab, die den Text der E-Mail enthält, oder legt diesen Namen fest. |
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. |
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. |
From |
Ruft die E-Mail-Adresse des Absenders ab oder legt diese fest. |
IsBodyHtml |
Ruft einen Wert ab, der angibt, ob der Text der E-Mail im HTML-Format vorliegt, oder legt diesen Wert fest. |
Priority |
Ruft die Priorität der E-Mail ab oder legt diese fest. |
Subject |
Ruft die Betreffzeile der E-Mail ab oder legt diese fest. |
Methoden
CreateMailMessage(String, IDictionary, Control) |
Erstellt eine E-Mail aus einer Textdatei, die über SMTP (Simple Mail Transfer Protocol) gesendet werden soll. |
CreateMailMessage(String, IDictionary, String, Control) |
Erstellt eine E-Mail mit Ersetzungen aus einer Textdatei, die über SMTP gesendet werden soll. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob das Serversteuerelement Änderungen des Ansichtszustands speichert. |
IStateManager.LoadViewState(Object) |
Stellt die Informationen über den Ansichtszustand aus einer früheren Seitenanforderung wieder her, die mit der SaveViewState()-Methode gespeichert wurden. |
IStateManager.SaveViewState() |
Speichert alle Ansichtszustandsänderungen des Serversteuerelements, die seit dem Zeitpunkt aufgetreten sind, zu dem die Seite an den Server zurückgesendet wurde. |
IStateManager.TrackViewState() |
Veranlasst die Überwachung von Änderungen am Ansichtszustand des Serversteuerelements, sodass die Änderungen im StateBag-Objekt des Serversteuerelements gespeichert werden können. |