問題タブ [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.

0 投票する
2 に答える
927 参照

windows - MAPI を使用してインライン イメージとアタッチを分離するにはどうすればよいですか?

私のプログラムは、Exchange メールボックスの操作に MAPI を使用しています。問題は、ユーザーが Outlook を起動し、添付ファイルとしてファイルを追加し、ペイントも開き、そこで領域を選択し、それをクリップボードにコピーしてメッセージ本文に貼り付けた場合、結果のメッセージに 2 つの添付ファイルが表示されることです。

具体的には、プログラムはIMAPIMessage::GetAttachmentsTable()添付テーブルを取得するために呼び出し、そのテーブルには 2 つのオブジェクトが含まれています。「添付ファイル」が本当に添付ファイルなのかインラインコンテンツの一部なのかをプログラムが判断できる方法はありますか?

0 投票する
1 に答える
604 参照

c# - C#を使用してMAPI経由でMS Exchange Serverに電子メール署名を保存しますか?

C# を使用して MAPI 経由で MS Exchange Server に電子メールの署名をプログラムで保存する方法はありますか?

0 投票する
3 に答える
4690 参照

delphi - Delphi で rtf テキストを含む電子メールを送信する

次のタスクを実行したいと考えています: TRichEdit コンテンツ (rtf テキスト) を非プレーン テキストの電子メール メッセージ本文に変換します。

MAPI は rtf をサポートしていませんが、おそらく Indy でそれを行う方法はありますか?

問題は、rtf が rtf であり、電子メールがプレーン テキストまたは HTML であることです。

誰かがトリックを提案できますか?TWebBrowser を使用して rtf をテキストに変換することは可能ですか?

基本的なシナリオは次のとおりです:
1) ユーザーがメールを Delphi フォームに書き込みます
。2) メールは MAPI を使用してデフォルトのメール クライアントに送信されます (そのため、新しいメール ウィンドウが生成され、メッセージ本文は Delphi フォームと同じです) )
3) ユーザーがメール クライアントからメールを送信する

とにかく、MAPI はプレーン テキストのみを受け入れます。

アップデート:

Indy で試してみて、これを書きましたが、それでも機能しません。gmail アカウントにメールを送信すると、本文が空で NONAME の偽の添付ファイルが添付されたメッセージが届きます。

0 投票する
1 に答える
1852 参照

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)廃止されている場合は、別のテクノロジーに移行したくありません。別のテクノロジーがこの仕事をより良くし、それが非推奨にならないのであれば、私が必要に応じてそれを使用することを検討するよりも。ご意見・ご感想をいただければ幸いです。

0 投票する
2 に答える
599 参照

outlook - Outlook が既定で電子メールにデジタル署名しているかどうかを検出する方法は?

背景: 送信メールに添付ファイルを追加する Outlook アドインに取り組んでいます。すべてのバージョンの Outlook でサポートが必要です。

MailItem がデジタル署名で署名されている場合、メール アイテムを保存しない限り、この mailItem への添付ファイルの追加は通常失敗します。これにより、mailitem から署名が削除されます。私にとって、これはやや予想される動作です。ここで奇妙なことは何もありません。

問題は、ユーザーが (UI を介して、または Outlook の既定の動作として) デジタル署名をオンにしてから、再びオフにした場合です。MailItem は署名されていませんが、署名されているかのように動作します。この電子メールに添付ファイルを追加することはできません。

その理由を説明しているニュースグループの投稿を見つけました。Outlook API を通じて取得されたオブジェクトは、実際のオブジェクトではないようです。

http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.messaging/2006-02/msg00000.html

現時点では、この問題を適切に修正することをあきらめました。MailItem を一時ファイルに保存すると、これが修正されるように見えますが、パフォーマンス上の理由から、MailItem が署名付きから署名なしに移行したときにのみ保存した​​いと考えています。もう 1 つの許容される代替方法は、デジタル署名がデフォルトで有効になっているかどうかを検出することです。デジタル署名のデフォルト設定に関連するレジストリ エントリがありますが、これは単なる提案であり、電子メールがデフォルトで署名されているかどうかを正確に反映するものではありません。

何か案は?

0 投票する
1 に答える
1522 参照

delphi - 拡張 mapi 関数を使用して画像を Outlook に埋め込む

電子メールに画像を埋め込み、Outlook で送信する前に電子メールをプレビューする必要があります。CDO と償還はオプションではありません。

次のコードを試してみましたが、画像が小さなブロックとして表示されます。

0 投票する
1 に答える
1799 参照

delphi - MAPIとOutlookを使用したHTMLメールの送信の問題

DelphiアプリケーションでMAPI呼び出しを使用してHTML電子メールを送信しようとしています。
クライアントがThunderbirdの場合、正常に動作します。ただし、クライアントがMicrosoftOutlookまたはOutlookExpressの場合、HTMLコードをファイルに保存し、メッセージの最初の添付ファイルとして送信する必要があります。他の場所では、メールクライアントはHTMLをテキストとして解釈し、タグを表示します。
最初の添付ファイルとしてHTMLを送信することは、それ以上添付ファイルが送信されない場合にのみ機能します。これは、1つ以上の添付ファイルを送信すると、最初の(HTML)も添付ファイルとして表示されるためです。

誰かが私を助けることができますか?

前もって感謝します。

ダグラス。

メッセージOK:
わかりましたhttp://www.freeimagehosting.net/uploads/e51dfa52f4.jpg

悪いメッセージ(添付ファイルが1つ):
悪いhttp://www.freeimagehosting.net/uploads/7e5689e2b9.jpg

0 投票する
2 に答える
9999 参照

exchange-server - Exchange MAPI がインストールされているかどうかを検出する

Exchange 2007 以降、Exchange のインストール時に MAPI はインストールされなくなりました。これらのシステムでは、MAPI を使用する場合、Exchange に加えてこのインストールが必要です。

ソフトウェアは Exchange MAPI に依存しているため、インストールされているかどうかを検出する必要があります。MAPI がローカル マシンにインストールされているかどうかを確実にテストするにはどうすればよいですか? 一等賞は、Exchange MAPI なのか Outlook MAPI なのか、32 ビットなのか新しい 64 ビットなのかを知ることができるかどうかです。

0 投票する
1 に答える
2063 参照

c# - Windows Live メール mapi のサポート

MAPI を使用して電子メール メッセージを送信する必要がある ac# .net アプリケーションを作成しています。私はこれを達成するために次のライブラリを使用していますhttp://www.codeproject.com/KB/IP/SendFileToNET.aspxこれ は、私がそれをどのように使用するかの例です。

このコードは、デフォルトのメール プログラムで新しいメッセージ ダイアログを開き、ユーザーがメールの送信または中止を決定した場合に表示する必要があります。

このコードは、Outlook を使用している場合に正常に機能します。つまり、ユーザーがメッセージ ダイアログを閉じてメッセージを送信しないことにした場合などに、新しい電子メール ダイアログがポップアップし、正しいエラー コードが返されます。

問題は、Windows メールを使用している場合、これが正しく機能しないことです。メール送信ダイアログが正しく開き、アプリケーションはメール ダイアログが閉じられるまで mapi.SendMailPopup で実行を一時停止します。ただし、ユーザーが何をしても、mapi.SendMailPopup は常にゼロを返します。たとえば、ユーザーがメッセージを送信せずにメッセージ ダイアログを閉じることにした場合、mapi.SendMailPopup は 0 を返しますが、正しい応答は 1 (ユーザーによる中止) です。

私の質問は、Windows Live メールがこれに MAPI サポートを必要とするべきかということです。もしそうでなければ、必要な MAPI サポートを提供する他の無料の Windows メール クライアントを教えてください。

0 投票する
3 に答える
552 参照

python - Python を使用してフォルダーの Exchange ACL を変更する

フォルダーの ACL テーブルを読み込もうとしているときに、次の問題に遭遇しました。

C++ ツール (MFCMAPI) では、このメソッドを使用して、プロパティ PR_ACL_TABLE を使用可能なデータ型で取得します。

私はpython win32でこれを行うことを考え出しました:

しかし、MAPI 拡張は IID_IExchangeModifyTable 型を認識していないようです。私はちょうどこのエラーを得ました:

属性エラー: 'module' object has no attribute 'IID_IExchangeModifyTable'

MAPI(およびpython)を介して交換からACLデータを取得および変更する別の方法を知っている人はいますか?

ありがとう - マーキーズ