ASP.NET 网页 - 网络邮件助手


WebMail Helper - 许多有用的 ASP.NET Web Helper 之一。

使用 WebMail 对象,您可以轻松地从网页发送电子邮件。


网络邮件助手

WebMail Helper 可以轻松地使用 SMTP(简单邮件传输协议)从 Web 应用程序发送电子邮件。


场景:电子邮件支持

为了演示电子邮件的使用,我们将创建一个支持输入页面,让用户将该页面提交到另一个页面,并发送有关支持问题的电子邮件。


首先:编辑您的应用程序起始页

如果您已在本教程中构建了演示应用程序,则您已经拥有一个名为 _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 = "support@example.com";
WebMail.Password = "password-goes-here";
WebMail.From = "john@example.com";

}

属性解释:

SMTP服务器:将用于发送电子邮件的 SMTP 服务器的名称。

SMTP端口:服务器将用于发送 SMTP 事务(电子邮件)的端口。

启用S​​SL:确实如此,如果服务器应该使用 SSL(安全套接字层)加密。

用户名:用于发送电子邮件的 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:"someone@example.com", 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 帮助程序,您需要访问 SMTP 服务器。 SMTP 是电子邮件的"output" 部分。如果您使用 Web 主机,您可能已经知道 SMTP 服务器的名称。如果您在公司网络中工作,您的 IT 部门可以为您提供该名称。如果您在家工作,您也许可以使用普通的电子邮件提供商。

为了发送电子邮件,您需要:

  • SMTP 服务器的名称
  • 端口号(通常为 25)
  • 电子邮件用户名
  • 电子邮件密码

在网站的根目录中,创建一个名为的页面(或编辑页面)_AppStart.cshtml

将以下代码放入文件中:

_AppStart.cshtml

@{
WebMail.SmtpServer = "smtp.example.com";
WebMail.SmtpPort = 25;
WebMail.EnableSsl = false;
WebMail.UserName = "support@example.com";
WebMail.Password = "password";
WebMail.From = "john@example.com"
}

上面的代码将在每次网站(应用程序)启动时运行。它喂养你的网络邮件对象与初始值。

请替换:

smtp.example.com名称为将用于发送电子邮件的 SMTP 服务器。

25以及服务器将用于发送 SMTP 事务(电子邮件)的端口号。

错误的如果服务器应使用 SSL(安全套接字层)加密,则为 true。

support@example.com以及用于发送电子邮件的 SMTP 电子邮件帐户的名称。

密码使用 SMTP 电子邮件帐户的密码。

约翰@例子电子邮件将显示在发件人地址中。

你不必须在 AppStart 文件中启动 WebMail 对象,但必须在调用之前设置这些属性WebMail.Send()方法。