html标签没有在c#string.format中格式化[重复]
Posted
技术标签:
【中文标题】html标签没有在c#string.format中格式化[重复]【英文标题】:Html tags not formating inside c# string.format [duplicate] 【发布时间】:2018-01-22 22:21:38 【问题描述】:我正在尝试发送一封电子邮件,其中包含字符串和参数中的格式化 html。 我的代码是这样的:
string title = "Big";
string text = "<p>email stuff with <b>important</b> 0 stuff</p>";
string.Format(text, title);
MailMessage msz = new MailMessage();
var studentEmail = "someplace@somewhere.net";
msz.To.Add(new MailAddress(studentEmail, "Someone"));
msz.From = new MailAddress(from);
msz.Subject = "Subject";
msz.Body = bodyText;
SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = true;
smtp.Send(msz);
我想在电子邮件中收到“important Big stuff”的电子邮件,但是我在电子邮件中收到了这个:<p>email stuff with <b>important</b> 0 stuff</p>
【问题讨论】:
你是如何发送电子邮件的? 您需要对文本进行转义。 无法在示例控制台应用程序上重现。它的格式为<p>email stuff with <b>important</b> Big stuff</p>
。
我正在使用 smtp 发送电子邮件
您是否将string.Format
的返回值分配给某个变量? :)
【参考方案1】:
您可以使用字符串插值直接添加您需要的值:
string title = "Big"
// Now this value has your expected output.
string text = $"<p>email stuff with <b>important</b> title stuff</p>";
【讨论】:
投反对票有什么原因吗?【参考方案2】:实际上这将取决于您如何发送电子邮件。
您应该将文本存储到 Body
的一部分 MailMessage
string title = "Big";
string text = "<p>email stuff with <b>important</b> 0 stuff</p>";
string.Format(text, title);
MailMessage message = new MailMessage();
message.From = "sender@abc.com");
message.To.Add("dummy@abc.com");
message.Subject = title;
message.IsBodyHtml = true;
message.Body = text;
使用IsBodyHtml = true
,它将帮助您格式化所有Html标签。
发送:
SmtpClient smtpClient = new SmtpClient()
...
smtpClient.Send(message);
【讨论】:
请添加否决理由 既然您已经提请注意您的代码,我也必须对其进行投票。帖子实际上并没有解释为什么 OP 与String.Format
存在问题,并且此帖子中的代码与原始代码具有完全相同的问题 - String.Format
的结果被忽略。展示如何实际发送 HTML 电子邮件很好,但这不是要问的问题(忽略 cmets)。以上是关于html标签没有在c#string.format中格式化[重复]的主要内容,如果未能解决你的问题,请参考以下文章
尽管在 Swing 组件中使用 String.format,但格式仍会摆动