パソコン鳥のブログ

アクセスカウンタ

zoom RSS telnetでメールサーバの動作確認(SMTP,SMTP-AUTH)

<<   作成日時 : 2013/08/01 22:30   >>

トラックバック 4 / コメント 0

メールサーバを構築した後の動作確認はどうやっていますか?
トラブルが起こった場合、Thunderbird や Outlookを使ってみるだけでは、これらのソフトの設定の問題か、サーバ自身の問題かの切り分けが困難です。

前回のPOP3,IMAP4 に引き続き、telnetでSMTP,SMTP-Authの動作確認をする方法を紹介します。

なお、メールサーバの設定については下記を参照してください。
CentOS6でのメールサーバの設定(postfixその1)
CentOS6でのメールサーバの設定(postfixその2)
CentOS6でのメールサーバの設定(dovecot)


SMTPの場合


Windowsのスタートメニューのアクセサリから、コマンドプロンプトを起動した後、以降のコマンドを入力します。
赤字は入力する箇所、緑字はコメントです。


telnet メールサーバ名 587
220 メールサーバ名 ESMTP
EHLO メールサーバ名
250-メールサーバ名
250-PIPELINING
250-SIZE 102400000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:送信元メールアドレス  メールの From になります
250 2.1.0 Ok
rcpt to:宛先メールアドレス  メールの To になります。メールサーバ上のメールアドレスを指定してください。
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject メールの題名
メール本文を入力します
.  メール本文の最後に . を入力します
250 2.0.0 Ok: queued as 8EE3A260127
quit
221 2.0.0 Bye



telnetで接続が失敗する場合
「接続中: メールサーバ名...ホストへ接続できませんでした。 ポート番号 587: 接続に失敗しました」と出て、telnetの接続が失敗する場合は、以下を確認して下さい。

(1)メールサーバのファイアウォールでブロックしていないか
メールサーバのiptables等でサブミッションポート(587番ポート)への接続が許可されているか確認して下さい。
iptablesの設定については、iptablesサンプル を参照してください。

(2)SMTPで接続が可能になっているか
メールサーバ上で netstat -n -a|grep ":587" を実行し、下記のように表示されるか確認して下さい。
表示されない場合は、postfix が起動していません。

netstat -n -a|grep ":587"
tcp        0      0 0.0.0.0:587                0.0.0.0:*                  LISTEN



SMTP-Authの場合


準備


最初に下記のファイルを作成します。
赤字の箇所は、メールサーバ上のユーザ名とパスワードを記述してください。
\0 はそのまま記述して下さい。

base64enc.html

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" src="base64.js"></script>
<script language="JavaScript">//<![CDATA[
var t=base64encode('ユーザ名\0ユーザ名\0パスワード');
//]]></script>
</head>
<body>
<script language="JavaScript">//<![CDATA[
document.write(t.link(t));
//]]></script>


Base64.jsを下記からダウンロードします。
Base64エンコーダの詳細情報 : Vector ソフトを探す!

base64.js と先に作成した base64enc.html を同じ場所に置き、base64enc.html をブラウザで開きます。
インターネットエクスプローラで、「ブロックされているコンテンツを許可(A)」のボタンが表示されたら押してください。
表示された文字列は、BASE64 エンコードされたユーザ名とパスワードです。
後ほど、※印の箇所で使います。


telnet実行


Windowsのスタートメニューのアクセサリから、コマンドプロンプトを起動した後、以降のコマンドを入力します。
赤字は入力する箇所、緑字はコメントです。


telnet メールサーバ名 587
220 メールサーバ名 ESMTP
EHLO メールサーバ名
250-メールサーバ名
250-PIPELINING
250-SIZE 102400000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN BASE64エンコードされたユーザ名とパスワード  ※ 準備 の箇所で base64enc.html をブラウザで開いた時に表示された文字列を "BASE64エンコードされたユーザ名とパスワード" に記述して下さい
235 2.7.0 Authentication successful
mail from:送信元メールアドレス  メールの From になります
250 2.1.0 Ok
rcpt to:宛先メールアドレス  メールの To になります
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject メールの題名
メール本文を入力します
.  メール本文の最後に . を入力します
250 2.0.0 Ok: queued as 8EE3A260127
quit
221 2.0.0 Bye



telnetで接続が失敗する場合
「接続中: メールサーバ名...ホストへ接続できませんでした。 ポート番号 587: 接続に失敗しました」と出て、telnetの接続が失敗する場合は、以下を確認して下さい。

(1)メールサーバのファイアウォールでブロックしていないか
メールサーバのiptables等でサブミッションポート(587番ポート)への接続が許可されているか確認して下さい。
iptablesの設定については、iptablesサンプル を参照してください。

(2)SMTPで接続が可能になっているか
メールサーバ上で netstat -n -a|grep ":587" を実行し、下記のように表示されるか確認して下さい。
表示されない場合は、postfix が起動していません。

netstat -n -a|grep ":587"
tcp        0      0 0.0.0.0:587                0.0.0.0:*                  LISTEN


AUTH PLAIN コマンド実行で、Error: authentication not enabled と表示される場合
SMTP-Authが有効になっていません。
/etc/postfix/master.cf の submission の箇所で -o smtpd_sasl_auth_enable=yes が記述されているか確認して下さい。


AUTH PLAIN コマンド実行で、Error: authentication failed: と表示される場合
BASE64エンコードされたユーザ名とパスワードが間違っています。
base64enc.html に記述したユーザ名とパスワードを確認して下さい。ユーザが存在しないか、パスワードが間違っています。
またはBase64エンコードされたの文字列自体が間違っています。
Base64エンコード時に \0 の記述漏れが無いか確認して下さい。


参考


base64.jsの詳細情報 : Vector ソフトを探す!
SMTP Autheticationの導入


テーマ

関連テーマ 一覧


月別リンク

トラックバック(4件)

タイトル (本文) ブログ名/日時
opensslコマンドでメールサーバの動作確認
メールサーバを構築した後の動作確認について、telnetで行う方法を以前紹介ました。 telnetでメールサーバの動作確認(POP3,IMAP4) telnetでメールサーバの動作確認(SMTP,SMTP-AUTH) ...続きを見る
パソコン鳥のブログ
2013/08/11 23:33
Ubuntu14 からメール送信出来ない場合
Ubuntu14マシンからメール送信出来ない場合の設定の修正についてです。 ...続きを見る
パソコン鳥のブログ
2015/01/30 20:10
smtp認証でのメール送信を接続元IPアドレスでアクセス制限する
メール送信サーバ postfix で、smtp認証でのメール送信を接続元IPアドレスで制限する方法です。 ...続きを見る
パソコン鳥のブログ
2015/11/26 23:47
送信と受信が色分けされたtelnetのように使えるソフト
telnetのように使えるWindowsのフリーソフト、TCP Commander の紹介です。 接続先への送信内容は赤色、受信内容は緑色で表示されるので、表示が分かりやすく便利です。 ...続きを見る
パソコン鳥のブログ
2016/07/14 22:43

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
telnetでメールサーバの動作確認(SMTP,SMTP-AUTH) パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる