VBScriptの機能を用いてメールの送信をサーバー側(Windows Serverv2016)でおこなっております。
現象としまして、
送信できるときもあれば失敗するときもあるような状況でして、
具体的に掘り下げますと、ユーザーがRemoteApp機能を用いて起動されたアプリケーションを操作し、
メールを一度に4通ほど送信すると失敗するときがあり、その際にはエラーメッセージが表示されます(エラー内容は下記に記載)。
※試行回数は少ないですが、8割方失敗。失敗するときは4通すべて失敗します。
2割成功するわけですが、そのときは大体、ユーザーからメールが送信されていないとお問い合わせいただき、
私がサーバーへとリモートで接続し、管理者権限を有するAdministratorユーザーでサーバーにログオン後、
ユーザーに全く同じ操作をしていただくと送信されるというような挙動をします。
これに関してはたまたま運が良く送信されただけで、
私の接続有無は関係がないかもしれません。
(管理者権限で誰かがログオンしていることがVBScriptの実行可否と関係があるとは思えないのですが・・)
ユーザーの環境下ということもあり、
SMTPサーバーのログを調べたりといったことが
なかなか難しく困っております。
とりあえず同じような環境を構築して
検証してみてもこういった問題は発生しませんでした。。
※同じような環境とは、サーバーを用意し、RemoteApp経由で同じプログラム且つ、
同じVBScriptを用意し実行できる環境。唯一異なる点といえばサーバーへと接続する際にに用いる
ユーザーは管理者権限を有するユーザー。
なんでも構いません。
「こういった可能性がある」や、「VBScriptはこういう仕様」といったり、
「コーディングに甘い箇所がありこうすべき」などございましたらアドバイスをいただけませんでしょうか。。
発生しているエラーメッセージ
Windows Script Host
スクリプト:D:\~(VBSの場所)
行:27
文字:1
エラー:転送においてサーバーに接続できませんでした。
コード:80040213
ソース:CDO.Message.1
VBScriptの内容 ※送信先のAddress、件名や本文は引数で渡ってきます
Dim oParam Dim strTo ' メール宛先 Dim strSubject ' 件名 Dim strBody ' 本文 Set oParam = WScript.Arguments strTo = oParam(0) strSubject = oParam(1) strBody = oParam(2) Set objMail = CreateObject("CDO.Message") objMail.From = "送信者 <send@xxxxxx.co.jp>" objMail.To = strTo objMail.Subject = strSubject objMail.TextBody = strBody objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "SMTPサーバー" objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "send@xxxxxx.co.jp" objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "パスワード" objMail.Configuration.Fields.Update objMail.Send
回答2件
あなたの回答
tips
プレビュー