MapiEx(http://www.codeproject.com/Articles/10881/MAPIEx-Extended-MAPI-Wrapper) を使用してメールを生成しています。
電子メールの送信者として設定するには、MAPI クライアントにログインした名前と電子メールが必要です。
クラス CMAPIEx にはメソッド GetProfileName と GetProfileEmail がありますが、これらのメソッドを使用するには、ユーザー プロファイルを使用して MAPI にログインする必要があります。
CMAPIEx の Login メソッドで ProfileName を渡すことができるのですが、何を渡せばよいのかわかりません。
私の MAPI クライアントは Outlook 2010 です。アカウントに設定した電子メールまたは名前を渡そうとしましたが、何も機能しませんでした。
CMAPIEx クラスの Login メソッドを調べたところ、次のことがわかりました。
DWORD dwFlags=MAPI_EXTENDED | MAPI_USE_DEFAULT | MAPI_NEW_SESSION;
if(bInitAsService) dwFlags|=MAPI_EXPLICIT_PROFILE | MAPI_NT_SERVICE;
return (MAPILogonEx(NULL, (LPTSTR)szProfileName, NULL, dwFlags, &m_pSession)==S_OK);
MAPILogonEx の 3 番目のパラメーターはパスワードであり、Outlook のアカウントにはパスワードがありますが、MAPILogonEx のドキュメント (http://msdn.microsoft.com/en-us/library/office/cc815545.aspx) では、パスワードをヌル。
2 番目のパラグラフで述べたように、MAPI クライアントに記録された名前と電子メールだけが必要です。誰かが私が間違っていることや、それらの情報を取得する別の方法を知っている場合は、教えてください。
悪い英語でごめんなさい。