이것은 간단한 질문일 수 있지만 HOST2(접미사 MTA 포함)로 이메일을 보낼 수 있도록 터미널에서 HOST1(접미사/MTA 없음)을 시작하면 mail -s "test email" user@HOST2 < /dev/null
왜 다음 오류가 발생합니까?
mail: Null message body; hope that's ok
mail: cannot send message: Process exited with a non-zero status
이렇게 하면 tail -f /var/log/mail.log
다음을 얻습니다.
Dec 1 17:00:24 HOST1 postfix/sendmail[21790]: fatal: open /etc/postfix/main.cf: No such file or directory
이는 HOST1에도 Postfix를 설치해야 한다는 뜻인가요? 이것은 약간 과도한 것 같습니다... HOST2는 포트 25에서 텔넷을 허용합니다.
user@HOST1:~$ telnet HOST2 smtp
Trying 192.168.2.5...
Connected to HOST2.domain.home.
Escape character is '^]'.
220 HOST2.domain.home ESMTP Postfix (Debian/GNU)
나는 여기서 아주 간단한 것을 놓치고 있다는 것을 알고 있습니다. 그러니 양해해 주시기 바랍니다. 제 질문은 HOST1에도 MTA가 필요한가요?입니다.
main.cf
내 HOST2의 관련 비트는 다음과 같습니다.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = HOST2.domain.home
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = HOST2.domain.home, HOST2, localhost.localdomain, , localhost
relayhost =
mynetworks = 192.168.2.0/24 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 192.168.2.5, 127.0.0.1
inet_protocols = ipv4
myorigin = /etc/mailname
default_transport = error
relay_transport = error
HOST1과 HOST2는 동일한 서브넷 192.168.2.0/24에 있습니다. /etc/hosts
두 컴퓨터 모두에 각각의 LAN IP를 구성했습니다 . 아니요, 내 목표는 LAN에 MTA를 설치하여 다른 컴퓨터에서 시스템 통계 등이 포함된 crontab 이메일을 중앙 MTA로 보내도록 한 다음 Thunderbird를 사용하여 MTA 컴퓨터에 연결하고 모든 LAN 시스템을 다운로드하도록 하는 것입니다. 이메일. HOST1에서 MTA에 텔넷으로 연결할 때 MTA가 포트 25에 응답하는 경우 해당 mail
명령을 사용하여 이메일을 보낼 수 없는 이유는 무엇입니까? 모든 컴퓨터에 MTA를 설치해야 한다면 많은 작업이 될 것입니다... 하지만이 게시물내가 실제로 그것을 해야 할 수도 있다는 뜻이다.
답변1
mailx(메일이라고도 함)는 smtp 옵션을 사용하여 직접 보낼 수 있습니다.
mail -s "test email" -S smtp=HOST2 user@HOST2 < /dev/null
이는 기본적으로 sendmail을 사용하는 MTA를 사용하지 않도록 지시합니다.
답변2
문제가 해결되었습니다. mail
MTA가 HOST1에 설치되어 있지 않으면 HOST1에서 HOST2까지의 명령을 사용할 수 없습니다. HOST1에서 Thunderbird를 사용하면 작동합니다. 이는 HOST2의 MTA가 포트 25의 LAN에서 이메일을 수락한다는 것을 보여주려는 제 목표에 맞습니다.