Mailutils でエラーが発生し、メッセージを送信できません。

Mailutils でエラーが発生し、メッセージを送信できません。

私のDebianサーバーにはexim4がインストールされています。 PHPを使用してメールを送信でき、MTAが設定されたアカウントを使用しているため、MTAが機能していることがわかります。/etc/exim4/passwd.client

しかし、コマンドラインを使用しようとすると

echo "test" | mail -s "test" [email protected]

わかりました。

mail: cannot send message: Process exited with a non-zero status

$? 36に設定

また、/var/log/exim4/mainlogにはエントリは表示されません。単にPHPからメールを送信しようとする試み(成功的に)と、一般的な開始と終了のキュー実行メッセージのみが表示されます。これは、mail コマンドが MTA に到達しないことを示します。

mail --version

mail (GNU Mailutils) 3.1.1
Copyright (C) 2007-2016 Free Software Foundation, inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

オンラインで検索したところ、postfixの設定に問題がある人が見つかりましたが、私のMTAはexim4であり、それ自体がうまく動作するので、問題が何であるかを知りたいと思います。

私は2つの異なるサーバーを設定し、システムメールはうまく機能し、cronjobで使用されます。私はexim4をインストールしてそれに応じて設定しましたが、この問題は発生しませんでした。

答え1

長すぎます。 32/64ビットの問題かもしれません。 bsd-mailxをインストールしてみてください

ちょうど同じ問題が発生しました。 「以前は動作していましたが、今は動作しません。何も変更していません。」カテゴリにあります。混乱してもメールが失敗した場合、/var/log/exim4 のログには何も表示されません。

私はいくつかのLinux Debianシステムを持っています。幸い、コマンドラインからメールを実行すると、ヘッドレスコンピュータでは動作しますが、他のコンピュータでは動作しないことがわかりました。これは、考えられる問題を理解するために2つの設定を並べて比較できる便利な出発点を提供しました。

目立つ違いはないようで、苦しくて作ってみました。

apt remove --purge exim4*

再インストールしてください。これはうまくいきません。

簡単に言うと、/usr/bin/mailのメールバイナリを見て、/etc/alternatives/mailを「追跡」して、他のシステムが別のメールクライアントに接続されていることを発見しました。動作していないコンピュータでは、次のように接続されます。

lrwxrwxrwx 1 root root 23 Aug 23  2017 /etc/alternatives/mail -> /usr/bin/mail.mailutils

ただし、作業機械では次のように接続されています。

lrwxrwxrwx 1 root root 18 Jun 15  2015 /etc/alternatives/mail -> /usr/bin/bsd-mailx

動作していないコンピュータにbsd-mailxをインストールしましたが、/etc/alternativesのリンクが自動的に更新され、問題がなくなりました。これでメールが利用できるようになります。

私が祝うとき、私は働く他の機械を見て、それが接続されていることを知りました/etc/alternatives/mail -> /usr/bin/mail.mailutils。それで、それはmailutilsという理論を反証しているようです。

両方のインストールを見ました(申し訳ありませんが、フォーマットは取得できません)。

働かない機械:

dougie@nick:~$ dpkg -l | grep mailutils 
ii  libmailutils5:i386                    1:3.1.1-1                       i386         GNU Mail abstraction library

ii mailutils 1:3.1.1-1 メール処理用の i386 GNU mailutils ユーティリティ ii mailutils-common 1:3.1.1-1 GNU mailutils のすべての共通ファイル

作業機械:

dougie@skye:~$ dpkg -l | grep mailutils
ii  libmailutils5:amd64                     1:3.1.1-1                                       amd64        GNU Mail abstraction library

ii mailutils 1:3.1.1-1 amd64 メール処理用の GNU mailutils ユーティリティ ii mailutils-common 1:3.1.1-1 GNU mailutils のすべての共通ファイル

したがって、これは直感的ですが、32ビットまたは64ビットのどちらのインストールに関連する可能性があります。私の解決策はbsd-mailxをインストールすることでした。

答え2

私のコンピュータも64ビットコンピュータですが、エラーは次のとおりです。

$ echo test | mail -s "testing ssmtp setup" [email protected]
mail: cannot send message: Process exited with a non-zero status

しかし、@Dougie Nisbetをフォローしてbsd-mailxをインストールすると、次のように反応します。

$ echo test | mail -s "testing ssmtp setup" [email protected]
send-mail: Authorization failed (534 5.7.14  https://support.google.com/mail/answer/78754 5-v6sm30064941pgc.86 - gsmtp)
Can't send mail: sendmail process failed with error code 1

私はこれが答えではないことを知っています。しかし、@Dougie Nisbetの答えについては言及できないので、他の人が上記の答えに従うのを避けるためにここに書いています。

答え3

Postfixのエラーログファイルを確認してみると、認証に失敗したために電子メールが送信されていないようです。

以下を確認してください。 1.パスワード(SMTP認証パスワード)を確認してください。 2. セキュリティレベルの低いアプリケーションがメールアカウントにアクセスできるようにします。

数年前: https://support.google.com/mail/answer/78754

関連情報