【发布时间】:2019-06-23 14:43:18
【问题描述】:
当我在主题/正文中传递俄语文本时。打开的电子邮件中的文本将替换为问号。
我正在使用代码项目参考中的 MAPI https://www.codeproject.com/Articles/17561/Programmatically-adding-attachments-to-emails-in-C
我尝试使用 mailto,它会在我传递给它时设置文本,但 我无法使用 mailto 添加附件:
string mailto = string.Format("mailto:?cc={0}&Subject={1}&Body={2}&attachment={3}", ccEmailId, subject, body, attachmentPath);
mailto = Uri.EscapeUriString(mailto);
Process proc = Process.Start(mailto);
通过一些研究,我发现使用 Outlook 互操作可能是一种解决方法,但我不确定最终用户计算机上将哪个电子邮件客户端设置为默认值。
开发机器上的 Outlook 设置: !https://ibb.co/b5XK5rV
有没有其他方法可以让我在邮件消息上设置附件并启动电子邮件对话,同时以任何语言传递不会转换为问号的文本(??????)。
【问题讨论】:
-
这可能是由于编码,因为西欧可能不支持俄语字符
-
我尝试将编码更改为 utf-8,但它具有相同的行为..显示俄语文本的问号
-
你传递给mapi的字符串是什么编码的?有一些“奇怪”的俄罗斯编码可能需要先转换
-
我也尝试安装俄语,设置为默认编辑和显示语言..仍然显示??对于从 MAPI 添加的俄语文本
-
我没有对字符串进行任何编码,我从另一个服务接收字符串消息并直接传递给 MAPI。 mapimessage 类如下:[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] public class MapiMessage { } @SebastianL