Skip to main content
 首页 » 编程设计

c#之链接未在电子邮件正文中正确显示

2024年02月27日30lyhabc

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

这是我的:

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  

不应该是:

点击这里进入 04/04/2017 总结!?

我错过了什么?

更新

字符串插值:

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>"; 

结果:

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

使用 String.Format 时结果相同

请您参考如下方法:

确保将 href 属性用引号括起来,并为每个现有属性设置正确的结束标记。

您可能需要考虑使用 String.Format() 方法来处理此问题(或使用更新的方法,如字符串插值)

// 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>";