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

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

ただいまの
回答率

90.34%

  • CentOS

    2838questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Postfix

    276questions

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

  • SMTP

    101questions

    SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

  • Dovecot

    70questions

    Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

  • SASL

    7questions

    SASLは、コネクションベースのプロトコルにおける認証サポートの追加や、データセキュリティのためのフレームワーク。既存のライブラリ・仕組みを再利用することが可能で,ユーザーに対しチャレンジ・レスポンス認証といった安全な認証方式を提供できます。

postfixでメール送信ができない【CentOS7】

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 7,256

narga

score 8

CentOS7を使っています。
メールソフトのThunderbirdを使ってメール送信をしたいと思っておりますが、うまく行きません。

インストール済み
postfix 2.10.1-6
dovecot 2.2.10-4
cyrus-sasl-lib-2.1.26-17.el7.x86_64
cyrus-sasl-plain-2.1.26-17.el7.x86_64
cyrus-sasl-md5-2.1.26-17.el7.x86_64
cyrus-sasl-2.1.26-17.el7.x86_64

Thunderbirdの設定

ドメインはexample.comとします。
新しくcontactというユーザーを作ったとします。
# sasldblistusers2と打つと
contact@example.com: user Password
と返ってきます。

IMAPサーバー 
サーバ名 mail.example.com
ポート  143
接続 STARTTLS / 通常のパスワード保護
ユーザ名 contact

SMTPサーバー
サーバ名 mail.example.com
ポート  587
接続 STARTTLS / 通常のパスワード保護
ユーザ名 contact@example.com

以上がThunderbird上の設定です。

 postfixでメール送信ができない

試しにヤフーメールに送ろうと試みたところ上手く行きませんでした。

Mail Delivery System<MAILER-DAEMON@example.com>から以下の様なメールが届きました。

This is the mail system at host mail.example.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

                   The mail system

<hogehoge@yahoo.co.jp>: host mail.example.com[160.1.1.xx] said: 554 5.7.1
    <tk2-100-160xx.vs.hogefuga.jp[160.1.1.xx]>: Client host rejected: Access
    denied (in reply to RCPT TO command)

Reporting-MTA: dns; mail.example.com
X-unknown-Queue-ID: 33C8A2118956
X-unknown-Sender: rfc822; contact@example.com
Arrival-Date: Sun, 25 Oct 2015 17:41:04 +0900 (JST)

Final-Recipient: rfc822; hogehoge@yahoo.co.jp
Original-Recipient: rfc822;hogehoge@yahoo.co.jp
Action: failed
Status: 5.7.1
Remote-MTA: dns; mail.example.com
Diagnostic-Code: smtp; 554 5.7.1 <tk2-100-160xx.vs.hogefuga.ne.jp[160.1.1.xx]>:
    Client host rejected: Access denied


メールの受信の方はthunderbird上でもできました。
また、コンソール上で# mailコマンドを使うと送信できました。

ですが、thunderbirdから送信ができません。

ユーザー名、パスワードは正しいですし、# firewall-cmd --list-ports --zone=publicと打つと110/tcp 465/tcp 25/tcp 587/tcp 143/tcp 995/tcp 993/tcpと返ってきます。
なのに認証に失敗してしまいます。
saslauthdは、起動させても停止させても上手くいきませんでした。今は停止させています。

いろいろと調べましたが上手くいきませんでした。

証明書は以下のサイトの手順で作りました。
server-setting.info/centos/private-ca-cert.html

以下のサイトの手順でポート開放もしました。
server-setting.info/centos/dovecot-starttls-ssltls.html

master.cf とmain.cf の設定は以下のとおりです。
pastebin.com/CwSiSAZJ
pastebin.com/YL84mg0X

smtpd.conf や maillog、dovecotの設定ファイルは以下のとおりです。
wgf.jp/stext/4137


お力を貸していただきたいです。よろしくお願いします。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • narga

    2015/10/25 02:17 編集

    送信に失敗したのは24日のお昼~23時頃までです。

    キャンセル

  • Kosuke_Shibuya

    2015/10/25 02:21

    だから、最新の失敗ログを出してくれと言っているんです

    キャンセル

  • narga

    2015/10/25 02:25

    すみません、そういうことでしたか。最新の失敗ログを載せました。ご確認お願い致します。

    キャンセル

回答 3

checkベストアンサー

+1

/var/log/maillog で、

warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Not a directory

とのことですので、/etc/sasldb2 ファイルが postfix プロセスから読めないのだと思います。 
パーミッション、オーナー、グループを 640 root mail などにするといいと思います。   
 
他にもログに warning が出ているので、一つ一つ調べて解決した方がいいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/10/25 12:00

    なお、/etc/sasl2/smtpd.conf で "pwcheck_method: auxprop" としているので、saslauthd は利用せず、直接 /etc/sasldb2 を参照します。

    キャンセル

  • 2015/10/25 15:57

    ご回答ありがとうございます。`ls -la /etc/sasldb2`と打つと`-rw-r----- 2 root postfix 12288 10月 25 15:29 /etc/sasldb2`と返ってくるので、パーミッションの設定はOKだと存じます。sasldb2 を参照しているのでsaslauthdは停止しても問題ないんですね。

    キャンセル

  • 2015/10/25 16:38

    すみません。maillog の古いところを見ていました。
    /etc/sasldb2 のパーミッションは問題ないようです。

    設定を見直したところ、/etc/sasldb2 で認証するのであれば、main.cf の下記設定は不要です。

    > smtpd_sasl_type = dovecot
    > smtpd_sasl_path = private/auth

    もし、dovecot auth を利用するのでしたら、ユーザー名はドメインなしになると思います。

    キャンセル

  • 2015/10/25 17:02

    紛らわしくてすみません。古いログを消しました。`smtpd_sasl_type = dovecot`, `smtpd_sasl_path = private/auth` をそれぞれコメント化してメール送信してみたところ、エラーログが増えました。wgf.jp の方に追記致しました。よろしくお願い致します。

    キャンセル

  • 2015/10/25 17:15

    「unable to open Berkeley db /etc/sasldb2」がまた出ていますね。
    SELinux はどうでしょうか?

    # getenforce
    # ls -lZ /etc/sasldb2

    キャンセル

  • 2015/10/25 17:19

    `# getenforce`と打ったところ`Disabled`と、`# ls -lZ /etc/sasldb2`と打ったところ`-rw-r----- root postfix ? /etc/sasldb2` と返ってきました。

    キャンセル

  • 2015/10/25 17:37

    SELinux は無効ですか。アテがはずれました。
    再現できていないのですが、chroot 環境になっているのかもしれません。
    master.cf で chroot の列を「n」にするとどうでしょうか?

    (変更前) submission inet n - - - - smtpd
    (変更後) submission inet n - n - - smtpd

    キャンセル

  • 2015/10/25 17:51

    /var/spool/postfix/etc という **ファイル** があると、「warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: Not a directory」が出ました。

    キャンセル

  • 2015/10/25 18:21 編集

    返信が遅れて申し訳ありません、master.cf でchrootの列を n にしたところ、エラーログに大きく変化が出てきました。質問内容および wgf.jp の方に追記致しました。unable to open Berkeley db /etc/sasldb2 というエラーは無くなりました。度々ですがよろしくお願い致します。

    キャンセル

  • 2015/10/25 20:18 編集

    114.0.0.x からの接続については AUTH PLAIN で認証に成功していますが、from, to が空のようです。from, to に正しいアドレスを設定すれば送信できると思います。
    (追記) あ、ログを転記するときに空にしているのですか?
    (追記2) master.cf の submission のオプションに "-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject" が必要です。smtps も同様。

    キャンセル

  • 2015/10/25 20:54

    返信ありがとうございます。どうやら「<」と「>」の記号がHTMLタグと認識されてしまい、表示がされてなかったようです。実際は、user=<contact>,from=<contact@example.com>,to=<hogehoge@yahoo.co.jp>になっています。
    `-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject`を有効にしましたが、送信はできませんでした。その時のログもあまり変わっていないようです。wgf.jp の方に追記致しました。

    キャンセル

  • 2015/10/25 21:05 編集

    すみません、もう1度コンソール上でログを見なおしてみたのですが、from=<> と空になっている部分もありました。to=, user= の部分は空ではありませんでした。
    追記)エラーログの<>を修正致しました。

    キャンセル

  • 2015/10/25 22:17

    ログは、キューに入っているメールメッセージを(relayhost である)自身の 587 番ポートに転送しようとして、ここで認証されないため拒否されています。
    main.cf の「relayhost= [mail.example.com]:587」を削除してください。
    114.0.0.x から認証に成功してキューに入ったものを、relayhost に転送せず、そのまま送信すればいいです。

    キャンセル

  • 2015/10/25 22:23

    relayhost を消したら送信できました!本当にありがとうございました。迷惑メール扱いにもなっていなくて安心しました。長々とお付き合い頂き感謝致します。

    キャンセル

0

Oct 25 02:19:53 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL PLAIN authentication failed:
Oct 25 02:20:01 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL LOGIN authentication failed: UGFzc3dvcmQ6
Oct 25 02:20:20 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL PLAIN authentication failed: UGFzc3dvcmQ6
Oct 25 02:20:24 tk2-100-160xx postfix/smtpd[5414]: warning: unknown[114.0.0.x]: SASL LOGIN authentication failed: UGFzc3dvcmQ6

この部分を見てわかるように、SASL で認証が失敗していますね。

saslauthdは、起動させても停止させても上手くいきませんでした。今は停止させています。 

停止させているとのことですが、起動させないことには動くわけもありません。
また、起動しても動かないという現象ですが、おそらくSASLの設定ミスという可能性が高い。

まずはSASLを起動し、再度送信を試みて、また、ログを出力です。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/10/25 02:41

    お付き合い頂きありがとうございます。saslauthdを起動し、enable にしました。その後のログを出力しましたが、あまり変化は無いみたいです… wgf.jp の方にも追記致しました。

    キャンセル

  • 2015/10/25 02:43

    同時刻の
    /var/log/messages
    の内容もお願いします。

    キャンセル

  • 2015/10/25 03:13 編集

    同時刻のmessagesをwgf.jpの方に追記致しました。あまり手がかりは無いみたいです..メール送信の前後で/var/log/messagesにログが出力されることはありませんでした。

    キャンセル

  • 2015/10/25 03:23

    http://www.mk-mode.com/octopress/2013/06/16/smtp-saslauthd-auth-failure/
    ここにあるようなログが出ていると参考になるんですけどね…

    自分の管理しているサーバーとは環境も設定方法も異なるので手探りですからねー

    ちなみに、自分のサーバーの設定は
    http://qiita.com/ShibuyaKosuke/items/179bf13885d7803aee2e

    キャンセル

  • 2015/10/25 03:31

    ありがとうございます。
    www.mk-mode.comのログが出たことは無いです。
    KosukeさんはMySQLを使われているんですね。1度その設定を試してみます。本当に自分でトライ&エラーするしかないですね..

    キャンセル

  • 2015/10/25 03:35

    なかなか、メールサーバーの設定って繰り返し行うものではないので、コーディングと違って設定とか覚えてはいないですからね…
    毎回自分も苦労してます。

    キャンセル

  • 2015/10/25 03:45

    確かにその通りですね。Kosukeさんのような経験者でも苦労するほどなんですね。情報を探してもほとんど英語ばかりでなおさら大変です。

    キャンセル

0

smtpd_sasl_local_domain = $myhostname は以下ではないでしょうか?
smtpd_sasl_local_domain = $mydomain


投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2015/10/25 15:38

    ご回答ありがとうございます。smtpd_sasl_local_domain = $mydomain に変更しましたが、変化はありませんでした。wgf.jp の方にもログを追記致しました。

    キャンセル

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

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

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

  • CentOS

    2838questions

    CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

  • Postfix

    276questions

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

  • SMTP

    101questions

    SMTP(Simple Mail Transfer Protocol)はIPネットワークでemailを伝送する為のプロトコルです。

  • Dovecot

    70questions

    Dovecotとは、POPやIMAPサーバーを提供するMDA(メール配送エージェント)の一つです。

  • SASL

    7questions

    SASLは、コネクションベースのプロトコルにおける認証サポートの追加や、データセキュリティのためのフレームワーク。既存のライブラリ・仕組みを再利用することが可能で,ユーザーに対しチャレンジ・レスポンス認証といった安全な認証方式を提供できます。