質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.95%

AWSのEC2からPostfixでメールを送信しようとするとlost connectionが発生する

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 972

score 17

前提・実現したいこと

AmazonのAWSよりpostfixにてbiglobeの会社メールにリレーしようとしておりますが
エラーが出力し送信できなくて困っております。

■クラウド
AWS EC2

■OS
Amazon Linux release 2 (Karoo)

■postfix のバージョン
mail_version = 2.10.1

■送信先メール
biglobeメール(自社の自分用メール)

発生している問題・エラーメッセージ

メールコマンドでメールを送信すると下記のエラーが出る
sendmail abc@hoge.co.jp
From:abc@hoge.co.jp
To:abc@hoge.co.jp
Subject:test
.


/var/log/maillog

postfix/smtp[23964]: initializing the client-side TLS engine
postfix/smtp[23964]: CLIENT wrappermode (port smtps/465) is unimplemented
postfix/smtp[23964]: instead, send to (port submission/587) with STARTTLS

postfix/smtp[21629]: 27DFCDF403: to=<abc@hoge.co.jp>, relay=mail.moss.biglobe.ne.jp[133.205.22.109]:465, delay=1098, delays=1088/0.04/10/0, dsn=4.4.2, status=deferred (lost connection with mail.moss.biglobe.ne.jp[133.205.22.109] while receiving the initial server greeting)

postconf -n の内容

relay用のファイルも設定しておりハッシュ化もしております。
[mail.moss.biglobe.ne.jp]:465 送信専用メールアドレス:パスワード

# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = yes
append_at_myorigin = yes
append_dot_mydomain = yes
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
header_checks = regexp:/etc/postfix/header_checks
home_mailbox = Maildir/
html_directory = no
inet_interfaces = localhost
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 5242880
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = www.example.co.jp   ←弊社のWebシステムのドメイン
myhostname = abc.example.co.jp
mynetworks = 127.0.0./8
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relay_domains = $mydestination
relayhost = [mail.moss.biglobe.ne.jp]:465
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_helo_name = $myhostname
smtp_sasl_auth_enable = yes
smtp_sasl_mechanism_filter = plain, login
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_tls_loglevel = 3
smtp_tls_security_level = may
smtpd_banner = $myhostname ESMTP
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_use_tls = yes
swap_bangpath = yes
unknown_local_recipient_reject_code = 550

master.cf の内容(変更点)

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd
  -o smtpd_tls_security_level=may
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes

smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp

試したこと

mailxコマンドによる465のメール送信は問題なくできております。

mail -v -s "Test mail." abc@hoge.co.jp
test mail.
.

EOT
・・・
250 2.1.5 <abc@hoge.co.jp>... Recipient ok
・・・
221 2.0.0 mail.biglobe.ne.jp closing connection

opensslによる接続も問題なくできております。

openssl s_client -connect mail.moss.biglobe.ne.jp:465

接続情報
・・・
220 mail.biglobe.ne.jp SMTP-Gateway Version 1.01 at Sun, 04 Oct 2020 20:58:36 +0900 (JST)

500 5.5.1 Command unrecognized: ""
read:errno=0

エラーは無し

ご教示頂きたい事

biglobeではTLSでの接続を行いたいと思います。

「lost connection」に対処する方法をご教示いただけないでしょうか。
この後CMSを使用してCMS側のメール送信を予定しております。

何か不足している情報等ございましたらご指摘下さい。

※ちなみにFWの設定等もしておりません

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

ログのとおり、postfix のメール送信コマンド(smtp)が SMTPS に対応していません。
biglobe 側が 587 番ポート(submission,STARTTLS)をサポートしているようでしたら、465 番ポートの代わりにそちらをを使うといいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/10/08 13:15

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

    >初からメールクライアント(あるいはメールを送るプログラム、sendmail コマンドなら -f オプション)で envelope from を指定するといいと思います。

    なるほど、sendmailコマンドだと出来ますね。
    ただ、当方はWebサーバでCMSを使用した送信というのが最終的な使い方のため
    いただいた方法だと難しい気がしますね。

    「sender_canonical_maps 」で強制的に書き換えて対応することに致します。

    ありがとうございました。後の人のために最終的にどう対処したのかを書いてクローズしたいと思います。ベストアンサーもつけたいと思います。

    この度はご協力ありがとうございました。勉強になりました。

    キャンセル

  • 2020/10/10 11:55

    最終的に465の暗号化を使いたかったのですが未実装のため587ポートで代替してしまうため
    リレーはやっぱりできないみたいですね。

    ちょっと今回はあきらめようかと思います。

    postfix/cleanup[31799]: 1D33EDE964: message-id=<20201010024024.1D33EDE964@hoge.co.jp>
    postfix/qmgr[31780]: 1D33EDE964: from=<abc@hoge.co.jp>, size=287, nrcpt=1 (queue active)
    postfix/smtp[31801]: initializing the client-side TLS engine
    postfix/smtp[31801]: CLIENT wrappermode (port smtps/465) is unimplemented
    postfix/smtp[31801]: instead, send to (port submission/587) with STARTTLS
    postfix/smtp[31801]: 1D33EDE964: to=<abc@hoge.co.jp>, relay=mail.moss.biglobe.ne.jp[133.205.22.109]:465, delay=11, delays=0.61/0.02/10/0, dsn=4.4.2, status=deferred (lost connection with mail.moss.biglobe.ne.jp[133.205.22.109] while receiving the initial server greeting)

    キャンセル

  • 2020/10/12 09:36

    結果報告:587番ポートでの非暗号化通信ではあるがリレーが出来た。

    TaichiYanagiya様の推察の通り「envelope from が SMTP Auth で認証したユーザーのみ送信可」だったためである。
    しかし、送信するメールアドレスとサーバに設定すべきユーザ情報(特にrootで送る)ため
    envelope fromに送信可能メールアドレス(SMTP Auth出来るメールアドレス)にするのは
    通常では無理なため、sender_canonicalを使用し強制的にSMTP Auth出来るメールアドレスに変更して
    メールをリレーすることが出来た。

    main.cf(追加)
    sender_canonical_maps = hash:/etc/postfix/sender_canonical

    sender_canonical(新規作成)
    root@hoge.co.jp abc@hoge.co.jp

    上記でrootから送信されてしまうメールを強制的にabc@hoge.co.jpに変更し
    メールのリレーが出来た。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.95%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る