毎晩実行される自動テストを作成しました。テストが終了したら、毎晩結果をメールで送信したいと思います。
これを行うために、バッチファイルの最後に次の行を追加しようとしました。
Set MyApp = CreateObject("Outlook.Application")
Set MyItem = MyApp.CreateItem(0)
With MyItem
.To = "[email protected]"
.Subject = "Subject"
.ReadReceiptRequested = False
.HTMLBody = "resport"
End With
MyItem.Send
ただし、これは、テストがバックグラウンドで実行され、UIにアクセスできないため、Outlookが開いていないために電子メールが送信されない原因となっています。
とにかく、実際にマシンでOutlookを実行せずにこのメールを送信する方法はありますか。
ありがとう!
CDO.Messageオブジェクトを使用して、VBScriptでOutlookなしで電子メールを送信できます。これを使用するには、SMTPサーバーのアドレスを知る必要があります。
Set MyEmail=CreateObject("CDO.Message")
MyEmail.Subject="Subject"
MyEmail.From="[email protected]"
MyEmail.To="[email protected]"
MyEmail.TextBody="Testing one two three."
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendusing")=2
'SMTP Server
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpserver")="smtp.server.com"
'SMTP Port
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpserverport")=25
MyEmail.Configuration.Fields.Update
MyEmail.Send
set MyEmail=nothing
SMTPサーバーでユーザー名とパスワードが必要な場合は、これらの行をMyEmail.Configuration.Fields.Update
行:
'SMTP Auth (For Windows Auth set this to 2)
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/smtpauthenticate")=1
'Username
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendusername")="username"
'Password
MyEmail.Configuration.Fields.Item ("http://schemas.Microsoft.com/cdo/configuration/sendpassword")="password"
CDOを使用してVBScriptで電子メールを送信する方法の詳細については、以下のリンクを参照してください。 http://www.paulsadowski.com/wsh/cdo.htm
はい。 Blatまたはその他の自己完結型SMTPメーラー。 Blatは、コマンドラインから実行されるかなりフル機能のSMTPクライアントです