mailx コマンドを使用する際に知っておくべきこと

mailx コマンドを使用する際に知っておくべきこと

私はmailxコマンドを使用してメールを送信していますが、2つの方法を試しました。

mailx -s "This is Subject" toAddr < bodyFile.txt
mailx -r "fromAddr" -s "This is Subject" toAddr < bodyFile.txt

同じエラーが発生します。

メールの送信:致命的:パラメータinet_interfaces:::1のローカルインタフェースが見つかりません。

次の点でこのエラーを解決する方法を知りたいです。

  • fromAddressmailxはデフォルトで何を使用しますか?
  • mailxはデフォルトでどのメール転送エージェントアドレスを使用しますか?
  • この値をどこで変更しますか?

答え1

# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)

# more  /var/log/maillog
Sep  1 17:07:50 izuf6cj2o216xp postfix/sendmail[25307]: fatal: parameter inet_interfaces: no local interface found for ::1

解決済み:

vim /etc/postfix/main.cf
#inet_interfaces = localhost
inet_interfaces = all

それから

service postfix start

答え2

Mailxメール転送エージェント(MTA、インストールされているすべての項目:sendmail、eximなど)にメールを転送するためのコマンドラインツール。これはコマンドを呼び出すことによって行われます。メールを送信(通常/usr/sbin/sendmail)。 MTAはメールを送信するためにこのコマンドを提供します。

あなたの場合、ループバックデバイスのIPv6アドレスからlocalhost()のサーバーに接続しようとしました::1が、何も見つかりません。したがって、MTA が正しく構成されていないか (IPv4 ではなく IPv6 を使用)、IPv6 ネットワーク設定が正しくありません (ループバック インターフェイスに ::1 アドレスがない)。

基本~から-addressはユーザー名で、MTAはMTAで構成されているすべてのドメイン名を追加します(ルールを設定した場合は、メールを配信するために接続するメールサーバーなど、さまざまな基準に基づいてさらに上書きできます)。

MTA を設定してこれらの値を変更できます。

「mailxがデフォルトで使用するMTAアドレスは何ですか?」という質問がわかりません。私が言ったように、「どのMTAが使用しますか?」を意味する場合メールを送信これはコマンドなので、このコマンドを提供するインストール済みMTAパッケージを使用します。

答え3

おそらくmailxを実行して、デフォルトで使用されるローカルMTAを正しく設定していない可能性があります。

mailx公開smtpアカウントから直接Eメールを送信できます。

echo "This is the text." | \
  env MAILRC=/dev/null  \
  from=from@your_domain  \
  smtp=your_smtp_server:port  \
  smtp-auth-user=your_login  \
  smtp-auth-password=your_pwd  \
  smtp-auth=login \
  smtp-use-starttls=yes  \
  mailx -n -s "test 1" to@domain

または、postfixやeximなどのローカルMTAをインストールして設定します。現在、一部のディストリビューションでは、デフォルトでMTAをインストールしません。

関連情報