1

我正在使用此 URL 将确认邮件发送到以下注册表

http://blogs.microsoft.co.il/blogs/shair/archive/2011/12/06/email-confirmation-asp-net-mvc-web-application.aspx#comments

但我遇到了错误。任何人都可以帮助我。

message.Subject = "Please Verify your Account";
MailBody.Append("<html><table cellpadding='0' cellspacing='0' width='100%' align='center'>" + "<tr><td><p>Dear " + user.UserName+ "</p><br>");
MailBody.Append("To verify your account, please click the following link:<span style='font-weight:bold;'> <a href=verifyUrl + "\" target="http://localhost:51819">" + verifyUrl + "+"</a></span> to complete your registration.<br>);
4

3 回答 3

2

您在第二个附录中缺少引号。脚本荧光笔甚至显示错误。

如果您想在字符串中使用双引号,则需要对其进行转义,例如 \"

所以你的第二个附加应该是这样的

  MailBody.Append("To verify your account, please click the following link:<span style='font-weight:bold;'><a href=\"" 
    + verifyUrl + "\" target=\"http://localhost:51819\">" 
    + verifyUrl + "</a></span> to complete your registration.<br>");
于 2012-12-20T09:43:01.577 回答
2

New line in constant是因为你在没有告诉编译器你想要第二行的情况下打破了这条线。

有 3 种方法可以解决此问题:

  • 不要断线
  • 转义每个特殊字符
  • 使用@符号做你想做的事

举个例子:

StringBuilder sb = new StringBuilder();

sb.Append("<html><table cellpadding='0' cellspacing='0' width='100%' align='center'>");
sb.Append("<tr><td><p>Dear " + user.UserName+ "</p><br>");
sb.Append("To verify your account, please click the following link:<span style='font-weight:bold;'>");
sb.Append("<a href='" + verifyUrl + "' target='http://localhost:51819'>" + verifyUrl + "</a></span> to complete your registration.<br>");

MailBody.Append(sb.ToString());

您还需要避免在字符串中混合使用单引号和双引号,想法是仅在内部使用单引号并使用双引号来分隔字符串

您也可以@在字符串前面使用 ,然后可以像这样换行

MailBody.Append(
   String.Format(
     @"<html>
       <table cellpadding='0' cellspacing='0' width='100%' align='center'>
         <tr>
           <td>
             <p>Dear {0}</p>
             To verify your account, please click the following link:
             <span style='font-weight:bold;'>
               <a href='{1}'>{1}</a>
             </span> to complete your registration.
           </td>
         </tr>
       </table>
       </html>", user.UserName, verifyUrl));

我也曾经StringBuilder避免在模板中包含变量,因为它使查看和编辑变得更加简单。

最后但并非最不重要的一点是,您应该对 HTML 有更多的了解......没有target="http://localhost:51819"...

于 2012-12-20T09:53:41.367 回答
0

你的第二个MailBody.Append都搞砸了

MailBody.Append("To verify your account, please click the following link:<span style='font-weight:bold;'> <a href="+verifyUrl + "\" target=\"http://localhost:51819\">" + verifyUrl + "</a></span> to complete your registration.<br>");
于 2012-12-20T09:45:48.743 回答