我的应用程序正在使用MAPISendMail发送电子邮件。电子邮件使用空格格式化。例如:
Date Sent 12/4/2018
然而,当电子邮件在Thunderbird(我的默认电子邮件应用程序)中弹出时,空间全部消失了。看起来它正在将消息解释为HTML。
如果我将Outlook设为默认电子邮件包,则不会发生这种情况。我可以从应用程序端(C ++,Windows,MAPI)做些什么来说服Thunderbird单独留下消息?关于消息参数的含义,文档似乎有点模糊。
从根本上说,发送的功能看起来像这样(在哪里,主题和正文都填充并传入了字符串):
MapiRecipDesc rec;
MapiMessage msg;
bool sent = false;
LHANDLE session = 0;
memset(&msg, 0, sizeof(MapiMessage));
memset(&rec, 0, sizeof(MapiRecipDesc));
rec.ulRecipClass = MAPI_TO;
rec.lpszName = (LPSTR)to;
msg.lpszSubject = (LPSTR)subject;
msg.lpszNoteText = (LPSTR)body;
msg.nRecipCount = (to != 0) ? 1 : 0;
msg.lpRecips = &rec;
ULONG e = MAPISendMail(session, (ULONG_PTR)hWnd, &msg, MAPI_LOGON_UI|MAPI_DIALOG, 0);