ASP.NET-Webseiten – Der WebMail-Helfer
Der WebMail-Helfer – Einer von vielen nützlichen ASP.NET-Webhelfern.
Mit dem WebMail-Objekt können Sie ganz einfach E-Mails von einer Webseite aus versenden.
Der WebMail-Helfer
Der WebMail Helper vereinfacht das Versenden einer E-Mail aus einer Webanwendung per SMTP (Simple Mail Transfer Protocol).
Szenario: E-Mail-Support
Um die Verwendung von E-Mail zu demonstrieren, erstellen wir eine Eingabeseite für den Support, lassen den Benutzer die Seite an eine andere Seite senden und senden eine E-Mail über das Supportproblem.
Erstens: Bearbeiten Sie Ihre App-Startseite
Wenn Sie die Demo-Anwendung in diesem Tutorial erstellt haben, haben Sie bereits eine Seite namens _AppStart.cshtml mit folgendem Inhalt:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId",
"Email", true);
}
Um den WebMail-Hilfsdienst zu starten, fügen Sie Ihrer AppStart-Seite die folgenden WebMail-Eigenschaften hinzu:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId",
"Email", true);
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password-goes-here";
WebMail.From = "[email protected]";
}
Eigenschaften erklärt:
SmtpServer: Der Name des SMTP-Servers, der zum Senden der E-Mails verwendet wird.
SmtpPort: Der Port, den der Server zum Senden von SMTP-Transaktionen (E-Mails) verwendet.
EnableSsl: True, wenn der Server SSL-Verschlüsselung (Secure Socket Layer) verwenden soll.
Benutzername: Der Name des SMTP-E-Mail-Kontos, das zum Senden der E-Mail verwendet wird.
Passwort: Das Passwort des SMTP-E-Mail-Kontos.
Von: Die E-Mail, die in der Absenderadresse erscheinen soll (oft identisch mit Benutzername).
Zweitens: Erstellen Sie eine E-Mail-Eingabeseite
Erstellen Sie dann eine Eingabeseite und nennen Sie sie Email_Input:
Email_Input.cshtml
<!DOCTYPE html>
<html>
<body>
<h1>Request for
Assistance</h1>
<form method="post" action="EmailSend.cshtml">
<label>Username:</label>
<input type="text" name="customerEmail" />
<label>Details about the problem:</label>
<textarea name="customerRequest"
cols="45" rows="4"></textarea>
<p><input type="submit" value="Submit"
/></p>
</form>
</body>
</html>
Der Zweck der Eingabeseite besteht darin, Informationen zu sammeln und die Daten dann an eine neue Seite zu senden, die die Informationen als E-Mail senden kann.
Drittens: Erstellen Sie eine E-Mail-Sendeseite
Erstellen Sie dann die Seite, die zum Senden der E-Mail verwendet wird, und nennen Sie sie Email_Send:
Email_Send.cshtml
@{ // Read input
var customerEmail = Request["customerEmail"];
var customerRequest = Request["customerRequest"];
try
{
// Send email
WebMail.Send(to:"[email protected]", subject: "Help request from - " + customerEmail, body:
customerRequest );
}
catch (Exception ex )
{
<text>@ex</text>
}
}
WebMail-Objektreferenz - Eigenschaften
Properties | Description |
---|---|
SmtpServer | The name the SMTP server that will send the emails |
SmtpPort | The port the server will use to send SMTP emails |
EnableSsl | True, if the server should use SSL encryption |
UserName | The name of the SMTP account used to send the email |
Password | The password of the SMTP account |
From | The email to appear in the from address |
WebMail-Objektreferenz - Methoden
Method | Description |
---|---|
Send() | Sends an email message to an SMTP server for delivery |
Die Methode Send() hat die folgenden Parameter:
Parameter | Type | Description |
---|---|---|
to | String | The Email recipients (separated by semicolon) |
subject | String | The subject line |
body | String | The body of the message |
Und die folgenden optionalen Parameter:
Parameter | Type | Description |
---|---|---|
from | String | The email of the sender |
cc | String | The cc emails (separated by semicolon) |
filesToAttach | Collection | Filenames |
isBodyHtml | Boolean | True if the email body is in HTML |
additionalHeaders | Collection | Additional headers |
Technische Daten
Name | Value |
---|---|
Class | System.Web.Helpers.WebMail |
Namespace | System.Web.Helpers |
Assembly | System.Web.Helpers.dll |
Initialisieren des WebMail-Hilfsprogramms
Um den WebMail-Hilfsdienst verwenden zu können, benötigen Sie Zugriff auf einen SMTP-Server. SMTP ist der „Ausgabe“-Teil von E-Mails. Wenn Sie einen Webhost verwenden, kennen Sie wahrscheinlich bereits den Namen des SMTP-Servers. Wenn Sie in einem Firmennetzwerk arbeiten, kann Ihnen Ihre IT-Abteilung den Namen nennen. Wenn Sie von zu Hause aus arbeiten, können Sie möglicherweise Ihren normalen E-Mail-Anbieter verwenden.
Zum Versenden einer E-Mail benötigen Sie:
- Der Name des SMTP-Servers
- Die Portnummer (meistens 25)
- Ein E-Mail-Benutzername
- Ein E-Mail-Passwort
Erstellen Sie im Stamm Ihres Webs eine Seite mit dem Namen _AppStart.cshtml (oder bearbeiten Sie die Seite ) .
Fügen Sie den folgenden Code in die Datei ein:
_AppStart.cshtml
@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password";
WebMail.From = "[email protected]"
}
Der obige Code wird jedes Mal ausgeführt, wenn die Website (Anwendung) gestartet wird. Es füttert Ihr WebMail-Objekt mit Anfangswerten.
Bitte ersetzen Sie:
smtp.example.com mit dem Namen des SMTP-Servers, der zum Senden der E-Mails verwendet wird.
25 durch die Portnummer, die der Server zum Senden von SMTP-Transaktionen (E-Mails) verwendet.
false mit true, wenn der Server SSL-Verschlüsselung (Secure Socket Layer) verwenden soll.
[email protected] durch den Namen des SMTP-E-Mail-Kontos, das zum Senden von E-Mails verwendet wird.
password durch das Passwort des SMTP-E-Mail-Kontos.
john@example mit der E-Mail, die in der Absenderadresse erscheinen soll.
Sie müssen das WebMail-Objekt nicht in Ihrer AppStart-Datei initiieren, aber Sie müssen diese Eigenschaften festlegen, bevor Sie die Methode WebMail.Send() aufrufen .