使用 C# 向带有表情符号字符的 outlook 发送电子邮件

Sending an email to outlook with emoji characters using C#

我在网页上有一个用户输入。 他们能够输入消息并发送。

邮件通过 SMTP 发送给他们,他们将使用的客户端是 outlook。

我遇到的问题是表情符号 [‍‍♂️] 的数量各不相同??问号。

当他们粘贴作品中的内容时,还会出现一些有问题的字符,例如特殊引号和长破折号,当人们键入破折号时,通常会在 word 中替换它。

我知道 outlook 支持表情符号,因为我可以使用 Windows + ; 输入它们并发送它们。但是当我通过 SMTP 客户端发送它时,它以某种方式被破坏了。

调试在通过 SMTP 客户端发送之前正确显示表情符号。

有什么想法可以在不删除这些字符的情况下发送吗?我希望人们可以根据需要使用这些表情符号。

感谢@Steve 让我重新考虑显而易见的事情

原来我需要做的就是将消息上的 BodyEncoding 设置为 System.Text.Encoding.UTF8。 将 IsBodyHtml 属性 设置为 true 是不够的。

不确定如果不将其设置为 UTF8 就无法正常工作的默认设置是什么,但是哦,好吧。

mail.BodyEncoding = System.Text.Encoding.UTF8;

https://docs.microsoft.com/en-us/dotnet/api/system.net.mail.mailmessage.bodyencoding