私はC#サービスチェッカープログラムを持っています。 exeは、多数の引数(例えば、チェックしたいサービスの数、サービス表示名の文字列など)とemailTo、emailFrom、emailServerなどの引数を渡すバットファイルから開始されます。サービスが実行されていない場合、電子メールが送信されます。これは、電子メールの一部のコードです:私はとしてemailServerを使用する1台のサーバだから、サーバー上でプログラムを実行しているときのメールの例外?
MailMessage mail = new MailMessage(emailFrom, emailTo);
SmtpClient SMTP = new SmtpClient(emailServer);
if (emailUser != "")
{
SMTP.Credentials = new NetworkCredential(emailUser, emailPass);
}
mail.Subject = "The " + service + " service has stopped running";
mail.Body = "Please take a look into the " +
service + " service and think about restarting.";
SMTP.Send(mail);
「localhost」をbatファイルでは、渡されたと、それを実行したとき、私はチェックしていますサービスは、実行されていない場合電子メールは正常に送信され、すべてが機能しています。しかし、別のサーバでは、私はemailServerとして "localhost"を使用しますが、私はbatファイルを実行します。 System.Net.Mail.Smtp.Exception [8012]というエラーが発生し、電子メールは送信されません。これは、私の問題の原因となっているプログラムではなく、サーバ上で設定されているものですか(サーバ設定は私の強力な領域ではありません)。
ありがとうございました。
あなたの関数の周りに 'try ... catch(Exception ex)'を使って 'ex.Message'を表示してください。 – Marco
サービスアカウントはsmtpサーバにアクセスできますか? – KMan