ChangePassword.MailDefinition 属性

定义

获取对属性集合的引用,这些属性定义在用户更改密码后发送给用户的电子邮件。

public:
 property System::Web::UI::WebControls::MailDefinition ^ MailDefinition { System::Web::UI::WebControls::MailDefinition ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
[System.Web.UI.Themeable(false)]
public System.Web.UI.WebControls.MailDefinition MailDefinition { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
[<System.Web.UI.Themeable(false)>]
member this.MailDefinition : System.Web.UI.WebControls.MailDefinition
Public ReadOnly Property MailDefinition As MailDefinition

属性值

MailDefinition 对象的引用,该对象定义发送给新用户的电子邮件。

属性

例外

From 属性未设置为电子邮件地址。

示例

下面的代码示例演示如何使用 MailDefinition 属性定义发送给更改其密码的用户的电子邮件。 它假定有一个名为 MailFile.txt 的文件,其中包含要发送的电子邮件的文本。

若要向用户发送电子邮件,必须在应用程序的 Web.config 文件中配置电子邮件服务器。 有关详细信息,请参阅 如何:在 IIS 6.0中安装和配置 SMTP 虚拟服务器。

<%@ page language="C#"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  void Changepassword1_SendingMail(object sender, MailMessageEventArgs e)
  {
    // Set mail message fields.
    e.Message.Subject = "New user on Web site.";
    // Replace placeholder text in message body with
    // information provided by the user.
    e.Message.Body = e.Message.Body.Replace("<%ChangedDate%>", (DateTime.Now.ToString()) );
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:changepassword id="Changepassword1" runat="server" 
        maildefinition-bodyfilename="~/MailFiles/mailfile.txt" 
          maildefinition-from="userAdmin@your.site.name.here" 
          onsendingmail="Changepassword1_SendingMail">
      </asp:changepassword>
    </div>
    </form>
</body>
</html>
<%@ page language="VB"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  Sub Changepassword1_SendingMail(ByVal sender As Object, ByVal e As MailMessageEventArgs)
        ' Set mail message fields.
        e.Message.Subject = "New user on Web site."
        ' Replace placeholder text in message body with information 
        '  provided by the user. 
        e.Message.Body = e.Message.Body.Replace("<%ChangedDate%>", DateTime.Now.ToString())
  End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
      <asp:changepassword id="Changepassword1" runat="server" 
          maildefinition-bodyfilename="~/MailFiles/mailfile.txt"
          maildefinition-from="userAdmin@your.site.name.here" 
          onsendingmail="Changepassword1_SendingMail">
      </asp:changepassword>
    </div>
    </form>
</body>
</html>

注解

MailDefinition 属性返回对一组属性的引用,这些属性用于定义在用户更改密码后发送给用户的电子邮件的格式和内容。 常见设置包括主题行和发件人的返回地址。 有关属性的完整列表,请参阅 MailDefinition

MailDefinition 属性为只读;但是,可以设置它返回的 MailDefinition 对象的属性。 可以在 属性-子属性的形式设置这些属性,其中 子属性 表示 MailDefinition 类的属性(例如,MailDefinition-Subject)。 还可以以编程方式在属性 属性.子属性(例如,MailDefinition.Subject)窗体中设置属性。

仅当用户具有注册到成员资格提供程序的电子邮件地址以及 MailDefinition 属性的 BodyFileName 属性指向有效文件时,才会发送一封电子邮件。 如果设置了 BodyFileName 属性,则必须将 From 属性设置为电子邮件地址;否则,将引发 HttpException 异常。

如果电子邮件是从 MailDefinition 对象创建的,它将进行下表中显示的替换。 替换文本不区分大小写。

替换文本 替换为
<%UserName%> 用户的网站用户名。
<%密码%> 用户的新密码。

如果 MailDefinition 对象的 IsBodyHtml 属性 true,则邮件的内容将采用 HTML 编码,以防止邮件收件人的跨站点脚本安全漏洞。

可以使用 SendingMail 事件修改由 MailDefinition 对象创建的 MailMessage 对象。

重要

在电子邮件中发送用户帐户名或密码是潜在的安全威胁。 电子邮件通常以纯文本形式发送,可通过特殊的网络“嗅探”应用程序读取。 若要提高安全性,请使用 保护登录控件中所述的缓解措施。

此属性不能由主题或样式表主题设置。 有关详细信息,请参阅 ThemeableAttributeASP.NET 主题和皮肤

适用于

另请参阅