【发布时间】:2020-09-13 01:24:17
【问题描述】:
首先,我不知道我的问题是由于 Mailkit 使用不当(顺便说一句,这是一款很棒的软件)还是 smtp.office365.com 的配置错误。
MailKit 的版本是:2.6.0
我尝试在主题和正文中使用此字符串Test d'ênvoïe d'èmail avec des àccénts 发送消息。
当我使用smtp.office365.com账号发送邮件时,当我在office 365邮箱中收到邮件时,主题很好,但是正文看起来像Test d'�nvo�e d'�mail avec des �cc�nts。
我尝试使用另一个公司的另一个 smtp.office365.com 帐户,当我在我的 office 365 盒子中收到它时,主题和正文都很好。
我尝试使用第一个 smtp 帐户向 GMAIL 邮箱发送相同的电子邮件。主体和身体都很好。
所以我不知道是第一个 smtp 帐户配置错误,还是 Outlook(桌面和网页)有问题?
发送电子邮件的代码非常简单,没有使用任何花哨的东西。该代码每天都用于从我们的软件发送电子邮件,这是我们第一次遇到此类 smtp 问题。让我困扰的是,它是一个 office 365 smtp,就像我们每天使用的一样,没有任何问题。
--- 编辑 根据@jstedfast 的要求,这里是 MimeKit/MailKit 生成的原始 MIME
From: email@domain.com
Date: Tue, 26 May 2020 14:16:13 +0000
Subject: Test =?utf-8?b?ZCfDqm52b8OvZSBkJ8OobWFpbCBhdmVjIGRlcyDDoGNjw6ludHM=?=
Message-Id: <54G3D036QAU4.3G654QDV2MVS2@4b245b0f83f4>
To: some@email.com
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=-xjuWE0kh6/lmMc7JIcMJ3g=="
--=-xjuWE0kh6/lmMc7JIcMJ3g==
Content-Type: text/plain; charset=utf-8
Test d'ênvoïe d'èmail avec des àccénts ça, ~ $ #{][*µµ$£= +
--=-xjuWE0kh6/lmMc7JIcMJ3g==
Content-Type: text/html; charset=utf-8
Content-Id: <RUL3D036QAU4.Y7K3UPECLV0Q3@4b245b0f83f4>
Test d'ênvoïe d'èmail avec des àccénts ça, ~ $ #{][*µµ$£= +
--=-xjuWE0kh6/lmMc7JIcMJ3g==--
【问题讨论】:
-
您正在使用特殊字符,因此您需要使用 System.Net.WebUtility.HtmlEncode(string) 对字符串进行编码。然后在接收端解码:System.Net.WebUtility.HtmlDecode(string)。如果这不是问题,那么要么您使用文本模式发送仅处理 ASCII 字符(除非您更改默认编码),要么您没有安装处理消息中使用的字符集(编码)的字体.我已经看到了所有 3 种类型的问题,很难区分是哪一种导致了这个问题。
-
不,不要使用 HtmlEncode/Decode 进行编码 - 这是针对 HTML 而不是电子邮件,它使用不同的编码规则。
标签: c# email smtp office365 mailkit