0

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 クライアントに記録された名前と電子メールだけが必要です。誰かが私が間違っていることや、それらの情報を取得する別の方法を知っている場合は、教えてください。

悪い英語でごめんなさい。

4

1 に答える 1

2

プロファイル名を渡さないと、デフォルトのプロファイルになります。コントロールパネル|で既存のプロファイルの名前を確認できます。メール| プロファイルを表示します。プログラムで既存のプロファイルを列挙するには、IProfAdmin :: GetProfileTable()を使用します

于 2012-08-30T06:24:47.263 に答える