字符串不是注册的CreateUserWizard取代电子邮件 [英] String is not replaced in CreateUserWizard Registration Email
本文介绍了字符串不是注册的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屋!
查看全文