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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

4622閲覧

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

hetare_SE

総合スコア27

Postfix

Postfixは、電子メールサーバソフトウェアで、 メールを配送するシステムMTAの一種です。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2020/10/04 12:07

前提・実現したいこと

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の設定等もしておりません

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

投稿2020/10/04 15:13

TaichiYanagiya

総合スコア12173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hetare_SE

2020/10/05 00:27

TaichiYanagiya様 早速回答頂きありがとうございました。 Biglobe側は587番ポートもサポートしていたはずなので、postfixも変更して検証してみたいと思います。 ただ、mailxやopensslで465番ポートを使ってメールの送信や認証が出来たため postfixだけ使えないということがあるのでしょうか。
TaichiYanagiya

2020/10/05 00:35

> postfixだけ使えないということがあるのでしょうか。 ログのとおりです。
hetare_SE

2020/10/05 04:04

ポート587番に変更して実施してみました。 postfix/smtp[10312]: initializing the client-side TLS engine postfix/smtp[10312]: 196CDE207A: to=<abc@hoge.co.jp>, relay=mail.moss.biglobe.ne.jp[133.205.22.109]:587, delay=5.6, delays=2.3/0.02/0.21/3, dsn=5.7.1, status=bounced (host mail.moss.biglobe.ne.jp[133.205.22.109] said: 553 5.7.1 Invalid sender address (in reply to MAIL FROM command)) postfix/cleanup[10310]: 596AFE2096: message-id=<20201005034911.596AFE2096@abc.example.co.jp> ↑@以降は$myhostnameで設定した値 postfix/qmgr[10265]: 596AFE2096: from=<>, size=2186, nrcpt=1 (queue active) postfix/bounce[10316]: 196CDE207A: sender non-delivery notification: 596AFE2096 postfix/qmgr[10265]: 196CDE207A: removed これはFromが空だからでしょうか? sendmailコマンドの際にfrom句を設定してはおります。
TaichiYanagiya

2020/10/05 04:23

SMTP コマンドの MAIL FROM で biglobe が拒否しています。 ヘッダ From ではありません。 理由は biglobe に問い合わせないとわかりませんが、envelope from のドメインの DNS MX レコードが設定されていないとか、接続元 IP アドレスの逆引きができないとか、envelope from が SMTP Auth で認証したユーザーじゃないとダメとか。
hetare_SE

2020/10/05 06:10

お世話になっております。 迅速な回答ありがとうございます。 >envelope from が SMTP Auth で認証したユーザーじゃないとダメとか こちらはmailxにてSMTP Auth の認証が出来てメール送信出来ていますので ちょっと考えにくいですね。 >envelope from のドメインの DNS MX レコードが設定されていない >接続元 IP アドレスの逆引きができない こちら提示しておりませんでしたが、現時点でAWSにて開発中のため いずれ現行Webサーバの任期が終えた後に、現在開発中のサーバにDNSを付け替えるため ご指摘いただいたこちらの二つが該当します。 AWSには「ec2-<IPアドレス>.ap-northeast-1.compute.amazonaws.com」のような パブリックDNSが付与されるため、そちらをpostfixに設定すれば envelope fromが出来るでしょうか? myhostnameに設定すれば良いと考えていますがあっているでしょうか。
TaichiYanagiya

2020/10/05 06:36

メールクライアント→Postfix→(SMTP Auth)→biglobe なのですよね? であれば、envelope from はメールクライアントが付けます。 envelope from にドメイン部が付いていない場合、postfix が $myorigin を付けます。 "myorigin = $myhostname" にして、myhostname にパブリック DNS を設定すれば、DNS A レコードの解決、および、逆引きはできると思います。 MX レコードではなく、A レコードで条件を満たすかどうかは biglobe に問い合わせるか、実際に試してみるしかないでしょう。 > こちらはmailxにてSMTP Auth の認証が出来てメール送信出来ていますのでちょっと考えにくいですね。 mailx→mail.biglobe.ne.jp ですか? postfix は mail.moss.biglobe.ne.jp に接続しにいっているので、状況が異なると思います。 postfix→mail.moss.biglobe.ne.jp の envelope from は maillog に記録されていますので、これと "smtp_sasl_password_maps = hash:/etc/postfix/relay_password" で設定している認証ユーザーと一致していないとダメかも、というのが 3つ目の推測です。
hetare_SE

2020/10/05 10:24 編集

Yanagiya様 返信ありがとうございます。 myhostname にパブリック DNS を設定して送信しましたが 状況は変わらずでした。 postfix/smtp[28670]: 25632E2078: to=<abc@hoge.co.jp>, relay=mail.moss.biglobe.ne.jp[133.205.22.109]:587, delay=4, delays=0.75/0.06/0.14/3, dsn=5.7.1, status=bounced (host mail.moss.biglobe.ne.jp[133.205.22.109] said: 553 5.7.1 Invalid sender address (in reply to MAIL FROM command)) >mailx→mail.biglobe.ne.jp ですか? いえ、こちらは以下の設定で送信が出来ております。(.mailrc) set smtp=smtp://mail.moss.biglobe.ne.jp:587 mailx→mail.moss.biglobe.ne.jp:587  postfixでやろうとしていることが出来ている認識です。 MX レコードの定義が必要かbiglobeクラウドメールに確認したいと思います。
TaichiYanagiya

2020/10/05 11:35

テストありがとうございます。 そもそもですが、mail.moss.biglobe.ne.jp, mail.biglobe.ne.jp とも 587 番ポートで STARTTLS がサポートされておらず、認証はできても暗号化はできないようです。
hetare_SE

2020/10/05 12:34

コメントありがとうございます。 そうですね。587番ポートだと暗号化は出来ないですが、 もはやメールを送信できるところに行きつきたいので暗号化はいったん置いておくことにしております。 https://teratail.com/questions/173545 こちらの書き込みに気になる点がございました。 smtp:[smtp.mail.yahoo.co.jp]:587の設定をしている書き込みですが 当方でもmailxで成功した時「set smtp=smtp://mail.moss.biglobe.ne.jp:587」を指定しております transportの書き方に慣れていませんが、relyahostをtransportを見るように設定し 「smtp:[mail.moss.biglobe.ne.jp]:587」のような書き方にすればいいでしょうか。 main.cfに「relayhost = smtp:[mail.moss.biglobe.ne.jp]:587」の記載をしましたが fatalエラーが出てしまいました。
hetare_SE

2020/10/08 01:11

Yanagiya様 お世話になっております。 いったんご報告ですが postfixのmain.cfに sender_canonicalのパラメータを設定し FROM を強制的にSMTP Auth で認証したメールアドレスに書き換えるようにしたところ 無事メールのリレーが出来ました。 ----------------------------------------------------------------------------- sender_canonical_maps = hash:/etc/postfix/sender_canonical # cat sender_canonical root@ec2-<IPアドレス>.ap-northeast-1.compute.amazonaws.com abc@hoge.co.jp ※色々といじりすぎているので当初説明していたアドレスとは違うかもしれませんが  ご了承ください ----------------------------------------------------------------------------- 頂いていた見解「envelope from が SMTP Auth で認証したユーザーじゃないとダメ」が 原因でした。 もっとスマートなやり方を検討しています。
TaichiYanagiya

2020/10/08 03:17

メールクライアントが envelope from = root (ドメイン部なし) で作成し、postfix が myorigin を補完しているのでしょうか。 myorigin を変更すれば補完するドメイン(hoge.co.jp)は変更できますが、ローカルパート(abc)は変更しないので、既に設定されたように sender_canonical_maps で書き換えるか、最初からメールクライアント(あるいはメールを送るプログラム、sendmail コマンドなら -f オプション)で envelope from を指定するといいと思います。
hetare_SE

2020/10/08 04:15

回答ありがとうございます。 >初からメールクライアント(あるいはメールを送るプログラム、sendmail コマンドなら -f オプション)で envelope from を指定するといいと思います。 なるほど、sendmailコマンドだと出来ますね。 ただ、当方はWebサーバでCMSを使用した送信というのが最終的な使い方のため いただいた方法だと難しい気がしますね。 「sender_canonical_maps 」で強制的に書き換えて対応することに致します。 ありがとうございました。後の人のために最終的にどう対処したのかを書いてクローズしたいと思います。ベストアンサーもつけたいと思います。 この度はご協力ありがとうございました。勉強になりました。
hetare_SE

2020/10/10 02: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)
hetare_SE

2020/10/12 00: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に変更し メールのリレーが出来た。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問