2016-09-06 4 views
-1

SMTPサーバーとCDONTメールオブジェクトを使用してクライアントにメールを送信する日常的なSQLジョブを実行しようとしています。既に私のためにうまくいくコードがあります。私は最近、私のサーバーをMicrosoft Server 2003から2012に、SQL Server 2005を2014にアップグレードしました。Microsoft VBScriptランタイムエラーエラーの説明:オブジェクト: 'サーバー'

以下のコードはClassic asp in serverで正常に動作します。しかし、SQLジョブでユーザーとして実行エラー

Set objEMail = Server.CreateObject("CDO.Message") 
Set objConfig = Server.CreateObject("CDO.Configuration") 
Set Confi = objConfig.Fields 
Confi("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 
Confi("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\inetpub\mailroot\pickup" 
Confi.Update 
Set objEMail.Configuration = objConfig 
objEMail.To = "[email protected]" 
objEMail.From ="[email protected]" 
objEMail.Subject = "Email subject goes here" 
objEMail.HTMLBody = "Hi Sql job data" 
objEMail.Send 
Set objEMail = Nothing 

を取得:NTサービス\ SQLSERVERAGENTを。エラーコード:0エラーソース= Microsoft VBScriptランタイムエラーエラー説明:必要なオブジェクト: 'サーバー'#

+0

検索の後、私はcdonts.ddlがWindowsをサポートしていないことが分かったので、私はCDOを試しました。 – Rejish

+0

コードではなく、動作していないコードを表示できますか? – Dijkgraaf

+0

こんにちはDijkgraff。ご協力ありがとうございました。私は解決策を得た – Rejish

答えて

0

Serverは、ASP Classicに固有のオブジェクトです。

あなたのコードは、おそらく独自のCreateObject機能を持つWindowsスクリプトホスト(wscript.exe/cscript.exe)によって実行されます。

Server.を削除して動作させるだけです。レコードの

Set objEMail = CreateObject("CDO.Message") 
Set objConfig = CreateObject("CDO.Configuration") 

Set Confi = objConfig.Fields 
Confi("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1 
Confi("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\inetpub\mailroot\pickup" 
Confi.Update 

Set objEMail.Configuration = objConfig 
objEMail.To = "[email protected]" 
objEMail.From ="[email protected]" 
objEMail.Subject = "Email subject goes here" 
objEMail.HTMLBody = "Hi Sql job data" 
objEMail.Send 

Set objEMail = Nothing 

Serverは、上記のコードは、両方の環境で動作することになる、ならびにASP古典的に任意です。

+0

ありがとうございました。その魅力のように働く。 – Rejish