2014-11-13 335 views
0

我正在考慮C++程序,需要在C++程序中生成一封電子郵件發送到Outlook。 代碼我嘗試用至今是這樣在C++中發送Outlook電子郵件

system("cmd /c OUTLOOK.EXE /c ipm.note /m \"[email protected]&[email protected]&subject=\"TestEmail\"&body=Hello%20World\""); 

當我運行這一點,將生成的電子郵件,並在TO領域,但不是CC,主題或身體補。 相反它表示它不能識別這些字段

也沒有任何人知道我可以如何將這些作爲字符串傳入函數?

謝謝

+0

這不是一個函數。這是一個函數CALL。你只是通過命令行參數調用Outlook。並且似乎沒有命令行參數通過CLI指定電子郵件的正文。 http://office.microsoft.com/en-ca/outlook-help/command-line-switches-HP001003110.aspx也許'/ f'來加載一個.msg文件 –

+0

你知道一個類似的調用或函數,可以完成這個? – Lightning77

+0

MS Office是編程API的一個重要組成部分,以至於辦公室更像一個API,其中word/excel/outlook恰好是特定的實現/前端。將有apis鉤入Outlook。 –

回答

0

所以看起來你的缺陷是缺乏'?' 「主題」根據前:http://support2.microsoft.com/default.aspx?scid=kb;en-us;181991

const string to{"[email protected]"}; 
const string cc{"[email protected]"}; 
const string subject{"TestEmail"}; 
const string body{"Hello%20World"}; 
const string test{"cmd /c OUTLOOK.EXE /c ipm.note /m \"" + to + "&cc=" + cc + "?subject=" + subject + "&body=" + body + '"'}; 

cout << test; 
system(test); 

作爲臨時改變了代碼,您可以添加test。這會打印出一串字符串。在命令提示符(我的是:C:\ Program Files(x86)\ Microsoft Office \ Office14)中導航到OUTLOOK.exe的位置。然後輸入打印出的std::string test,刪除應該運行的「cmd/c」前綴。如果在命令提示符下沒有根據需要進行必要的調整,則相應地調整您的代碼。我的例如命令看起來像這樣:

OUTLOOK.EXE/C IPM.NOTE /米 「[email protected] & [email protected]?subject=TestEmail &體=你好%20World」

+0

謝謝,它將允許我現在將字符串作爲地址傳遞,但即時通訊仍然在處理此問題。 ***。 'cc'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 '主題'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 'body'不被識別爲內部或外部命令, 可操作的程序或批處理文件。 – Lightning77

+0

@ Lightning77我編輯了我的答案,希望能夠讓你開始。 –

相關問題