2011-12-27 11 views
3

c#winformアプリケーション内からNotes Clientを統合するためのシンプルなsdkを見つけるのに問題があります。クライアントを使用してC#とLotus Notesを使用してメールを送信

要件: C#WinFormアプリケーションでは、電子メールで通知を送信する必要があります。これらの電子メールは、エンドユーザのメールクライアントの「送信済み」フォルダに保存する必要があります。電子メールを受信した人は、そのメールがアプリケーションから来たものではなく、他の誰かのメールボックスであることを確認する必要があります。

アプローチ: エンドユーザの送信フォルダ内にメールを保存する必要があるため、Notes-apiを利用してクライアントアプリケーションでメールの保存と配信を行う必要があると考えました。あるいは、レイトバインディングを使用してください。

問題: Lotus Notesがインストールされておらず、インストールされていない(開発者以外のマシンでテストできる)。 Lotus Notesアプリケーションをダウンロードしてインストールするだけで、適切なinterop-dllを取得できる唯一の方法は明らかです。

質問:私が読んだところでは、2つのinterop-dllがあります.1つはサーバー(Domino)、1はクライアント(Notes)です。後者は、クライアントの32ビットバージョンのみをサポートしています。あれは正しいですか? - 誰にもsdkまたは必要なDLLのダウンロードリンクがありますか?

答えて

0

実際には、CleintコードのCOM相互運用機能、サーバーコードのCOM相互運用機能、またはクライアントコードのOLEクラスの3つのオプションがあります。後者の場合、Notesクライアントはインストールされているだけでなく、コードがメッセージを送信するときに実際に実行される必要があります.OFF呼び出しが実際にクライアントのフロントエンドUIを駆動して作業を行うからです。あなたはおそらくそれを望んでいません。

しかし、私はあなたがまだ「インストールしないでください」という設定を削除する方が良いと思っています。 COM相互運用レイヤーに加えて、ノーツ/ドミノの開発に使用するAPIに関係なく、コードが実行されるマシンにNotesコアDLLをインストールする必要があります。つまり、コードが実行されるボックスにLotus DominoサーバーまたはNotesクライアントがインストールされている必要があります。 (唯一の例外はJavaプログラマーで、Dominoサーバー上で実行されるremove APIへのIIOP呼び出しを行うAPIを使用することができます)

ええと、理論的には、テストマシン上にある限り、開発マシンにNotes clodeをインストールするのを避けることができます。しかしその場合、テストマシンは実際にになりますあなたの開発マシンは、このプロジェクトの部分です。コードのデバッグと修正が終わります。コンパイラの助けを借りて実行します。私はLotus Notesをあなたのマシンから守るために早期のバインディングのコンパイル時の利点を失うという点は見当たりません。

具体的な質問としては、利用可能なクライアントコードは32ビットのみで、コアDLLとCOMインターフェイスが付属しています。試用版クライアントのダウンロードはhereです。ただし、実際に行うべきことは、無料のDomino Designerのダウンロードhereを入手することです。これにはクライアントコードが含まれており、開発者のヘルプファイルとサンプルもすべて含まれています。代わりに、クライアント・コードの代わりに64ビットのDominoサーバー・コードをインストールすることもできますが、64ビットのCOMインターフェースは存在しますが、IBMではサポートされていませんし、動作しないものもあります。

+0

ありがとうございました。インストールしたくない理由は2つあります。私はすでに多くのソフトウェアをインストールしていますが、ほとんどはほとんど使用せず、ドライブをいっぱいにしてPCを遅くします。 DB2、MySQL、MSSQL、Oracle Clientなどがあります。私のアプリケーションのすべてのユーザーがノーツクライアントを持っているわけではないという事実と結びついています。彼らはOutlookを使用しています。 – Martin

+0

私はドミノデザイナーの無料版があることを知らなかった:バージョン5がまだ一般的で、あなたはそれをたくさん支払わなければならなかった日にそれをプログラムしました^^そういうことを指摘してくれてありがとう。 それでも、.Net SMTPClientを使用するように見えます。メンテナンスに手間がかかります。エンドユーザーは送信済みの通知を「送信済み」フォルダに表示することができます。 – Martin

+0

私は一度使った別のオプションがあります。私はそれをお勧めすることはできませんが、私はそれを言及するでしょう。少なくとも1台のサーバーでDomino HTTPタスクを有効にするかどうかによって異なります。 C#コードにはNotes APIコードはまったく必要ありません。サーバー上で実行されるエージェントに対してHTTP POSTを実行するだけで、エージェント内のコード(LotusScriptまたはJava)が実際の送信操作を行い、エージェントが送信者のメールファイルを開き、メッセージを保存します。このソリューションには多くの「可動部品」とトリッキーなディテールがありますが、それは当時の状況に最適なソリューションでした。 –

関連する問題