链接无法在电子邮件正文中正确显示

问题描述:

我正在尝试发送包含链接的电子邮件,但它无法正常工作。链接无法在电子邮件正文中正确显示

以下是我有:

mail.Body = mail.Body + "<div>" + "<p><a href=" + 
         "http://serverName/projectName/controllerName/AllSummaries?yesterday=" + 
         DateTime.Today.AddDays(-1).Date.ToString("MM/dd/yyyy") + ">Click here to go to " + 
         DateTime.Today.AddDays(-1).Date.ToString("MM/dd/yyyy") + " summaries!</a></p>"; 

mail.IsBodyHtml = true; 

这个电子邮件中的结果是:

http://serverName/projectName/controllerName/AllSummaries?yesterday=04/04/2017 

它不应该是:

Click here to go to 04/04/2017 summaries!

我错过了什么?

UPDATE

字符串插值:

var date = DateTime.Today.AddDays(-1).Date.ToString("MM/dd/yyyy"); 
mail.Body += $"<div><p><a href='http://serverName/projectName/controllerName/AllSummaries?yesterday={date}'>Click here to go to {date} summaries</a></p></div>"; 

结果:

使用String.Format

时,我仍然看到完整链接..不是 Click here to go to {date} summaries

相同的结果

确保您在报价中包装href属性,并为每个现有标签设置适当的结束标签。

你可能要考虑使用String.Format()的方法来处理这个(或如String插值一个较新的方法)

// Using String.Format() 
mail.Body += String.Format("<div><p><a href='http://serverName/projectName/controllerName/AllSummaries?yesterday={0}'>Click here to go to {0} summaries</a></p></div>", DateTime.Today.AddDays(-1).Date.ToString("MM/dd/yyyy")); 

// Using String.Interpolation 
var date = DateTime.Today.AddDays(-1).Date.ToString("MM/dd/yyyy"); 
mail.Body += $"<div><p><a href='http://serverName/projectName/controllerName/AllSummaries?yesterday={date}'>Click here to go to {date} summaries</a></p></div>"; 
+0

我做的字符串插值,并且仍然导致相同的链接。奇怪。 –

+0

更新的问题 –

+0

固定..我正在储蓄,但不能重建..谢谢! –