メールを送信する必要があるWebページがあります。ブラウザから大きなメールを送信する必要があります。コンテンツがクエリ文字列で許可されているよりも大きいため、Active Xに依存する必要があります。この電子メールをOutlook経由で送信したいと考えています。これを行うために、次のコードを記述しました。
try {
var to = "";
var cc = "";
var subject = "Action Required";
var body = GenerateEmailBody();
var Outlook = new ActiveXObject('Outlook.Application');
var outlookNamespace = Outlook.GetNameSpace('MAPI');
var message = outlookNamespace.CreateItem(0);
message.Display();
message.To = to;
message.Subject = subject;
message.Body = body;
message.GetInspector.WindowState = 2;
} catch (err) {
alert("Unable to send email. " + err);
}
このコードを実行すると、次のエラーが発生します。
ReferenceError: ActiveXObject is not defined
何が悪いのですか?
ありがとう!
エラー「オートメーションサーバーはオブジェクトを作成できません」は、ブラウザーのセキュリティ設定が低すぎてActiveXコントロールを実行できないことを意味します。ページを信頼済みサイトリストに移動し、ActiveX設定を下げて実行できるようにする必要があります。
個人的にはIEだけの世界に閉じ込められているため、ペストのようなActiveXは避けます。それでも、なぜIE6に行き詰まっているのでしょうか。
メールメッセージをプリロードするだけの場合は、 mailto: を使用できます。
a)「ツール」->「インターネットオプション」に移動します。
b)セキュリティタブを選択します
c)信頼済みサイト(または、サイトが信頼されているかどうかに応じて、ローカルイントラネット)をクリックします。
d)カスタムレベルをクリックします
e)[Activexコントロールの初期化とスクリプトを実行しても安全とマークされていない]が有効になっていることを確認します。これは、Activexコントロールとプラグインセクションの下にあり、スクロールバーの1/4に向かっています。
OK、OKをクリックします。
これが完了したら、ブラウザのCookieとキャッシュをクリアします。すべてのブラウザセッションを閉じます。 IEを再度開いて、サイトを起動します。
手順(e)の設定を無効にして、問題が再発するかどうかを確認します。これにより、問題の詳細がわかります。
ブラウザ内から「Outlook.Application」を作成することはできません。これにはいくつかの理由が考えられます。
POSTを使用してメールをサーバーに送信できますか?
ActiveXObject オブジェクトはInternet Explorerでのみ使用でき、ページがどのゾーンにあるか(ローカル、イントラネット、またはインターネット)によっては制限を受ける場合があります。
インターネットでホストされるWebページから電子メールを送信しますか?次に、mailto-linkを禁止する唯一のオプションは、サーバーから電子メールを送信することです。その方法は、サーバー側のテクノロジーに完全に依存しています。
ツールメニュー->インターネットオプション->セキュリティ->カスタムレベル-> "IEでActiveXを初期化およびスクリプト化してください。