使用MailMessage时,为什么变量为空

时间:2015-06-19 14:17:05

标签: c# mailmessage

我有以下代码:

try
{
    MailMessage mmSendEmail = new MailMessage();
    mmSendEmail.To.Add("abc@xyz.com");
    mmSendEmail.From = new MailAddress("abc@xyz.com");
    mmSendEmail.Subject = "Task#: " + s; //'s' is a query string from the URL of the page
    mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID='" + s +"' title='override'>task</a>";
    mmSendEmail.IsBodyHtml = true;

    SmtpClient scSend = new SmtpClient("mymailserverip");
    scSend.Send(mmSendEmail);
}

我从以上代码收到以下电子邮件:

Subject: Task #: 0908090
Body: task ID: 0908090 <a href="http://mypage.com/page.aspx?ID=">task</a>

如何从链接中遗漏ID,但在其他地方显示。

4 个答案:

答案 0 :(得分:2)

请注意,您的其他属性也缺失了 - 您的引号错误:

mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID='" + s +"' title='override'>task</a>";
                                                                                            ^

突出显示的引文不应该存在,它应该只是:

mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID=" + s +"' title='override'>task</a>";

更好的解决方案是使用String.Format,因为它会减少各种报价的开始/停止,并且很容易发现这样的问题:

mmSendEmail.Body = String.Format("task ID: {0}.<br /><br /> <a href='http://mypage.com/page.aspx?ID={0}' title='override'>task</a>", s);

答案 1 :(得分:2)

尝试字符串格式:

String.Format("task ID: {0}.<br /><br /> <a href='http://mypage.com/page.aspx?ID={0}' title='override'>task</a>",s)

答案 2 :(得分:1)

我认为&#39;应删除:

mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID='" + s +"' title='override'>task</a>";

应该是:

mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID=" + s +"' title='override'>task</a>";

否则链接呈现如下:

<a href='http://mypage.com/page.aspx?ID='s' title='override'>task</a>

...这不是一个有效的href;)

答案 3 :(得分:1)

我认为查询字符串中s的单引号正在结束你的href。 所以用以下代码替换它:

mmSendEmail.Body = "task ID: " + s + ".<br /><br /> <a href='http://mypage.com/page.aspx?ID=" + s +"' title='override'>task</a>";