ASP.NET Webbladsye - Die WebMail Helper


Die WebMail Helper - Een van baie nuttige ASP.NET Web Helpers.

Met die WebMail-voorwerp kan jy maklik e-posse vanaf 'n webblad stuur.


Die WebMail Helper

Die WebMail Helper maak dit maklik om 'n e-pos vanaf 'n webtoepassing te stuur met SMTP (Simple Mail Transfer Protocol).


Scenario: E-pos ondersteuning

Om die gebruik van e-pos te demonstreer, sal ons 'n invoerbladsy vir ondersteuning skep, die gebruiker die bladsy na 'n ander bladsy laat indien, en 'n e-pos stuur oor die ondersteuningsprobleem.


Eerstens: Wysig jou AppStart Page

As jy die Demo-toepassing in hierdie tutoriaal gebou het, het jy reeds 'n bladsy genaamd _AppStart.cshtml met die volgende inhoud:

_AppStart.cshtml

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

Om die WebMail-helper te begin, voeg die volgende WebMail-eienskappe by jou AppStart-bladsy:

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

}

Eienskappe verduidelik:

SmtpServer: Die naam van die SMTP-bediener wat gebruik sal word om die e-posse te stuur.

SmtpPort: Die poort wat die bediener sal gebruik om SMTP-transaksies (e-posse) te stuur.

EnableSsl: Waar, as die bediener SSL (Secure Socket Layer)-enkripsie moet gebruik.

Gebruikersnaam: Die naam van die SMTP-e-posrekening wat gebruik word om die e-pos te stuur.

Wagwoord: Die wagwoord van die SMTP-e-posrekening.

Van: Die e-pos wat in die vanaf-adres verskyn (dikwels dieselfde as Gebruikersnaam).



Tweedens: Skep 'n e-posinvoerbladsy

Skep dan 'n invoerbladsy en noem dit 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>

Die doel van die invoerbladsy is om inligting in te samel, en dan die data na 'n nuwe bladsy in te dien wat die inligting as 'n e-pos kan stuur.


Derde: Skep 'n e-pos-stuurbladsy

Skep dan die bladsy wat gebruik sal word om die e-pos te stuur, en noem dit 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-objekverwysing - Eienskappe

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-objekverwysing - Metodes

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

Die Send() metode het die 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 die volgende opsionele 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

Tegniese data

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

Inisialiseer die WebMail Helper

Om die WebMail-helper te gebruik, benodig jy toegang tot 'n SMTP-bediener. SMTP is die "uitvoer" deel van e-pos. As jy 'n webgasheer gebruik, ken jy waarskynlik reeds die naam van die SMTP-bediener. As jy in 'n korporatiewe netwerk werk, kan jou IT-afdeling jou die naam gee. As jy tuis werk, kan jy dalk jou gewone e-posverskaffer gebruik.

 Om 'n e-pos te stuur sal jy nodig hê:

  • Die naam van die SMTP-bediener
  • Die poortnommer (meestal 25)
  • 'n E-pos gebruikersnaam
  • 'n E-pos wagwoord

In die wortel van jou web, skep 'n bladsy (of wysig die bladsy ) met die naam _AppStart.cshtml .

Plaas die volgende kode in die lêer:

_AppStart.cshtml

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

Die kode hierbo sal loop elke keer as die webwerf (toepassing) begin. Dit voed jou WebMail-objek met aanvanklike waardes.

Vervang asseblief:

smtp.example.com met die naam die SMTP-bediener wat gebruik sal word om die e-posse te stuur.

25 met die poortnommer wat die bediener sal gebruik om SMTP-transaksies (e-posse) te stuur.

vals met waar, as die bediener SSL (Secure Socket Layer)-enkripsie moet gebruik.

[email protected] met die naam van die SMTP-e-posrekening wat gebruik word om e-posse te stuur.

wagwoord met die wagwoord van die SMTP-e-posrekening.

john@voorbeeld met die e-pos om in die van-adres te verskyn.

Jy hoef nie die WebMail-objek in jou AppStart-lêer te begin nie, maar jy moet hierdie eienskappe stel voordat jy die WebMail.Send() -metode aanroep.