Web ページ経由の Outlook 電子メール
質問
ASP.net と C# で開発された Web アプリケーションがあり、会社のイントラネットで実行されています。このアプリケーションのすべてのユーザーは例外なく Microsoft Outlook を使用しているため、アプリケーションがクライアント側で Outlook メッセージを開くようにしたいと考えています。 Office はサーバーからではなくデスクトップ上で実行されるように設計されていることは理解していますが、クライアント側で Word または Excel ドキュメントを作成するのに問題はありません。
Microsoft.Office.Interop.Outlook 名前空間とサーバーにインストールされている Outlook を使用して Outlook オブジェクトをインスタンス化するコードがあります。サーバーからコードを実行しようとすると、「Machine-Default Permission SettingsはCOM Serverアプリケーションのローカルアクティベーション許可がCLSID {000C101C-0000-0000-C000-000000000000000000000000000000000000000000000000000000000000000046でローカルアクティベーション許可を付与しないと述べています。 }ユーザーに、このセキュリティ許可をコンポーネントサービス管理ツールを使用して変更できます。」コンポーネントサービスツールを使用して権限を変更しましたが、同じエラーが発生します。
これを克服する方法はありますか、それともサーバー側のコードからクライアント側で Outlook を開くことができないため、これは無駄な作業でしょうか?
取得できる電子メールが長すぎるため、Mailto は機能しません。また、メッセージを送信するユーザーは、受信者にとって目を楽しませるテキストを追加する必要があります。
解決
サーバー側のコードからクライアント上で何かを開くことはできません。必要なことを実行するには、ページ上でスクリプトを使用する必要があります(または、ActiveXや埋め込み.NETなどのクライアント側の何か)。
Web ページから Outlook MailItem を呼び出すサンプル JavaScript を次に示します。これはサーバー側のコードからページに簡単に挿入できるので、クライアント上で実行できます。
http://www.codeproject.com/KB/aspnet/EmailUsingJavascript.aspx
他のヒント
(ヒント:質問の書式設定)
mailto リンクまたは formmail タイプのページの何が問題なのか理解できません。
社内の全員が Outlook を使用している場合は、標準の「mailto」リンクを使用するだけで常に Outlook が開くはずです。これは過剰設計のようですね。
既存の電子メールを開きますか、それとも新しい電子メールを作成しますか?
おそらく質問を誤解しているかもしれませんが、次のようなリンクを提供できます
mailto:recipient@email.tld?subject=This%20is%20the%20subject&body=Hello%20there!
ユーザーがそのリンクをクリックすると、新しい Outlook 電子メールが開き、受信者はrecipient@email-tld、件名は「This is the subject」、本文は「Hello there!」になります。これらのフィールドはすべて、リンクからすでに入力されています。
質問されたのでこれを吐き出します。
Mailto には多くの欠点があります。主にサイズ。送信者は電子メールのテキストに対して多くの書式設定を行う必要があるため、生成される HTML コードは多くのスペースを占有する可能性があり、mailto を使用すると失敗します。
でも提案してくれてありがとう。