Movatterモバイル変換


[0]ホーム

URL:


BLOGTIMES

cles::blog

平常心是道
« :: »
2018/07/15

SMTP Auth /w STARTSSL のデバッグを行うスクリプト

  perl  systemmanagemant 
このエントリーをはてなブックマークに追加

仕事場のメールサーバが Office 365 に切り替わったのですが、なぜか SMTP だけ認証が効かなかったので状況を調査するための簡単なスクリプトを書いてみました。

昔は通信が平文だったので、SMTP のデバッグも telnet コマンドでイケましたが、今は TLS で暗号化されているのが標準という時代なので、openssl を使う必要が出てきます。今回は SMTP Auth の部分も必要だったので、なるべくマニュアル作業が少なくなるように Perl でスクリプトを書いてみました。

Perl はしばらく触れていなかったので、すっかり時代に取り残されてしまっている感じですが、標準のNet::SMTP ライブラリでもSMTP Auth とか、STARTSSL なんかに対応しているんですね。

smtpStartsslDebug.pl

#!/usr/bin/env perluse strict;use warnings;use utf8;use Net::SMTP 3.0;use Authen::SASL qw(Perl);my ($mailserver, $port, $user, $password) = @ARGV;my $smtp = Net::SMTP->new( $mailserver, Port => $port, Timeout => 10, Debug => 1,);die "ERROR: smtp connection failed.$!" if !defined $smtp;$smtp->starttls();$smtp->auth( $user, $password) or die "ERROR: Authentication failed.\n";$smtp->quit();

コマンドラインの引数として、サーバ名、ポート番号、ユーザー名、パスワードの4つを取ります。

実際に実行してみると、以下のような感じで接続の様子が表示されます。
# 実際のパスワード等についてはダミーに書き換えてあります。

$ perl smtpStartsslDebug.pl smtp.office365.com 587 user@example.jp 'password'Net::SMTP>>> Net::SMTP(3.11)Net::SMTP>>> Net::Cmd(3.11)Net::SMTP>>> Exporter(5.73)Net::SMTP>>> IO::Socket::IP(0.39)Net::SMTP>>> IO::Socket(1.39)Net::SMTP>>> IO::Handle(1.39)Net::SMTP=GLOB(0x2829750)<<< 220 TYAPR01CA0017.outlook.office365.com Microsoft ESMTP MAIL Service ready at Sun, 15 Jul 2018 12:41:09 +0000Net::SMTP=GLOB(0x2829750)>>> EHLO localhost.localdomainNet::SMTP=GLOB(0x2829750)<<< 250-TYAPR01CA0017.outlook.office365.com Hello [160.16.198.140]Net::SMTP=GLOB(0x2829750)<<< 250-SIZE 157286400Net::SMTP=GLOB(0x2829750)<<< 250-PIPELININGNet::SMTP=GLOB(0x2829750)<<< 250-DSNNet::SMTP=GLOB(0x2829750)<<< 250-ENHANCEDSTATUSCODESNet::SMTP=GLOB(0x2829750)<<< 250-STARTTLSNet::SMTP=GLOB(0x2829750)<<< 250-8BITMIMENet::SMTP=GLOB(0x2829750)<<< 250-BINARYMIMENet::SMTP=GLOB(0x2829750)<<< 250-CHUNKINGNet::SMTP=GLOB(0x2829750)<<< 250 SMTPUTF8Net::SMTP=GLOB(0x2829750)>>> STARTTLSNet::SMTP=GLOB(0x2829750)<<< 220 2.0.0 SMTP server readyNet::SMTP::_SSL=GLOB(0x2829750)>>> EHLO localhost.localdomainNet::SMTP::_SSL=GLOB(0x2829750)<<< 250-TYAPR01CA0017.outlook.office365.com Hello [160.16.198.140]Net::SMTP::_SSL=GLOB(0x2829750)<<< 250-SIZE 157286400Net::SMTP::_SSL=GLOB(0x2829750)<<< 250-PIPELININGNet::SMTP::_SSL=GLOB(0x2829750)<<< 250-DSNNet::SMTP::_SSL=GLOB(0x2829750)<<< 250-ENHANCEDSTATUSCODESNet::SMTP::_SSL=GLOB(0x2829750)<<< 250-AUTH LOGIN XOAUTH2Net::SMTP::_SSL=GLOB(0x2829750)<<< 250-8BITMIMENet::SMTP::_SSL=GLOB(0x2829750)<<< 250-BINARYMIMENet::SMTP::_SSL=GLOB(0x2829750)<<< 250-CHUNKINGNet::SMTP::_SSL=GLOB(0x2829750)<<< 250 SMTPUTF8Net::SMTP::_SSL=GLOB(0x2829750)>>> AUTH LOGINNet::SMTP::_SSL=GLOB(0x2829750)<<< 334 VXNlcm5hbWU6Net::SMTP::_SSL=GLOB(0x2829750)<<< (decoded) Username:Net::SMTP::_SSL=GLOB(0x2829750)>>> (decoded) user@example.jpNet::SMTP::_SSL=GLOB(0x2829750)>>> ************************Net::SMTP::_SSL=GLOB(0x2829750)<<< 334 UGFzc3dvcmQ6Net::SMTP::_SSL=GLOB(0x2829750)<<< (decoded) Password:Net::SMTP::_SSL=GLOB(0x2829750)>>> (decoded) ********Net::SMTP::_SSL=GLOB(0x2829750)>>> ********************Net::SMTP::_SSL=GLOB(0x2829750)<<< 235 2.7.0 Authentication successful target host TYAPR01MB2608.jpnprd01.prod.outlook.comNet::SMTP::_SSL=GLOB(0x2829750)>>> QUITNet::SMTP::_SSL=GLOB(0x2829750)<<< 221 2.0.0 Service closing transmission channel

    byhsur at 22:08[5年前][4年前][3年前][2年前][1年前][1年後][2年後][3年後][4年後][5年後] |
    こんな記事もあります 「TLS STARTSSL Auth
    docker-compose を使って Neo4J を立てる
    Thunderbird で Exchange Online ( m365 ) の共有メールボックスにアクセスする
    Yubikey を SSH の公開鍵認証として使う
    rclone で OneDrive の内容をサーバにバックアップ
    VMware ESXi を狙ったランサムウェアが発生している
    Thunderbird 102.7.0 は Microsoft 365 を使ってる場合には非推奨? 
    pgp.nic.ad.jp がひっそりとサービス終了してた
    MS の 基本認証廃止は 10 月 1 日から
    Google アカウントの基本認証は 5/30 でサポート終了
    呼気で個人認証?
    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/10300
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL:Yahoo! JAPAN IDでログイン

    « :: »
    Copyright © 2004-2023 by CLES All Rights Reserved.
    サイト内検索
    検索ワードランキング
    へぇが多いエントリ
    閲覧数が多いエントリ
    1 .アーロンチェアのポスチャーフィットを修理(99743)
    2 .福岡銀がデマの投稿者への刑事告訴を検討中(99137)
    3 .年次の人間ドックへ(99136)
    4 .三菱鉛筆がラミーを買収(98744)
    5 .2023 年分の確定申告完了!(1つめ)(98706)
    最新のエントリ
    cles::blogについて
    誰が書いてる?
    最近行った場所
    サイトポリシー
    タグ一覧
    検索ワードランキング

    Referrers

      Powered by CLES
      Nucleus CMS v3.31SP3/w memcached
      21376593(W:7218 Y:1720 T:0692)
      cles::blogのはてなブックマーク数
      benchmark


      [8]ページ先頭

      ©2009-2025 Movatter.jp