我想在 ASP.NET 中向我的用户发送一封激活电子邮件。我应该指出,我通过创建用户向导间接创建了用户。我的意思是我使用会员方法并手动创建用户。我该怎么办?请通过一些代码告诉我。
Membership.CreateUser(TextBox1.Text, result.ToString(), TextBox1.Text);
Roles.AddUserToRole(TextBox1.Text, "Reviewer");
您可以创建自己的 MembershipProvider。如果您使用 SQL Server 作为您的成员数据存储,您可以从 SqlMembershipProvider 继承,覆盖其 CreateUser 方法,并将您的电子邮件代码放在自定义方法中。您需要通过在 web.config 中放置类似的内容来告诉您的应用程序使用您的自定义成员资格提供程序:
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear />
<add name="MyMembershipProvider" type="MyMembershipProviderNamespace.MyMembershipProvider, MyMembershipProviderAssembly" />
</providers>
</membership>
不幸的是,ASP.Net 会员在创建用户后没有开箱即用的发送激活电子邮件功能。
由于您自己创建用户,因此您可以轻松地在此之后立即调用 SendEmail 方法。
MembershipCreateStatus status;
var membershipUser = Membership.CreateUser(..., out status);
if (status == MembershipCreateStatus.Success)
SendEmail(...);
public void SendEmail(MailAddress from, MailAddress to,
string subject, string body)
{
var message = new MailMessage();
message.From = from;
message.To.Add(to);
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
var smtpClient = new SmtpClient("localhost");
smtpClient.Send(message);
}