c# - 如何删除从 Web 应用程序发送的电子邮件的 base64 编码
问题描述
我正在开发一个 ASP.NET Web 应用程序。一项功能会发送“忘记密码”电子邮件。
我的客户抱怨他们无法查看电子邮件,因为他们的网络邮件客户端支持 RFC 标准并且无法读取 base64 编码格式的电子邮件(因为显然这不是 RFC 标准。)
我没有在我的代码中看到任何地方明确将任何内容设置为base64。所以我更改了 c# 代码以尝试强制它不是 base64 ......
部分代码......
mail.Body = messageBody;
mail.IsBodyHtml = true;
mail.BodyEncoding = Encoding.UTF8;
mail.BodyTransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
mail.Headers.Add("Content-Transfer-Encoding", "7BIT");
SmtpServer.Send(mail);
我收到电子邮件正常。但是当我深入研究电子邮件时,我看到了这个(部分片段)......
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=-xxxxxxx=="
--=-xxxxxx==
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
xxxxxx
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 7bit
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="2.0">
如您所见,“Content-Transfer-Encoding: base64”仍然显示,即使我在代码中的 2 个位置设置了 TransferEncoding。我不确定为什么。对此有何建议?
提前致谢!
解决方案
推荐阅读
- java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure ,关于mybatis
- javascript - 如何使用 bitcoinjs-lib 发送和接收比特币?
- android - 在颤振中,如何在 pubspec.yaml 文件中添加 tflite 作为依赖项?
- javafx - 上下文菜单中的第一个选项突出显示,而无需从 javafx 9 悬停鼠标
- stackblitz - stackblitz -> 因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查
- ios - 尝试使用无效网桥在“Networking”(NativeModule 名称)上调用(方法 ID)
- apache-spark - form_json return null values
- java - 在 java 中启用 excel 的宏中评估单元格公式时出错
- android - 从一个屏幕路由到另一个屏幕时显示错误
- rust - 通过借款参考作为不借款