問題タブ [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 投票する
1 に答える
2133 参照

com - 32 ビット VB6 アプリケーションは、64 ビット Outlook を自動化して、ユーザーにプロンプ​​トを表示せずに電子メールを送信する必要があります。

COM コンポーネントを使用して Outlook を自動化して電子メールを送信する 32 ビットのレガシー VB6 アプリケーションがあります。要件は、電子メールが Outlook の送信済みアイテム フォルダーに表示される必要があることです。さらに悪いことに、アプリケーションは通常のセキュリティ、警告、または確認メッセージをポップアップすることが許可されていません。

このアプリケーションは、64 ビットの Office が登場するまで問題なく動作していました。32 ビット プロセスが 64 ビット Outlook を自動化する方法はありません。

私が思いついたアイデアは次のとおりです。

  1. COM コンポーネントを、CCW で実行される .NET WCF クライアントと交換します (COM のふりをする .NET)。

  2. この COM コンポーネントは、netTcpBinding を使用して、64 ビット プロセスとして実行される WCF サービスを呼び出します。

  3. 次に、WCF サービス (LOCAL SYSTEM として実行) が 64 ビット コンソール アプリケーションをユーザーとして起動し、拡張 MAPI ライブラリを使用して電子メールを送信します。

3 番目のステップの理由は 2 つあります。

  1. メールを送信するように指示すると、MAPI は確認を求めます。拡張 MAPI にはありません。つまり、Microsoft の正しい 64 ビット ヘッダー ファイルを使用して C++ 拡張 MAPI ライブラリをコンパイルし、それを .NET コードから "呼び出す" 必要がありました。

  2. WCF でユーザーの偽装 (大まかに使用される用語) を行うと、レジストリ ハイブの読み込みが正しく行われません。つまり、拡張 MAPI が HKCU からプロファイルを読み込もうとすると失敗します。つまり、基本的に正しいユーザーを "RunAs" するために、新しいプロセスを開始する必要がありました。

これはすべて実際に機能しますが、次の点について説明が必要です。

コマンド ライン パラメータに必要なすべての情報を指定してコンソール アプリケーションを実行すると、MAPI がログインに失敗します。ただし、フォームの OnLoad( ) メソッドでまったく同じコードを使用して、この同じコードを 1 つのフォームを持つ Windows アプリケーションとしてコンパイルすると、成功します。誰でも理由を説明できますか?

現在ログオンしているユーザー (LOCAL SYSTEM ではない) として WCF サービスから "WinForms" アプリケーションを実行するには、正しいトークンを取得するために次の手順を実行しました。

これを回避する方法はありますか?確かに、WCF の組み込みの偽装を使用する方が良いでしょう。

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

vb6 - ロータス ノーツ用の MAPI を使用した VB6

みなさん、

メール機能を VB6 アプリケーションに組み込む必要があります。デフォルトのメール システムは Lotus Notes 6.5 です。このバージョンの Lotus Notes は MAPI 対応であることを確認しました。

ここに私が見る奇妙なものがあります。ユーザーが SendMail ボタンをクリックすると、以下のコードが起動されます。

このコードは、Lotus Notes でウィンドウを開きます (これは私が予想したことです) が、[宛先アドレス] ボックスには受信者のアドレスが含まれており、1 行目には本文、2 行目には受信者のアドレスが続きます。

-- 本文セクションは空白です。

それを修正するためにできることはありますか、または Lotus Notes は MAPI と互換性がありません。
ありがとう、レフ

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

c# - contact.LastNameを取得するときのSystem.Runtime.InteropServices.COMException(0x800706BE)

一部のユーザーは、この例外を時々受けます(すべての連絡先に対してではありません):

ContactItemこれは、(タイプの)連絡先の名前を取得しようとしているときに発生します。

誰かが問題が何であるか知っていますか?

どんな助けでもいただければ幸いです。ありがとう!

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

php - PHP経由でexeを呼び出す

「system」コマンドを使用してphp経由で呼び出すexeファイルがあります。次に、exeファイルは何らかの理由でMicrosoft mapiを呼び出しますが、phpを介してexeを呼び出すとmapiが初期化されていないことがわかりませんが、コマンドラインからexeを実行すると正常に動作します。理由はありますか?

ps 2008年のサーバーでiisを実行しています

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

c# - 画像が埋め込まれた HTML メールを作成し、.net (c#) を使用して既定のメール クライアントに表示する方法は?

Windows の切り取りツールを見ると、切り取りをデフォルトのメール クライアントに埋め込まれた添付ファイルとして送信するオプションがあります (HTML メールと思われます)。まさにそれが必要です。

現時点では、単純な MAPI を使用して画像を添付していますが、埋め込みは許可されていません。

重要な要件の 1 つは、作成してからデフォルトのメール クライアントに表示することです。そのために System.Net.Mail を使用できるとは思いません。それともできますか?

c# を使用した WPF アプリケーションです。

編集:答える前に質問をよく読んでください。私はこれに慣れていません。ハックに頼らずにアンマネージ コードでこれを行う方法を知っています。管理された同等物が必要です。ハックを探しているわけではなく、必要に応じて正しい解決策にかなりの時間を費やして喜んでいます.

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

c# - Outlook - マウントされたメールボックスにアクセスすると 0×8004010F エラーがスローされる

0×8004010F あるユーザーが Outlook で別のマウントされたユーザーのメールボックスにアクセスすると、エラーがスローされます。キャッシュされた交換モードを無効にする以外に、これに対する可能な解決策は何ですか? VSTO が使用され、実装は C# です。

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

c# - Outlook: 他の連絡先フォルダーにアクセスする方法?

一部の人々は、Outlook の連絡先の下に多数のリスト/フォルダーを持っています (たとえば、連絡先と提案された連絡先に加えて、連絡先の新しい「フォルダー」を追加できます)。

さて、私の質問:

  1. これらすべてのリスト/フォルダのリストを取得するにはどうすればよいですか?
  2. これらのフォルダのすべての連絡先にアクセスするにはどうすればよいですか?

メインの「連絡先」リストから連絡先にアクセスしたい場合、コードは次のようになります。

他の連絡先リスト/フォルダーにアクセスすると、どのように表示されますか?

ありがとう!

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

c# - Outlookメールアイテムのプロパティをうまく読む

Outlook 2007 用のプラグインを作成していますが、MailItem のプロパティを読み取りたいと考えています。

特に、添付ファイルのすべてのコンテンツ タイプを知りたいです。今私がこれを行う方法は次のようなものです:

しかし、私はむしろ次のようなものを呼びたいです。

後でそのオプションを機能させることはできませんが、プロパティはmsdnのドキュメントでそのように言及されています。(http://msdn.microsoft.com/en-us/library/ms879575.aspx)。文字列ではなく定数を使用せずにプロパティをうまく取得する方法を知っている人はいますか?

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

.net - Outlookから電子メールを送信するときにメソッドを呼び出しますか?

Outlookで電子メールが送信されたときのイベントMailItemClassを持つVBAクラスがあります。VB.NETでこれが見つかりません。ドキュメントを調べましたが、で見つかりません。MAPI

(VB.NETからVBAを呼び出すことはできますか?)

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

c# - C# から MAPI プロパティにアクセスする際の問題

MAPI プロパティにアクセスしているときに、エラー ログに繰り返し例外が発生しています。

特定のサイトで VST0 2005 Outlook アドインに問題が発生しています。アドインは、Outlook 2003 内の 64 ビット Exchange ターミナル サービス環境で実行されています。

次のエラーが表示されます:「保護されたメモリの読み取りまたは書き込みを試みました。これは多くの場合、他のメモリが破損していることを示しています。Microsoft.Office.Interop.Outlook.AddressEntry.get_MAPIOBJECT()...」

このエラーが繰り返し表示されます。面白いことに、アドインは数か月前までこのボックスで正常に動作していました。

MAPI にアクセスするために使用している基になるクラスは、Helmut Obertanner によってhttp://www.outlookcode.com/codedetail.aspx?id=1112で提供されました。今までは問題なく機能していました。

そこに明るい火花があれば、これで私を助けることができますか? ありがとう