首页 > 解决方案 > 如何删除从 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。我不确定为什么。对此有何建议?

提前致谢!

标签: c#emailencoding

解决方案


推荐阅读