2011-03-01 133 views
10

我有一個網頁,我需要發送電子郵件。我需要從瀏覽器發送一封大郵件。由於內容大於查詢字符串允許的內容,因此我需要依賴Active X.我想通過Outlook發送此電子郵件。在試圖做到這一點,我已經寫了下面的代碼:ActiveX - 自動化服務器無法創建對象

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 

我在做什麼錯?

謝謝!

+4

我很困惑:問題的標題是「自動化服務器無法創建對象」;但在問題本身中,你說錯誤是「ActiveXObject沒有定義」......那麼它是哪一個? – Martijn 2011-03-01 16:47:14

回答

2

你不應該能夠從瀏覽器中創建「Outlook.Application」。這可能是有幾個原因:

  • 它不是標記爲初始化爲安全或安全執行腳本
  • 它具有消除位設置

你能使用POST發送您的電子郵件到服務器?

1

ActiveXObject對象僅在Internet Explorer上可用,根據您的頁面所處的區域(本地,內部網或Internet)可能受到限制。

你想從將在互聯網上託管的網頁,發送電子郵件?然後,您唯一的選擇,禁止郵件鏈接,從服務器發送電子郵件。如何做到這一點完全取決於您的服務器端技術。

16

錯誤「自動化服務器無法創建對象」指的是瀏覽器的安全設置太低,ActiveX控件運行。您必須將頁面移動到受信任的站點列表中,並降低ActiveX設置以使其可以運行。

個人而言,我會避免的ActiveX瘟疫一樣,因爲它被鎖定你進入IE唯一的世界。因此,爲什麼我們仍然有人堅持使用IE6。

它你想僅僅預加載郵件,你可以使用mailto:

+2

mailto的問題在於它僅限於url的大小。我的內容長度大於URL允許的長度。 – user70192 2011-03-01 17:17:01

5

一)進入工具 - > Internet選項

b)選擇安全選項卡

c)單擊受信任的站點(或根據您的網站是否可信與否本地Intranet)

d)點擊自定義級別

E)ENS我們啓用了「初始化和編寫活動x控件的腳本不標記爲安全腳本」 - 這是在Activex控件和插件部分的滾動條的1/4處。

單擊確定,確定。

一旦完成,清除瀏覽器的cookies和緩存。關閉所有瀏覽器會話。重新打開IE來啓動您的網站。

嘗試禁用在步驟(e)的設置,看看問題是否回來 - 這應該給更多的瞭解這個問題。

+0

從https://stackoverflow.com/questions/15686040/ie9-automation-server-cant-create-object-error-while-using-certenroll-dll複製而來 – quintin 2017-07-18 11:12:57