Páginas da Web ASP.NET - O Auxiliar de WebMail
The WebMail Helper - Um dos muitos úteis ASP.NET Web Helpers.
Com o objeto WebMail você pode enviar e-mails facilmente de uma página da web.
O Auxiliar de WebMail
O WebMail Helper facilita o envio de um e-mail de um aplicativo da Web usando SMTP (Simple Mail transfer Protocol).
Cenário: Suporte por e-mail
Para demonstrar o uso do email, criaremos uma página de entrada para suporte, deixaremos o usuário enviar a página para outra página e enviaremos um email sobre o problema de suporte.
Primeiro: Edite sua página AppStart
Se você criou o aplicativo Demo neste tutorial, já tem uma página chamada _AppStart.cshtml com o seguinte conteúdo:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId",
"Email", true);
}
Para iniciar o auxiliar do WebMail, adicione as seguintes propriedades do WebMail à sua página do 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]";
}
Propriedades explicadas:
SmtpServer: O nome do servidor SMTP que será usado para enviar os emails.
SmtpPort: A porta que o servidor usará para enviar transações SMTP (e-mails).
EnableSsl: Verdadeiro, se o servidor deve usar criptografia SSL (Secure Socket Layer).
UserName: O nome da conta de e-mail SMTP usada para enviar o e-mail.
Senha: A senha da conta de e-mail SMTP.
De: O e-mail a ser exibido no endereço de origem (geralmente o mesmo que UserName).
Segundo: Crie uma página de entrada de e-mail
Em seguida, crie uma página de entrada e nomeie-a como 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>
O objetivo da página de entrada é coletar informações e, em seguida, enviar os dados para uma nova página que pode enviar as informações como um e-mail.
Terceiro: Crie uma página de envio de e-mail
Em seguida, crie a página que será usada para enviar o email e nomeie-a como 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>
}
}
Referência de Objeto WebMail - Propriedades
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 |
Referência de Objeto WebMail - Métodos
Method | Description |
---|---|
Send() | Sends an email message to an SMTP server for delivery |
O método Send() tem os seguintes parâmetros:
Parameter | Type | Description |
---|---|---|
to | String | The Email recipients (separated by semicolon) |
subject | String | The subject line |
body | String | The body of the message |
E os seguintes parâmetros opcionais:
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 |
Dados técnicos
Name | Value |
---|---|
Class | System.Web.Helpers.WebMail |
Namespace | System.Web.Helpers |
Assembly | System.Web.Helpers.dll |
Inicializando o Assistente do WebMail
Para usar o auxiliar do WebMail, você precisa acessar um servidor SMTP. SMTP é a parte de "saída" do e-mail. Se você usa um host da Web, provavelmente já sabe o nome do servidor SMTP. Se você trabalha em uma rede corporativa, seu departamento de TI pode fornecer o nome. Se você estiver trabalhando em casa, poderá usar seu provedor de e-mail comum.
Para enviar um e-mail você vai precisar de:
- O nome do servidor SMTP
- O número da porta (na maioria das vezes 25)
- Um nome de usuário de e-mail
- Uma senha de e-mail
Na raiz da sua web, crie uma página (ou edite a página ) chamada _AppStart.cshtml .
Coloque o seguinte código dentro do arquivo:
_AppStart.cshtml
@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password";
WebMail.From = "[email protected]"
}
O código acima será executado sempre que o site (aplicativo) for iniciado. Ele alimenta seu objeto WebMail com valores iniciais.
Por favor, substitua:
smtp.example.com com o nome do servidor SMTP que será usado para enviar os emails.
25 com o número da porta que o servidor usará para enviar transações SMTP (e-mails).
false com true, se o servidor deve usar criptografia SSL (Secure Socket Layer).
[email protected] pelo nome da conta de email SMTP usada para enviar emails.
senha com a senha da conta de e-mail SMTP.
john@example com o e-mail para aparecer no endereço do remetente.
Você não precisa iniciar o objeto WebMail em seu arquivo AppStart, mas deve definir essas propriedades antes de chamar o método WebMail.Send() .