ASP.NET webpagina's - De WebMail Helper


De WebMail Helper - Een van de vele handige ASP.NET Web Helpers.

Met het WebMail-object kunt u eenvoudig e-mails verzenden vanaf een webpagina.


De WebMail-helper

De WebMail Helper maakt het gemakkelijk om een ​​e-mail te verzenden vanuit een webtoepassing met behulp van SMTP (Simple Mail Transfer Protocol).


Scenario: e-mailondersteuning

Om het gebruik van e-mail te demonstreren, zullen we een invoerpagina voor ondersteuning maken, de gebruiker de pagina naar een andere pagina laten verzenden en een e-mail sturen over het ondersteuningsprobleem.


Ten eerste: bewerk uw app-startpagina

Als je de Demo-applicatie in deze tutorial hebt gebouwd, heb je al een pagina met de naam _AppStart.cshtml met de volgende inhoud:

_AppStart.cshtml

@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId", "Email", true);
}

Om de WebMail-helper te starten, voegt u de volgende WebMail-eigenschappen toe aan uw AppStart-pagina:

_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]";

}

Eigenschappen uitgelegd:

SmtpServer: De naam van de SMTP-server die zal worden gebruikt om de e-mails te verzenden.

SmtpPort: De poort die de server zal gebruiken om SMTP-transacties (e-mails) te verzenden.

EnableSsl: True, als de server SSL-codering (Secure Socket Layer) moet gebruiken.

Gebruikersnaam: de naam van het SMTP-e-mailaccount dat is gebruikt om de e-mail te verzenden.

Wachtwoord: Het wachtwoord van het SMTP-e-mailaccount.

Van: De e-mail die moet worden weergegeven in het van-adres (vaak hetzelfde als gebruikersnaam).



Ten tweede: een e-mailinvoerpagina maken

Maak vervolgens een invoerpagina en noem deze 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>

Het doel van de invoerpagina is om informatie te verzamelen en de gegevens vervolgens naar een nieuwe pagina te sturen die de informatie als e-mail kan verzenden.


Ten derde: maak een e-mailverzendpagina

Maak vervolgens de pagina die wordt gebruikt om de e-mail te verzenden en noem deze 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 Object Referentie - Eigenschappen

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 Object Referentie - Methoden

Method Description
Send() Sends an email message to an SMTP server for delivery

De methode Send() heeft de volgende parameters:

Parameter Type Description
to String The Email recipients (separated by semicolon)
subject String The subject line
body String The body of the message

En de volgende optionele parameters:

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 data

Name Value
Class System.Web.Helpers.WebMail
Namespace System.Web.Helpers
Assembly System.Web.Helpers.dll

De WebMail Helper initialiseren

Om de WebMail-helper te gebruiken, hebt u toegang tot een SMTP-server nodig. SMTP is het "uitvoer"-gedeelte van e-mail. Als je een webhost gebruikt, weet je waarschijnlijk al de naam van de SMTP-server. Als u in een bedrijfsnetwerk werkt, kan uw IT-afdeling u de naam geven. Als u thuis werkt, kunt u mogelijk uw gewone e-mailprovider gebruiken.

 Om een ​​e-mail te kunnen sturen heeft u nodig:

  • De naam van de SMTP-server
  • Het poortnummer (meestal 25)
  • Een e-mail gebruikersnaam
  • Een e-mailwachtwoord

Maak in de hoofdmap van uw web een pagina (of bewerk de pagina ) met de naam _AppStart.cshtml .

Zet de volgende code in het bestand:

_AppStart.cshtml

@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password";
WebMail.From = "[email protected]"
}

De bovenstaande code wordt uitgevoerd elke keer dat de website (applicatie) wordt gestart. Het voedt uw WebMail-object met beginwaarden.

Vervang alstublieft:

smtp.example.com met de naam van de SMTP-server die zal worden gebruikt om de e-mails te verzenden.

25 met het poortnummer dat de server zal gebruiken om SMTP-transacties (e-mails) te verzenden.

false met true, als de server SSL-codering (Secure Socket Layer) moet gebruiken.

[email protected] met de naam van het SMTP-e-mailaccount dat wordt gebruikt om e-mails te verzenden.

wachtwoord met het wachtwoord van het SMTP-e-mailaccount.

john@example met de e-mail die moet verschijnen in het van-adres.

U hoeft het WebMail-object niet in uw AppStart-bestand te starten, maar u moet deze eigenschappen instellen voordat u de methode WebMail.Send() aanroept.