mailx 명령을 사용할 때 알아야 할 사항

mailx 명령을 사용할 때 알아야 할 사항

나는 mailx 명령을 사용하여 메일을 보내고 있는데 두 가지 방법을 시도했습니다.

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 계정을 통해 직접 이메일을 보낼 수 있습니다 .

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를 설치하지 않습니다.

관련 정보