如何解决如何在 C# 中发送之前替换邮件模板中的某些内容?
我创建了一个邮件模板,但是 cs 文件中的某些值将是动态的,我尝试在邮件模板中使用 ##username , 并使用 mailbody.Replace("##UserName","jack");替换邮件模板中的用户名值,但在我的邮件中仍然显示##UserName, 请问如何在C#中发送之前替换邮件模板中的一些内容?
我的邮件模板:mailtemplate.html:
<div>
<table>
<tr>
<td> ##UserName<span style='font-size:24px'><span></td>
</tr>
</table>
</div>
</div>
我的 sendmail.aspx.cs :
System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
string mailbody = string.Empty;
using (StreamReader reader = new StreamReader(HttpContext.Current.Server.MapPath("mailtemplate.html")))
{
mailbody = reader.ReadToEnd();
}
mailbody.Replace("##UserName","jack");
mm.Body = mailbody;
解决方法
您只是在使用您的“原始”邮件正文。
你需要这样做
mailbody = mailbody.Replace("##UserName","jack");
然后 mailbody
将具有替换的文本....如果不是您只是替换,而是丢弃结果...
在 C# 中,字符串是不可变的,所以你会得到一个新的,并带有所需的替换
所以这个
mailbody = mailbody.Replace("##UserName","jack");
mm.Body = mailbody;
或者这个
var replacedBody = mailbody.Replace("##UserName","jack");
mm.Body = replacedBody;
或者这个
mm.Body = mailbody.Replace("##UserName","jack");;
应该可以。您只需要使用 Replace
的返回值而不是原始字符串(您在做什么)
看看here at the docs。替换返回一个string
,这是您要查找的结果字符串
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。