問題タブ [mapi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
login - MAPI はローカルで動作するが、運用コンピューターでは動作しない
MAPI を運用マシンで動作させることができません。そのマシンで MAPI とサイトを使用するアプリケーションを既に作成しましたが、何らかの理由で新しいアプリケーションを動作させることができます。何が間違っているのかわかりません。
MAPI を使用してメール プロファイルにログインし、メッセージを取得するアプリケーションをローカルで作成しました。メッセージは解析され、エラー用と完了メッセージ用の 2 つの異なるフォルダーに移動されます。これはすべて私のコンピューターでは完全に機能しますが、本番環境ではログインできません。
以前のアプリケーションで使用していたのと同じプロファイル/パスワードを使用しているため、これは権限の問題ではないことはわかっています。私のコンピューターの CDO または MAPI のバージョンと、本番環境のバージョンとの間に何か関係があるのではないかと考えていますが、よくわかりません。
一部のバージョンが異なるバージョンの Windows で動作しない場合など、私が使用すべき CDO/MAPI バージョンにサインを持っている人はいますか?
email - PR_DISPLAY_NAME を取得しようとしたときの 0x80040115
私のネイティブの raw C++ プログラムは、MAPI を使用して Exchange Server のツリーをトラバースします。
ポインターを呼び出しHrGetOneProp()て取得すると、 で失敗することがあります。特定の 1 つのフォルダーでのみ発生し、他のすべてのフォルダー名は問題なく取得されます。IMAPIFolder*PR_DISPLAY_NAMEHRESULT 0x80040115
同じマシン上で同じユーザーが実行している Outlook 2003 では、問題のあるフォルダを含むすべてのフォルダが表示されます。
問題の原因と解決方法を教えてください。
c# - MAPIは連絡先とカレンダーフォルダを検索します
私の見通しでは、1つの交換接続と2つの個人用フォルダーがあります。
カレンダーと連絡先からすべてのアイテムを取得したいので、次を使用します。
ただし、これが機能する
oFolder.Folders[5]
とは限りません。カレンダーでは常に5であるとは限りません。場合によっては、値が異なることもあります。
oFolder.Folders["Calendar"];
オランダ語ではフォルダの名前が「アジェンダ」になるため、名前でアイテムを見つけることができません
。
通常私は使用します:
Outlook.MAPIFolder oCalendar = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
しかし、その後はデフォルトのカレンダーしか取得できません。他のカレンダーを取得するにはどうすればよいですか?
c# - Outlook MAPI ストア プロバイダー。管理?
MANAGED (.NET) Outlook MAPI ストア プロバイダーを作成することはできますか? どのように?
私は Outlook の世界ではまったくの初心者ですが、COM のすべてのドロップをいじるつもりはありません。
windows - MAPI を使用してインライン イメージとアタッチを分離するにはどうすればよいですか?
私のプログラムは、Exchange メールボックスの操作に MAPI を使用しています。問題は、ユーザーが Outlook を起動し、添付ファイルとしてファイルを追加し、ペイントも開き、そこで領域を選択し、それをクリップボードにコピーしてメッセージ本文に貼り付けた場合、結果のメッセージに 2 つの添付ファイルが表示されることです。
具体的には、プログラムはIMAPIMessage::GetAttachmentsTable()添付テーブルを取得するために呼び出し、そのテーブルには 2 つのオブジェクトが含まれています。「添付ファイル」が本当に添付ファイルなのかインラインコンテンツの一部なのかをプログラムが判断できる方法はありますか?
c# - C#を使用してMAPI経由でMS Exchange Serverに電子メール署名を保存しますか?
C# を使用して MAPI 経由で MS Exchange Server に電子メールの署名をプログラムで保存する方法はありますか?
delphi - Delphi で rtf テキストを含む電子メールを送信する
次のタスクを実行したいと考えています: TRichEdit コンテンツ (rtf テキスト) を非プレーン テキストの電子メール メッセージ本文に変換します。
MAPI は rtf をサポートしていませんが、おそらく Indy でそれを行う方法はありますか?
問題は、rtf が rtf であり、電子メールがプレーン テキストまたは HTML であることです。
誰かがトリックを提案できますか?TWebBrowser を使用して rtf をテキストに変換することは可能ですか?
基本的なシナリオは次のとおりです:
1) ユーザーがメールを Delphi フォームに書き込みます
。2) メールは MAPI を使用してデフォルトのメール クライアントに送信されます (そのため、新しいメール ウィンドウが生成され、メッセージ本文は Delphi フォームと同じです) )
3) ユーザーがメール クライアントからメールを送信する
とにかく、MAPI はプレーン テキストのみを受け入れます。
アップデート:
Indy で試してみて、これを書きましたが、それでも機能しません。gmail アカウントにメールを送信すると、本文が空で NONAME の偽の添付ファイルが添付されたメッセージが届きます。
exchange-server - Exchange Webサービス(マネージドAPI)とWebDavのパフォーマンスに関する質問
Exchange(2007)の開発は初めてですので、ご容赦ください。:-)。Exchange開発には無数のテクノロジー(最新のものはExchange Webサービス)があり、それに関連するマネージドAPIがあるようです。さまざまな基準を満たすメッセージをパージする目的で、必要に応じてExchangeサーバー上で実行できるプログラムを作成してユーザーのメールボックスをスキャンする必要があります(この説明には関係ありません)。
他のほとんどのテクノロジ(WebDav、MAPI、CDO)は、Exchange2007およびExchange2010に関して非推奨になっていることを理解しています。したがって、これはグリーンフィールドアプリケーションであるため、ExchangeWebサービスマネージAPIを使用することにしました。
1時間にスキャンできるアイテムの数が心配です。これはWebサービスベースであるため、ネットワークホップが関係しています。そのため、通信相手のサーバーでこのユーティリティを実行したいと思います。 「ハブ」サーバーと通信する必要があるというのは正しいですか?。自動検出を使用していますが、スキャンしている実際のメッセージストアがどのメールサーバーに含まれているかに関係なく、「ハブ」サーバーに解決されるようです。
ExchangeService.FindItemsを使用し、ページサイズ500を指定して複数のアイテムをプルダウンすると、ワークステーションからハブサーバーへのスループットがかなり向上します。47秒で22,000通のメールを検索できました。それは合理的なようです。 ただし、その方法で取得した場合、すべてのプロパティが「バインド」されているわけではないことがわかります。ToRecipientsやCcReipientsなどの特定のプロパティは入力されていません。これらを(個別に)明示的にバインドする必要があります。
これはサーバーへの個別のラウンドトリップであり、スループットが約460アイテム/秒から3アイテム/秒に低下します。これは実行不可能です。
だから-他のいくつかの質問。FindItemsの呼び出し中に、欠落しているプロパティを強制的にバインドする方法はありますか?それができない場合、一度に複数のアイテムをバインドする方法はありますか?
最後に、私はこの種の作業にExchangeWebサービスを選択するのは正しいのでしょうか。私はプログラミングモデルのシンプルさが大好きで、(a)より複雑であるか、(b)廃止されている場合は、別のテクノロジーに移行したくありません。別のテクノロジーがこの仕事をより良くし、それが非推奨にならないのであれば、私が必要に応じてそれを使用することを検討するよりも。ご意見・ご感想をいただければ幸いです。
outlook - Outlook が既定で電子メールにデジタル署名しているかどうかを検出する方法は?
背景: 送信メールに添付ファイルを追加する Outlook アドインに取り組んでいます。すべてのバージョンの Outlook でサポートが必要です。
MailItem がデジタル署名で署名されている場合、メール アイテムを保存しない限り、この mailItem への添付ファイルの追加は通常失敗します。これにより、mailitem から署名が削除されます。私にとって、これはやや予想される動作です。ここで奇妙なことは何もありません。
問題は、ユーザーが (UI を介して、または Outlook の既定の動作として) デジタル署名をオンにしてから、再びオフにした場合です。MailItem は署名されていませんが、署名されているかのように動作します。この電子メールに添付ファイルを追加することはできません。
その理由を説明しているニュースグループの投稿を見つけました。Outlook API を通じて取得されたオブジェクトは、実際のオブジェクトではないようです。
現時点では、この問題を適切に修正することをあきらめました。MailItem を一時ファイルに保存すると、これが修正されるように見えますが、パフォーマンス上の理由から、MailItem が署名付きから署名なしに移行したときにのみ保存したいと考えています。もう 1 つの許容される代替方法は、デジタル署名がデフォルトで有効になっているかどうかを検出することです。デジタル署名のデフォルト設定に関連するレジストリ エントリがありますが、これは単なる提案であり、電子メールがデフォルトで署名されているかどうかを正確に反映するものではありません。
何か案は?
delphi - 拡張 mapi 関数を使用して画像を Outlook に埋め込む
電子メールに画像を埋め込み、Outlook で送信する前に電子メールをプレビューする必要があります。CDO と償還はオプションではありません。
次のコードを試してみましたが、画像が小さなブロックとして表示されます。