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 .