Веб-страницы ASP.NET — помощник WebMail
WebMail Helper — один из многих полезных веб-помощников ASP.NET.
С помощью объекта WebMail вы можете легко отправлять электронные письма с веб-страницы.
Помощник веб-почты
WebMail Helper упрощает отправку электронной почты из веб-приложения с использованием SMTP (простой протокол передачи почты).
Сценарий: поддержка по электронной почте
Чтобы продемонстрировать использование электронной почты, мы создадим страницу ввода для поддержки, позволим пользователю отправить страницу на другую страницу и отправить электронное письмо о проблеме поддержки.
Во-первых: отредактируйте свою стартовую страницу приложения
Если вы создали демонстрационное приложение в этом учебнике, у вас уже есть страница с именем _AppStart.cshtml со следующим содержимым:
_AppStart.cshtml
@{
WebSecurity.InitializeDatabaseConnection("Users", "UserProfile", "UserId",
"Email", true);
}
Чтобы запустить помощник WebMail, добавьте следующие свойства WebMail на страницу 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]";
}
Объяснение свойств:
SmtpServer: имя SMTP-сервера, который будет использоваться для отправки электронных писем.
SmtpPort: порт, который сервер будет использовать для отправки SMTP-транзакций (электронной почты).
EnableSsl: True, если сервер должен использовать шифрование SSL (Secure Socket Layer).
Имя пользователя: имя учетной записи электронной почты SMTP, используемой для отправки электронной почты.
Пароль: пароль учетной записи электронной почты SMTP.
От: электронная почта, которая будет отображаться в адресе отправителя (часто совпадает с именем пользователя).
Второе: создайте страницу ввода электронной почты
Затем создайте страницу ввода и назовите ее 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>
Целью страницы ввода является сбор информации, а затем отправка данных на новую страницу, которая может отправлять информацию по электронной почте.
Третье: создайте страницу отправки электронной почты
Затем создайте страницу, которая будет использоваться для отправки электронной почты, и назовите ее 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 — свойства
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 — методы
Method | Description |
---|---|
Send() | Sends an email message to an SMTP server for delivery |
Метод Send() имеет следующие параметры:
Parameter | Type | Description |
---|---|---|
to | String | The Email recipients (separated by semicolon) |
subject | String | The subject line |
body | String | The body of the message |
И следующие необязательные параметры:
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 |
Технические данные
Name | Value |
---|---|
Class | System.Web.Helpers.WebMail |
Namespace | System.Web.Helpers |
Assembly | System.Web.Helpers.dll |
Инициализация помощника WebMail
Чтобы использовать помощник WebMail, вам нужен доступ к SMTP-серверу. SMTP — это «выходная» часть электронной почты. Если вы используете веб-хостинг, вы, вероятно, уже знаете имя SMTP-сервера. Если вы работаете в корпоративной сети, ваш ИТ-отдел может дать вам имя. Если вы работаете дома, вы можете использовать своего обычного поставщика услуг электронной почты.
Для того, чтобы отправить электронное письмо, вам потребуется:
- Имя SMTP-сервера
- Номер порта (чаще всего 25)
- Имя пользователя электронной почты
- Пароль электронной почты
В корне вашего веб-сайта создайте страницу (или отредактируйте страницу) с именем _AppStart.cshtml .
Поместите следующий код внутрь файла:
_AppStart.cshtml
@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "[email protected]";
WebMail.Password = "password";
WebMail.From = "[email protected]"
}
Приведенный выше код будет выполняться каждый раз при запуске веб-сайта (приложения). Он передает вашему объекту WebMail начальные значения.
Пожалуйста, замените:
smtp.example.com с именем SMTP-сервера, который будет использоваться для отправки электронных писем.
25 с номером порта, который сервер будет использовать для отправки SMTP-транзакций (электронных писем).
false с true, если сервер должен использовать шифрование SSL (Secure Socket Layer).
[email protected] с именем учетной записи электронной почты SMTP, используемой для отправки электронных писем.
пароль с паролем учетной записи электронной почты SMTP.
john@example с адресом электронной почты, который должен отображаться в адресе отправителя.
Вам не нужно инициировать объект WebMail в файле AppStart, но вы должны установить эти свойства перед вызовом метода WebMail.Send() .