Pagine Web ASP.NET - L'helper WebMail


The WebMail Helper - Uno dei tanti utili Web Helper di ASP.NET.

Con l'oggetto WebMail puoi inviare facilmente email da una pagina web.


L'assistente di posta web

WebMail Helper semplifica l'invio di un'e-mail da un'applicazione Web utilizzando SMTP (Simple Mail Transfer Protocol).


Scenario: supporto e-mail

Per dimostrare l'uso dell'e-mail, creeremo una pagina di input per il supporto, consentiremo all'utente di inviare la pagina a un'altra pagina e invieremo un'e-mail sul problema del supporto.


Primo: modifica la tua pagina AppStart

Se hai creato l'applicazione Demo in questo tutorial, hai già una pagina chiamata _AppStart.cshtml con il seguente contenuto:

_AppStart.cshtml

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

Per avviare l'helper WebMail, aggiungi le seguenti proprietà WebMail alla pagina AppStart:

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

}

Proprietà spiegate:

SmtpServer: il nome del server SMTP che verrà utilizzato per inviare le e-mail.

SmtpPort: la porta che il server utilizzerà per inviare le transazioni SMTP (e-mail).

EnableSsl: True, se il server deve utilizzare la crittografia SSL (Secure Socket Layer).

UserName: il nome dell'account e-mail SMTP utilizzato per inviare l'e-mail.

Password: la password dell'account e-mail SMTP.

Da: l'e-mail da visualizzare nell'indirizzo da (spesso uguale a UserName).



Secondo: crea una pagina di input e-mail

Quindi crea una pagina di input e chiamala 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>

Lo scopo della pagina di input è raccogliere informazioni, quindi inviare i dati a una nuova pagina che può inviare le informazioni come e-mail.


Terzo: crea una pagina di invio e-mail

Quindi crea la pagina che verrà utilizzata per inviare l'e-mail e chiamala 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>
}
}

Riferimento oggetto WebMail - Proprietà

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

Riferimento all'oggetto WebMail - Metodi

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

Il metodo Send() ha i seguenti parametri:

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

E i seguenti parametri opzionali:

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

Dati tecnici

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

Inizializzazione dell'helper WebMail

Per utilizzare l'helper WebMail, è necessario accedere a un server SMTP. SMTP è la parte di "output" dell'e-mail. Se utilizzi un host web, probabilmente conosci già il nome del server SMTP. Se lavori in una rete aziendale, il tuo reparto IT può darti il ​​nome. Se lavori da casa, potresti essere in grado di utilizzare il tuo normale provider di posta elettronica.

 Per inviare un'e-mail avrai bisogno di:

  • Il nome del server SMTP
  • Il numero di porta (il più delle volte 25)
  • Un nome utente di posta elettronica
  • Una password e-mail

Nella radice del tuo Web, crea una pagina (o modifica la pagina) denominata _AppStart.cshtml .

Metti il ​​seguente codice all'interno del file:

_AppStart.cshtml

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

Il codice sopra verrà eseguito ogni volta che il sito Web (applicazione) viene avviato. Alimenta il tuo oggetto WebMail con i valori iniziali.

Si prega di sostituire:

smtp.example.com con il nome del server SMTP che verrà utilizzato per inviare le email.

25 con il numero di porta che il server utilizzerà per inviare le transazioni SMTP (e-mail).

false con true, se il server deve utilizzare la crittografia SSL (Secure Socket Layer).

[email protected] con il nome dell'account e-mail SMTP utilizzato per inviare e-mail.

password con la password dell'account e-mail SMTP.

john@example con l'e-mail da visualizzare nell'indirizzo da.

Non è necessario avviare l'oggetto WebMail nel file AppStart, ma è necessario impostare queste proprietà prima di chiamare il metodo WebMail.Send() .