c# - 使用 .NET 生成 HTML 电子邮件
问题描述
两天来,我一直在努力使用 .NET 应用程序生成简单的 HTML 电子邮件。关于这个主题已经有几个已回答的 问题,并且每种情况的语法都相对简单。我仍然花了一天多的时间让它开始工作。然而,该解决方案提出了更多问题。我查看了 Microsoft文档,但没有发现任何内容。
此语法有效,并将生成 HTML 电子邮件:
MailMessage message = new MailMessage();
message.Subject = "Test";
message.From = new MailAddress("user@athisaddress.com");
message.To.Add("me@myorg.com");
message.Body = "<strong>This is a test</strong>";
message.IsBodyHtml = true;
smtpClient.Send(message);
但是,如果我使用具有四个参数签名的 SmtpClient 对象的 Send 方法,它将不会生成 HTML 电子邮件:
smtpClient.Send("user@athisaddress.com", "me@myorg.com",
message.Subject, message.Body);
谁能解释为什么会这样。它是记录在案的,还是一个已知的“问题”?IsBodyHtml 在这两种情况下都设置为 true。
解决方案
我认为对此的解释相当简单。
在第一种情况下,您在对象中明确设置isBodyHtml
为 true 。MailMessage
然后将MailMessage
对象传递给Send()
方法。因此,它会按照您的说明将电子邮件格式化为 HTML。
在第二种情况下,您无法告诉系统电子邮件应该是什么格式。纯文本通常是默认格式,因此在没有任何其他说明的情况下,我希望这就是它将使用的格式。
注意,您声称isBodyHTML
在这两种情况下都设置为 true,但这没有任何意义。在第二种情况下,您没有将MailMessage
对象传递给方法......该IsBodyHtml
属性属于MailMessage
. 那么,您还能如何以及在哪里设置这样的值呢?
在第二种情况下,该方法获得的唯一值是Send()
四个字符串(from
、to
和)。它不会收到有关电子邮件的任何其他信息。该属性从未使用过,因为它是 un-used 的一部分。subject
body
isBodyHTML
MailMessage
推荐阅读
- python - 谁能告诉我如何检查 Pytorch 模型是否存在,如果存在,删除它并用新模型替换它?
- arrays - Python BoxCox 函数产生空数组
- reactjs - react-rte(富文本编辑器):如何为自定义组件实现内联样式?
- swift - 如何将 Swift 连接到托管在 Google Cloud 上的 postgresql 数据库
- javascript - 修改数据表按钮操作
- java - 如何使用非 GMT 时区解析 TZ 格式时间
- python - boost-python - 使用默认参数公开 C++(非纯)虚拟方法
- reactjs - 材质 UI:deck gl 覆盖网格
- java - 无法解析位置/'resources/
- python-3.x - Google Cloud Functions 对默认数据库中 Google Cloud Firestore 集合的读取权限的访问问题