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.