字符串不是注册的CreateUserWizard取代电子邮件 [英] String is not replaced in CreateUserWizard Registration Email

查看:102
本文介绍了字符串不是注册的CreateUserWizard取代电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的网站允许用户创建帐户。

一旦建立,与URL的电子邮件确认将被发送到用户的电子邮件。

问题:邮件的发送工作,但不幸的是,验证URL没有出现

和对

 < A HREF =<%VerifyUrl%GT;<%verifyUrl%GT;< / A>< / P>

还有下方的绿色大线<%VerifyUrl%>,指出这个文件找不到。

这是为Login.aspx的源$ C ​​$ C:

 保护无效CreateUserWizard1_SendingMail(对象发件人,MailMessageEventArgs E)
{
    用户信息的MembershipUser = Membership.GetUser(CreateUserWizard1.UserName);    //构造验证网址
    串verifyUrl = Request.Url.GetLeftPart(UriPartial.Authority)+ Page.ResolveUrl(?〜/ Verify.aspx ID =+ userInfo.ProviderUserKey.ToString());   //将<%VerifyUrl%GT;占位符verifyUrl价值
    e.Message.Body = e.Message.Body.Replace(VerifyUrl,verifyUrl.ToString());
}

这是HTML文件,将在其电子邮件看看用户:

 < H2>欢迎到我的网站<!/ H>
&所述p为H.;
    你好,<%USERNAME%取代。您收到此邮件是因为你最近在创建新帐户我
    现场。之前您可以登录,但是,你需要先访问以下链接:LT; / P>
&所述p为H.;
    &所述; A HREF =&下;%VerifyUrl%gt;中与GT;&下;%verifyUrl%GT;&下; / A>&下; / P>
&所述p为H.;
    访问上面的链接后,您可以登录到该网站<!/ P>
&所述p为H.;
    如果您有验证您的帐户有任何问题,请回复此邮件给
    获得帮助与LT; / P>
&所述p为H.;
    !感谢和LT; / P>


解决方案

不是一个解决方案,但一个解决方法是:

 暗淡电子邮件= RegisterUser.Email
    昏暗的用户名= Membership.GetUser(RegisterUser.UserName).ProviderUserKey
    昏暗的user1由于=的MembershipUser Membership.GetUser(RegisterUser.UserName)
    昏暗verifyUrl作为字符串= Server.HtmlEn code(Request.Url.GetLeftPart(UriPartial.Authority)+ Page.ResolveUrl(〜/帐号/ ActivateUsers.aspx用户名=?)+ UserID.ToString +&放大器;电子邮件=+ RegisterUser.Email)
    e.Message.Body =<!DOCTYPE HTML>中
    e.Message.Body + =< HTML的xmlns =http://www.w3.org/1999/xhtml>中
    e.Message.Body + =< HEAD>中
    e.Message.Body + =<标题>< /标题>中
    e.Message.Body + =<风格>机身{文字修饰:无; FONT-FAMILY:宋体,宋体,无衬线; FONT-SIZE:10.0pt; FONT-体重:正常;文本对齐:左;溢出:可见;}< /风格与GT;
    e.Message.Body + =< /头>中
    e.Message.Body + =<身体GT;
    e.Message.Body + =< P>感谢您注册激活您的帐户,请点击以下链接:< BR />< BR />中
    e.Message.Body + = verifyUrl
    e.Message.Body + =&下; / P>中
    e.Message.Body + =< /身体GT;
    e.Message.Body + =< / HTML>中
    e.Message.To.Add(Email.Trim())
    e.Message.Subject =XXXXXX帐户激活电子邮件
    昏暗的SmtpMail作为SmtpClient =新SmtpClient()
    smtpMail.Send(e.Message)

希望这可以帮助别人。

My website allows users to create accounts.

Upon creating, an email verification with a URL will be send to the user's email.

Problem: The sending of email worked but unfortunately the verification URL did not appear.

And for

<a href="<%VerifyUrl%>"<%verifyUrl%></a></p> 

there is a green curly line beneath "<%VerifyUrl%>", stating that this file could not be found.

This is the source code of Login.aspx :

protected void CreateUserWizard1_SendingMail(object sender,MailMessageEventArgs e)
{
    MembershipUser userInfo = Membership.GetUser(CreateUserWizard1.UserName);

    //Construct the verification URL
    string verifyUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Page.ResolveUrl("~/Verify.aspx?ID=" + userInfo.ProviderUserKey.ToString());

   // Replace <%VerifyUrl%> placeholder with verifyUrl value
    e.Message.Body = e.Message.Body.Replace("VerifyUrl", verifyUrl.ToString());
}

This is the html file that what user would see in their email:

<h2> Welcome to My Website!</h2>
<p>
    Hello, <%UserName%>. You are receiving this email because you recently created a new account at my 
    site. Before you can login, however, you need to first visit the following link:</p>
<p>
    <a href="<%VerifyUrl%>"><%verifyUrl%></a></p>
<p>
    After visiting the above link you can log into the site!</p>
<p>
    If you have any problems verifying your account, please reply to this email to 
    get assistance.</p>
<p>
    Thanks!</p>

解决方案

Not a solution but a workaround is:

    Dim Email = RegisterUser.Email
    Dim UserID = Membership.GetUser(RegisterUser.UserName).ProviderUserKey
    Dim user1 As MembershipUser = Membership.GetUser(RegisterUser.UserName)
    Dim verifyUrl As String = Server.HtmlEncode(Request.Url.GetLeftPart(UriPartial.Authority) + Page.ResolveUrl("~/Account/ActivateUsers.aspx?UserID=") + UserID.ToString + "&Email=" + RegisterUser.Email)
    e.Message.Body = "<!DOCTYPE html>"
    e.Message.Body += "<html xmlns=""http://www.w3.org/1999/xhtml"">"
    e.Message.Body += "<head>"
    e.Message.Body += "<title></title>"
    e.Message.Body += "<style>body{text-decoration:none;font-family:Arial, Verdana, sans-serif;font-size:10.0pt;font-weight:normal;text-align:left;overflow: visible;}</style>"
    e.Message.Body += "</head>"
    e.Message.Body += "<body>"
    e.Message.Body += "<p>Thank you for registering. To activate your account please click on the link below:<BR /><BR />"
    e.Message.Body += verifyUrl
    e.Message.Body += "</p>"
    e.Message.Body += "</body>"
    e.Message.Body += "</html>"
    e.Message.To.Add(Email.Trim())
    e.Message.Subject = "xxxxxx Account activation Email"
    Dim smtpMail As SmtpClient = New SmtpClient()
    smtpMail.Send(e.Message)

Hope this helps somebody.

这篇关于字符串不是注册的CreateUserWizard取代电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆