我在MFC應用程序中使用MAPISendMail(),並遇到webmail客戶端有時會收到winmail.dat附件而不是「真正的」附件的問題。MAPISendMail與Outlook有時會導致winmail.dat
我研究了很多,發現其他人也遇到這個問題,但還沒有找到解決方案。
我認爲,問題可能出在我MapiFileDesc結構,在我離開lpFileType成員指向NULL,纔能有郵件程序(在我的情況下,Outlook 2010中)自動判斷文件類型。 lpFiletype是MapiFileTagExt結構,並且該文檔這樣說: NULL值表示一個未知文件類型或由操作系統所確定的文件類型。
所以我相信這應該適用於常見的類型,如JPEG或GIF等。
我讀到winmail.dat是由Outlook發送編碼爲Microsoft專有的ms-tnef編碼的郵件引起的。但是,在發送電子郵件時,Outlook將突出顯示「HTML」,而不是RTF。
有沒有人遇到這個問題,並妥善解決它?
通過SMTP發送信息並不是一種選擇,因爲用戶應該在其「已發送郵件」文件夾中有郵件副本。 使用Outlook對象模型不是一種選擇,因爲這需要用戶安裝Outlook,而不是任何MAPI兼容客戶端。
謝謝你的回答。我明天將在工作中嘗試這個,看看會發生什麼。 – namezero
是的,這確實有效!儘管Outlook只使用LastName或Firstname來彌補。解決方法是使用「名字姓氏」<[email protected]>並將地址字段留空。你有沒有試圖看看它是否也適用於其他MAPI客戶端? – namezero
我已經使用Thunderbird作爲默認郵件客戶端在老XP機器上測試過,並且它在那裏工作。我真的不知道其他郵件客戶端。我想因爲郵件客戶端必須識別你手動輸入到地址域中的任何東西,他們應該能夠從名稱解析地址。 – jtmnt