none
タスクスケジューラからのメール送信について RRS feed

  • 質問

  • お世話になります。

    Windows7 Pro

    社内サーバーのバックアップ結果(成功/失敗)をメール送信させたいと考えております。
    ※Windows Serverバックアップを利用し日々バックアップしてます。

    そこで、まず自分のPCで検証しているのですが、うまく送信できません。

    Windows7のバックアップを実行すると、アプリケーションログにイベントID:4098
    「バックアップが完了しました。」と残るので、このIDを検出しメール送信させようと
    タスクスケジューラに下記のように設定しました。

    <トリガー>
     ログ:アプリケーション
     イベントID:4098

    <操作>
     操作:電子メールの送信
     差出人:送信元アドレス
     送信先:送信先アドレス
     件名:バックアップ結果
     テキスト:テスト
     SMTPサーバー:SMTPサーバー名 ← 社内のメールサーバーです。

    ※差出人も送信先も同じアドレスを指定してます。


    バックアップを実行し完了すると(アプリケーションログに4098が書き込まれると)
    当該タスクが動こうとはしていますが、下記エラーとなります。

    当該タスクの「履歴」タブを見ると、
     
     イベントID:202
     タスクのカテゴリ:操作に失敗しました
     オペコード:実行エラー
     「タスク スケジューラは、タスク "\バックアップ結果"、インスタンス "{9fb710cd-
     f1e5-4dc3-aace-06c8d91cb744}"、操作 "バックアップ結果" に失敗しました。
     追加データ: エラー値: 2147746321。」

    となってます。
    ※"バックアップ結果"はタスク名です。

    また、前回の実行結果は"0x80040211"

    タスクが実行されると、McAfeeの「大量メール配信型ワームにメールを送信させない」

    という項目で検知したので、無効にしました。
    また、Windowsファイアウォールも無効にしてみましたが、状況変わらずです。

    どのようなことが考えられますでしょうか。

    タスクスケジューラのメール送信には上記の入力項目だけで、ユーザー名/パスワード
    の項目が無いのでSMTPサーバーの認証で蹴られてるのかもしれませんが。。

    ご教示の程、宜しくお願い致します。

    2015年10月6日 2:58

回答

  • チャブーンです。

    いただいたキャプチャの結果からは、タスクスケジューラ実行の際には、SMTPの認証提示に対してAUTH LOGINを要求してしまう、というところが問題のように、見受けられますね。ユーザ名の提示がない、ということですが、タスクを実行するユーザは「SYSTEM」なのでしょうか?であれば(通常のドメインアカウントではないので)提示されない可能性もあるかもしれません。

    GUIの設定には、ユーザやパスワードを指定する部分はないため、タスクの実行アカウントが使われる可能性を確認するため、もしドメインアカウントでメール送信を行っているのであれば、[タスクを実行するユーザ]にメール送信に使用するドメインアカウントを指定してみれば、はっきりするように思います。

    うえでもうまくいかないようであれば、ふつうの方法ではムリだと思いますので、素直にスクリプトを使用された方がいいと思います。「非推奨の機能」でもありますので、永らく使うことを想定する理由はほぼないとも思われます。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク nao216 2015年10月13日 2:47
    2015年10月8日 10:21

すべての返信

  • こんにちは

    基本的な事柄で恐縮ですが、
    SMTPの設定に誤りがないとすると、

    タスク設定のセキュリティオプションで
    ・ユーザーがログインしているかどうかにかかわらず実行する
    ・最上位の特権で実行する
     → 設定後に認証ダイアログが出ますので、Builtin Administartor等の
       強力なアカウントを指定

    上記設定でも動作できませんか?

    また、御社内のSMTPサーバーはポート25で接続できますか?
    587を使う場合はユーザー認証が必要でしょうからタスクスケジューラーのメール送信機能では厳しいかも。
    (私は知らないだけかも…)

    参考まで。

    2015年10月6日 4:34
  • Koba33さま

    ご回答ありがとうございます。

    >・ユーザーがログインしているかどうかにかかわらず実行する

     ⇒ 現状、検証している中で常にログオンしている状態なので、

       「ユーザーがログオンしているときのみ実行」としております。

    >・最上位の特権で実行する

     ⇒ 現在ログオンしているアカウントはローカルAdmin権限を付加して

       おりますので、これについては問題無いかと思います。

    >また、御社内のSMTPサーバーはポート25で接続できますか?

     ⇒ 社内のSMTPはポート25を使っております。メーラーにも25を設定

        しており、問題なく送受信できております。

    とりあえず、「ユーザーがログオンしているかどうかにかかわらず実行する」に変更し

    試してみましたが、状況変わらずでした。

    <追記>

    権限で思い出しましたが、タスクスケジューラで履歴を見ていると、急に履歴の内容が

    変わってしまうケースがあります。

    例えば、「ユーザーxxはタスクスケジューラのタスク”タスク名”を更新しました。」

    という内容ものが、いつの間にか

    「ソース"Microsoft-Windows-TaskScheduler"からのイベントID140の説明が見つかり

    ません。このイベントを発生させる・・・」

    と表示されるようになり、最終的には

    「ユーザーアカウントにこのコンピュータでタスクの履歴を表示するアクセス許可がありません。」

    とポップアップが表示され、それ以降は履歴の箇所にもポップアップと同じ内容のメッセージ

    が表示されるようになります。

    先ほどお伝えしたように、現在ログオンしているアカウントはローカルAdmin権限がある

    (=Administratorsに所属)ので、権限が無いということはないと思うのですが。。

    で、いったんタスクスケジューラをおとし、起動し直すとちゃんと履歴が表示されるように

    なります。


    • 編集済み nao216 2015年10月6日 5:35
    2015年10月6日 4:57
  • こんにちは

    こちらでWindows7 Ulti(仮想環境)でタスクスケジューラーのメール送信をやってみました。
    当然?なのか成功しています。
    ほぼ、nao216さんの設定と同じと思います。

    一点気になったのですが、SMTPサーバーにSMTPサーバー名を記載とありますが、
    FQDNで記載していますよね?
    また、可能であればサーバー名の所をIPアドレスの直接入力で試せますか?

    ※私のテストではサーバー名をIPアドレスとしています。

    参考まで。

    2015年10月6日 5:30
  • 検証までして頂きありがとうございます。

    FQDNで記載しております。

    サーバー名をIPアドレスとして実施してみましたが、同エラーとなります。。

    2015年10月6日 7:51
  • nao216さん、こんにちは

    なかなか手強いですね…

    PC個体の問題か、ネットワーク環境の問題かの切り分けが必要でしょうか?
    PC個体起因のような気がしますが、他のWin7端末でテストすることは可能ですか?

    もしそれで成功した場合は…FixItでもするしか…

    こちらでは適当な端末でも送信出来てしまうので役に立たない状態です。

    参考まで。

    2015年10月6日 8:14
  • Koba33さん

    度々のご回答ありがとうございます。

    今更ですが、自分のPCのメーラー(秀丸メール)にて、アカウント、パスワード及び

    POP3サーバーを空白とした状態で、メールを送信したところ、問題無く送信できました。

    ※要するにSMTPサーバーのみ設定されている状態。

    なので、認証がどうとか関係無いかもです。。

    他のPCで試しご報告致します。

    <追記>

    早速試してみたところ、やはり同エラーとなってしまいます。

    環境の問題なのでしょうか。。それともタスクの設定自体が間違っているのでしょうか。

    設定内容としては、質問に記載した通りです。。

    • 編集済み nao216 2015年10月6日 8:32
    2015年10月6日 8:23
  • nao216さん、こんにちは

    他のPCでも試して送信できなかったのですね?

    となると…
    ①御社内のPC端末共通の設定に起因
    ②御社内のネットワークに起因

    の何れかではないでしょうか?

    私の場合はMcAfeeで遮断されて送信できないことは経験したことが有りますが、
    ・セキュリティソフトの例外に登録する(若しくはOFF)
    ・実行権限をAdministratorにする
    ・最上位の特権で実行する
    上記設定で送れてしまいます。

    また、タスクスケジューラーの履歴の表示に関しては、
    タスクスケジューラー画面右側の「操作ペイン」に
    [すべてのタスク履歴を無効にする] または [すべてのタスク履歴を有効にする
    という項目あるのでそこで表示の有無を設定できます。
    また、タスクスケジューラを起動するときに「管理者として実行」を使って起動してみてください。


    参考まで。

    2015年10月6日 15:30
  • Koba33さん おはようございます。

    タスクを設定した当初、実行するとMcAfee VSE8.8の「大量メール配信型ワームにメールを送信させない」で検知された為、除外に「taskeng.exe 」を登録することで、検知されなくなりました。
    念のため「アクセス保護」及び「オンアクセススキャン」自体を無効にしております。

    Windowsファイヤウォールも全て無効の状態にしているので、その辺でブロックされている訳ではなさそうです。


    「最上位の特権で実行する」のチェックを入れてなかったので、入れて実行 ⇒ 同じエラーで状況変わらず。

    「管理者として実行」でタスクスケジューラを起動し実行 ⇒ 同じエラーで状況変わらず。

    「タスク実行時に使うユーザーアカウント」を私のドメインアカウントからローカルのAdministratorに変更し実行 ⇒ 同じエラーで状況変わらず。
     ※私のドメインアカウントは当該PCのAdministratorsに所属してます。

    ちなみにですが、別件で当該PCにHDDの監視ツール(CrystalDiskInfo)を先日インストールしました。

    このツールはHDDで何かしら不具合が起きた際に、メール通知する機能があるのですが、そこに今回と同じようにSMTPサーバーや送信元/送信先アドレスを設定しましたが、テストメールを送信することができました。入力項目として、ポート番号は必須となっているので25を設定しましたが、ユーザー名/パスワードは空白の状態でも送信することができました。

    当該ツールからのメール送信も、タスクスケジューラからのメール送信もそれほど変わらない(同PC、同環境にて実施しているので)と思うのですが。。

    そう考えると、

    >①御社内のPC端末共通の設定に起因
    >②御社内のネットワークに起因

    は問題無い?のかもしれません。

    <追記>

    SMTPサーバーの箇所に、あえて違うIPアドレス(当該PCのIP)を設定したところ、エラーが "0x80040211"から"0x80040213" に変わりました。このことから、何か分かりますでしょうか。

    • 編集済み nao216 2015年10月7日 1:17
    2015年10月7日 0:34
  • ちなみにですが、別件で当該PCにHDDの監視ツール(CrystalDiskInfo)を先日インストールしました。

    このツールはHDDで何かしら不具合が起きた際に、メール通知する機能があるのですが、そこに今回と同じようにSMTPサーバーや送信元/送信先アドレスを設定しましたが、テストメールを送信することができました。入力項目として、ポート番号は必須となっているので25を設定しましたが、ユーザー名/パスワードは空白の状態でも送信することができました。

    当該ツールからのメール送信も、タスクスケジューラからのメール送信もそれほど変わらない(同PC、同環境にて実施しているので)と思うのですが。。

    そう考えると、

    >①御社内のPC端末共通の設定に起因
    >②御社内のネットワークに起因

    は問題無い?のかもしれません。

    nao216さん、こんにちは

    上でnao216さんが述べられていること自体が「①御社内のPC端末共通の設定に起因」に当たると思いますが…
    一般的にはWindows7であればTaskマネージャーからメール送信可能なので。

    自動でメール送信が可能かどうかを確認するためであれば
    コンソールアプリ、Script等でプログラム的にメールを送信するバッチ or exeを作成し、
    タスクスケジューラーに登録してみてはどうでしょう?
    (私はもっぱらこの方法で自動送信しています)

    → Win8以降はタスクスケジューラーのメール送信機能は「非推奨」みたいですので。

    参考まで。

    2015年10月7日 1:22
  • nao216 さま よろしく。

    大変そうな内容ですね。

    さて、イベントログに記録されたユーザーを確認して見て下さい。 特殊アカウントになっていませんか。 そうであれば、トリガーにする権限がないのかも知れません。(未確認) BultInAdmin. や最上位ではなく、 同一アカウント もしくは System で組んだら変わりますか?。

    2015年10月7日 2:28
  • >上でnao216さんが述べられていること自体が「①御社内のPC端末共通の設定に起因」に当たると思いますが…

    についてですが、説明不足ですみません。必ずしも「共通設定に起因している」とは限らないのでは?という意味です。

    タスクスケジューラからメール送信NG、HDD監視ツールからはメール送信OK・・・という結果から、タスクスケジュールからのメール送信に特化した何かかなと。

    確かに別PCで同じタスクの設定をして同じエラーが出たので、結果としては「共通」してますが。。

    で、タスクスケジューラからのメール送信と、HDD監視ツールからのメール送信で何か違うのではないかと思い、WireSharkを使ってパケットキャプチャしてみました。今まで使ったことありませんが、とりあえず何かしら違いさえ分かればいいかなと。

    <タスクスケジューラ実行>
     S:S220 Mdaemon.ドメイン名 ESMTO MDaemon …
     C:EHLO 当該PC名
     S:250 MDaemon.ドメイン名 Hello 当該PC名 …
     C:AUTH LOGIN
     S:334 VXN1cm5hbwu6

    <HDD監視ツールよりテストメール送信>
     S:220 Mdaemon.ドメイン名 ESMTO MDaemon …
     C:EHLO 当該PC名
     S:250 MDaemon.ドメイン名 Hello 当該PC名 …
     C:MAIL FROM:<送信元アドレス>
     S:250 2.1.0 Sender OK
     C:RCPT TO:<送信先アドレス>
     S:250 2.1.5 Recipient OK
     C:DATA
     S:354 Enter mail, end with <CRLF>,<CRLF>
     C:DATA fragment, 265 bytes
     C:DATA fragment, 82 bytes
     C:DATA fragment, 2 bytes
     from: 送信元アドレス,Subject:件名

    調べたところ、C:はクライアントが送信したもの、S:はサーバーが送信したものらしく。

    "AUTH LOGIN"はSMTP認証らしいので、認証しにいこうとして弾かれているということになるんですかね。
    ・・・ってことは、タスクスケジューラからのメール送信はSMTP認証される??

    この観点で調べたところ、
    「Windows の SMTP サーバーでは、電子メールは NTLM 認証を使用して送信されます。
    そのため、タスクの実行に使用するセキュリティ資格情報は、電子メールを送信するために
    SMTP サーバーに対する権限も持っている必要があります。
    SMTP サーバーが Windows ベースのサーバーでない場合、サーバーで匿名アクセスが許可されて
    いれば電子メールは送信されます。」
    とありました。
    https://technet.microsoft.com/ja-jp/library/cc721846.aspx?f=255&MSPPError=-2147217396

    ここでいう"WindowsのSMTPサーバー"とは、どういった意味なのでしょうか。単純にOSがって意味なのか、

    それともWindowsの機能でSMTPサーバーを構築しているケース?

    ちなみにKoba33さんの環境ではSMTPサーバーに何を使ってらっしゃるのでしょうか。


    • 編集済み nao216 2015年10月7日 3:08
    2015年10月7日 3:05
  • ShiroYuki_Mot 様

    Koba33と申します。

    本件について色々調べている中で、「Systemアカウントを使うと解決できる」という
    コメントを見つけておりました。

    Task Scheduler - Can't Send Email

    自分が説明できないので記述しておりませんでしたが、
    どの様な理屈になるのでしょうか?
    (私の質問でないのにすいません)



    2015年10月7日 3:09
  • ShiroYuki_Motさん

    ご回答ありがとうございます。

    もともと、自分のアカウント(ドメイン名\ユーザー名)で実行しておりましたが、他に当該PCのAdministratorでも試しましたが、状況変わらずでした。

    ※自分のアカウント=現在PCにログオンしているアカウント です。

    早速Systemに変更し実行してみましたが、やはりエラー"0x80040211"となってしまいます。

    2015年10月7日 3:53
  • koba33 さま 拝見しました。

    アカウントによって、割り当てられている権限が異なります。 通常は System が最上位ですが、これも万全ではありません(対象や設定によっては)。 System はサービス系のタスクの組み込みアカウントです。

    良い例が、ファイルで ACL の設定を間違えて、作成者以外手を着けられないと言う あれ ですね。


    • 編集済み ShiroYuki_Mot 2015年10月7日 6:28 System の位置付け追記
    2015年10月7日 5:47
  • nao216 さま 拝見しました。

    そうですか、System でも駄目ですか。

    因みに、イベントログに記録されたユーザー は何ですか。

    後、 検索で以下のページを見付けました。  参考になりますでしょうか。 https://community.dynamics.com/ax/f/33/t/123972

    2015年10月7日 5:54
  • チャブーンです。

    この件ですが、エラーコード(0x0x80040211)と状況から考えると、CDO(Collaboration Data Objects).Messageによるメール送信時の接続エラーであり、タスク側というよりメールサーバ側の問題のように思います。

    具体的には、たとえばメールサーバ側で「送信時のSMTP認証」を行っている場合、SMTP認証の設定を行っていないCDO.Messageからの送信要求は受け付けません。イベントログのタスク登録では「SMTP認証」部分の設定はできないので、どうしてもこのような方法が採りたい場合、たとえばしたのようなvbsスクリプトを用意して、[プログラムの実行]で cscript <vbsのフルパス>でスクリプトで送信を行わせる、といった方法が必要です。(メールセキュリティの詳細は社内メールソフトの設定方法を確認されるか、社内のメールサーバ管理者におたずねください)

    http://serialty.blog117.fc2.com/blog-entry-10.html

    イベント発生時のメール送信は、「管理者向けの特殊用途」として管理者が専用SMTPサーバを用意して、そのためだけの用途なので、認証等セキュリティ要件はほとんど考えられていません。しかし、一般ユーザ向けのSMTPサーバは情報漏えいやスパム送信被害を防ぐため、様々な認証機構で、「想定外ユーザ/プログラムからの許可外送信」が行えないように設計するのが普通です。

    このような問題を避けたい場合、メールサーバ管理者に相談のうえ実装を考えるか、その目的専用のSMTPサーバを構築する(Windowsの場合はIISのサブコンポーネントとしてSMTPサーバを構築できます)することになるのではないでしょうか。

    ただし、ご自身でSMTPサーバを構築する場合、設置場所(インターネットはもちろん、想定外ユーザからアクセスさせないこと)やリレー設定など、セキュリティに注意しないと問題が発生することがあります。また社内ルール上許可されない可能性もありますので、あまりお奨めできません。

    このような問題をふまえて、ご自身で確認いただけるとよいかと思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2015年10月7日 6:34
  • チャブーンさん

    ご回答ありがとうございます。
    ご紹介頂いたページにある1番上のサンプルコードを参考にして、こちらの環境にあわせてvbsファイルを作成しました。

    で、それをタスクマネージャから実行したところ、メール送信できました。
    これってSMTP認証されずに送られたということになるのでしょうか。
    ※vbsに"smtpauthenticate"は記述してません。


    なお、メーラー(秀丸メール)の「認証方式」ですが、
     ・APOP認証
     ・SMTP-AUTH
     ・POP before SMTP
     ・セキュリティで保護されたパスワード認証(NTLM認証)
    がありますが、いずれにもチェックが入ってません。

    本来、認証不要なのにタスクマネージャーからメール送信する場合は
    認証されてしまう為、送れない?ってことになるのでしょうか。

    <追記>
    すみません。分からなくなってきました。。逆ですかね?
    タスクマネージャーからメール送信する場合、認証出来ない(ユーザー名/パスワードの設定無し)
    から、メールサーバー側で認証していると送れないってことなんですよね。

    前の回答に書きましたが、秀丸メールのユーザー名/パスワードを空白にした状態でも
    送信でき(認証の設定もしてない)、また、HDD監視ツールでもユーザー名/パスワードを空白にしても
    送信できました。
    なので、社内のメールサーバーは一切認証してない・・という認識です。
    ということは、タスクマネージャーからはSMTP認証できなくても送信できるのではないかなぁと
    思うのですが。。

    • 編集済み nao216 2015年10月7日 8:50
    2015年10月7日 8:25
  • >因みに、イベントログに記録されたユーザー は何ですか。

    「SYSTEM」となっております。

    ご紹介頂いたページですが、英語であるため理解できず。。

    2015年10月7日 8:27
  • ShiroYuki_Mot 様

    ご回答頂きありがとうございます。

    ファイルを例で納得いきました。
    また、Taskスケジューラーで実行権限をSystemに変更した場合は、
    ログオンの有無、最上位の特権☑に関係なく実行できることも確認しました。

    私の場合は適当なアカウント(Admi等)を設定してもMail送信出来ていたので、
    意識していませんでした。

    ありがとうございます。

    2015年10月7日 8:54
  • そこの所を深堀したいのであれば、コミュニティの方のスレッドでも書きましたが SMTP サーバー側のログを調査するとか、またネットワーク トレースなどで認証についてどのような情報がやり取りされているのか調査するとか、それなりの情報収集が必要になるでしょう。

    とりあえず「動いたからよし」とするか、さらに調査を進めるかはご自身の判断です。


    hebikuzure

    2015年10月7日 11:02
  • nao216さん、こんにちは

    チャブーンさんのコメントを基にして作成したvbsファイルでは
    Taskからメールが送信出来ているようですね。

    取りあえずは良かったかと思います。
    (解決にはなっていませんが)

    この辺の難しさがWin8以降でTaskスケジューラからメール送信機能が非推奨になった所以でしょうか?
    (根拠はありません)

    ちなみにKoba33さんの環境ではSMTPサーバーに何を使ってらっしゃるのでしょうか。

    弊社内のSMTPサーバーは情報システム関連の関連会社が運営しており、
    多分、Exchangeサーバーと思いますが詳細は分かりません。
    (何者であるか意識しなくとも利用できているので…)
    ※弊社内では個別のSMTPサーバーの構築が厳しく禁じられています

    参考まで。



    • 編集済み Koba33 2015年10月7日 12:04
    2015年10月7日 12:01
  • hebikuzureさま

    要件としては、イベントログから特定のイベントIDを拾ってメールが送信できればよいだけです。

    今回色々調べている中で「電子メールの送信」というものがあることを初めて知りました(今まで「プログラムの開始」でbat等を実行することは多々ありましたが)。

    なので、せっかくこういう機能があるので使ってみようと思った次第です(Scriptより手間はかからないかなと)。

    で、実際やってみたらドツボでした。。

    本来、普通に送れるはずのものが何か設定等の問題で送れないだけであれば、タスクスケジューラのメール送信機能を使いたいところです。

    2015年10月8日 1:43
  • チャブーンです。

    この件ですが、「送れない原因がSMTP認証の問題なのか」を判断するには、実際の送信状況を「ネットワークトレース」でキャプチャして調べるとよいと思います。

    今の状況の原因を「設定」や「挙動」だけで判断するのは難しすぎるため、実際の内部動作を直接確認する方法が、一番わかりやすいと思います。

    WireSharkといったネットワークトレースソフトウェアを使って、メールサーバ=イベントのタスク実行を行うサーバ、間で通信をとり、[smtp]といったプロトコル名でフィルタを行えば、メール送信に関する情報を確認できます。

    http://troushoo.blog.fc2.com/blog-entry-108.html

    メール送信に失敗した場合、メールサーバ側からエラーコードが返却されますので、その内容をみることで、SMTP的にどんな問題が出ているのか、切り分けができます。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2015年10月8日 2:03
  • チャブーンさん

    WireSharkによるパケットキャプチャにつきましては昨日実施し、SMTPの結果を載せております。

    WireSharkを使うのが今回初めてだった為、情報が足りないかもしれませんがご確認頂けたけると幸いです。

    2015年10月8日 3:49
  • チャブーンです。

    なるほど。べつの記事にあるようですね。引用してみます。

    <タスクスケジューラ実行>
     S:S220 Mdaemon.ドメイン名 ESMTO MDaemon …
     C:EHLO 当該PC名
     S:250 MDaemon.ドメイン名 Hello 当該PC名 …
     C:AUTH LOGIN
     S:334 VXN1cm5hbwu6

    これですが、AUTH LOGINとは「Base64」ベースによるユーザ認証のしくみです。で、AUTH LOGINは以下のような方法で認証が進みます。本来はサーバ側からの要求に対して、クライアントが応答する、ということになります。

    http://www.fehcom.de/qmail/smtpauth.html

    ----
    S: 220 esmtp.example.com ESMTP
    C: ehlo client.example.com
    S: 250-esmtp.example.com
    S: 250-PIPELINING
    S: 250-8BITMIME
    S: 250-SIZE 255555555
    S: 250 AUTH LOGIN PLAIN CRAM-MD5→サーバが認証可能な方法をクライアントに要求
    C: auth login→クライアントが認証可能な方法をサーバに提示
    S: 334 VXNlcm5hbWU6→サーバがユーザ名を要求
    C: avlsdkfj→クライアントがユーザ名を提示
    S: 334 UGFzc3dvcmQ6</tt>→サーバがパスワードを要求<tt>
    C: lkajsdfvlj</tt>→クライアントがパスワードを提示<tt>
    S: 535 authentication failed (#5.7.1)→サーバが認証結果を提示(失敗)
    ----

    タスクで実行した結果についてですが、AUTH LOGIN要求の後の「ユーザ名」と「パスワード」でどのような文字列を返したのか、によって、クライアントがどんな認証を行おうとしているのかがわかるでしょう。また、認証結果についても確認が必要です。

    文字列ですが、「lと1はちがいます」しBase64は「大文字/小文字」に意味の違いがあるので、パケットデータの内容そのままを利用する必要があります(こちらでは手書きされている、という理解です)

    Base64文字列は、したのページででコードすると、文字内容がわかるように思います。

    https://www.base64decode.org/


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。



    2015年10月8日 4:59
  • チャブーンさん

    コピーしてみました。以下のようになってます。

     S: 220 MDaemon.ドメイン名 ESMTP MDaemon 15.0.3; Thu, 08 Oct 2015 14:15:42 +0900
     C: EHLO 当該PC名
     S: 250 MDaemon.ドメイン名 Hello 当該PC名, pleased to meet you | 250 ETRN | 250 AUTH LOGIN CRAM-MD5 PLAIN | 250 8BITMIME | 250 ENHANCEDSTATUSCODES | 250 STARTTLS | 250 SIZE
     C: AUTH LOGIN
     S: 334 VXNlcm5hbWU6

    SMTPはここまでで、それ以降はTCPで以下のようになってます。

     50850→25 [FIN, ACK] Seq=29 Ack=262 Win=65280 Len=0
     25→50850 [ACK] Seq=262 Ack=30 Win=65536 Len=0
     25→50850 [FIN, ACK] Seq=262 Ack=30 Win=65536 Len=0
     50850→25 [ACK] Seq=30 Ack=263 Win=65280 Len=0

    サーバーは認証方法を提示し、それに対してクライアントが「AUTH LOGIN」を返し、で、サーバーがユーザー名を要求したところで途切れてるって感じでしょうか。
    そもそもタスクのメール送信ではユーザー名及びパスワードを設定する箇所が無いので、クライアントは返答できない・・・ってことになるのでしょうか。


    ちなみにHDD監視ツールからのメール送信の場合、
     S: 220 MDaemon.ドメイン名 ESMTP MDaemon 15.0.3; Thu, 08 Oct 2015 14:47:01 +0900
     C: EHLO 当該PC名
     S: 250 MDaemon.ドメイン名 Hello 当該PC名, pleased to meet you | 250 ETRN | 250 AUTH LOGIN CRAM-MD5 PLAIN | 250 8BITMIME | 250 ENHANCEDSTATUSCODES | 250 STARTTLS | 250 SIZE
     C: MAIL FROM:<送信元アドレス>
     S: 250 2.1.0 Sender OK
     C: RCPT TO:<送信先アドレス>
     S: 250 2.1.5 Recipient OK
     C: DATA
     S: 354 Enter mail, end with <CRLF>.<CRLF>
     C: DATA fragment, 265 bytes
     C: DATA fragment, 82 bytes
     C: DATA fragment, 2 bytes
     from: 送信元アドレス, subject: 件名,  (text/plain)
     25→51121 [ACK] Seq=331 Ack=441 Win=65024 Len=0
     S: 250 2.6.0 Ok, message saved
     51121→25 [ACK] Seq=441 Ack=360 Win=65280 Len=0
    となっております。
    サーバーからの認証方法の提示に対して、クライアントが送信元アドレスを返してるってことになるのでしょうか。
    この場合、認証無しってことになるのでしょうか。

     

    2015年10月8日 6:06
  • チャブーンです。

    いただいたキャプチャの結果からは、タスクスケジューラ実行の際には、SMTPの認証提示に対してAUTH LOGINを要求してしまう、というところが問題のように、見受けられますね。ユーザ名の提示がない、ということですが、タスクを実行するユーザは「SYSTEM」なのでしょうか?であれば(通常のドメインアカウントではないので)提示されない可能性もあるかもしれません。

    GUIの設定には、ユーザやパスワードを指定する部分はないため、タスクの実行アカウントが使われる可能性を確認するため、もしドメインアカウントでメール送信を行っているのであれば、[タスクを実行するユーザ]にメール送信に使用するドメインアカウントを指定してみれば、はっきりするように思います。

    うえでもうまくいかないようであれば、ふつうの方法ではムリだと思いますので、素直にスクリプトを使用された方がいいと思います。「非推奨の機能」でもありますので、永らく使うことを想定する理由はほぼないとも思われます。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    • 回答としてマーク nao216 2015年10月13日 2:47
    2015年10月8日 10:21
  • チャブーンさん

    タスクを実行するユーザーはドメインアカウントであり、当該PCにログオンしているアカウントでもあります。
    例えば、PCにログオンしているアカウントが「DomainA\userA」だった場合、タスクを実行しているのも「DomainA\userA」で実行してます。

    >もしドメインアカウントでメール送信を行っているのであれば、[タスクを実行するユーザ]にメール送信に
    >使用するドメインアカウントを指定してみれば、はっきりするように思います。

    ここでいう「ドメインアカウントでメール送信を行っているのであれば」とは、「ドメインアカウントを使ってタスクを実行してメール送信を行っているのであれば」という意味でしょうか。
    だとしたら、既にドメインアカウントで実行させております。

    2015年10月8日 10:56
  • Koba33さま
    ShiroYuki_Motさま
    チャブーンさま
    Hebikuzureさま

    今回は色々とご回答頂きありがとうございました。
    「電子メールの送信」機能について勘違いしていた部分がございました。

    Win8及びServer2012以降、この「電子メールの送信」機能が非推奨となって
    いることは把握しておりましが、あくまでも推奨されてないだけであって
    設定さえすれば使えるものだと思っておりました。

    でも、この「非推奨」というのは実際には「利用できない」ということだった
    のですね。
    ※「電子メールの送信」と「メッセージの表示」機能を使ってタスクを
     設定しようとすると「推奨されない機能をタスク定義で使用しています」と
     エラーメッセージが表示され、設定自体できない。

    なので、例え検証していたWin7で送信できたとしても、Server2012には
    タスク設定自体ができなかったってことですね。

    Win7で送信できない原因はつきとめたいところではありますが、とりあえず
    サーバーではScriptでメール送信させるようにしたいと思います。

    色々勉強させて頂きました。
    ありがとうございました。

     

    2015年10月13日 4:50