저는 Mac OS(10.13.4)를 사용하고 있습니다. 어떻게든 메일 서버를 실행했고 [email protected]
다음 명령을 사용하여 이메일을 보낼 수 있었습니다.
echo "mbody" | mail -s "msub" "[email protected]"
등록되지 않은 DNS로 인해 이메일은 여전히 스팸 폴더에 보관되었습니다.
postfix
내 시스템에서 실행되지 않음:
katie@nyxae $ sudo postfix status
postfix: Postfix is running with backwards-compatible default settings
postfix: See http://www.postfix.org/COMPATIBILITY_README.html for details
postfix: To disable backwards compatibility use "postconf compatibility_level=2" and "postfix reload"
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: use_sacl_cache=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: imap_submit_cred_file=
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: mydomain_fallback=localhost
postfix/postfix-script: the Postfix mail system is not running
나는 lsof -i 4 -a
알려진 이메일 서비스가 포트 25에서 실행되고 있는지 확인하기 위해 달려갔습니다. 그러나 관련 서비스를 찾을 수 없습니다.
그래서 제 질문은 어떤 서비스가 이것을 달성할 수 있느냐는 것입니다. 이것이 어떻게 가능한지?
답변1
역사적으로 Unix mail
명령은 네트워크 서비스를 전혀 사용하지 않았습니다. /usr/sbin/sendmail
필요한 옵션 만 실행하고 보내는 이메일을 전달합니다. 말 그대로, 그것이 sendmail
그 이름을 얻은 곳입니다. 수신 메일의 경우 사용자의 로컬 시스템 받은 편지함만 읽습니다 /var/mail/<username>
.
이러한 규칙으로 인해 Unix 계열 운영 체제가 다른 메일 전송 소프트웨어(예: macOS의 Postfix)를 사용하는 경우에도 소프트웨어는 /usr/sbin/sendmail
이전의 단순성을 달성하기 위해 잘 알려진 옵션 세트를 이해하는 바이너리를 제공해야 합니다. 상호 작용.
따라서 이 호출 방법은 Postfix 소프트웨어가 구성되지 않고 공장 기본 설정인 경우에도 일회성 메일 전송을 위해 Postfix의 올바른 부분을 시작합니다. 수신자가 로컬 사용자인 경우 또는 수신자 서버가 DNS에서 온 경우일 수 있습니다. MX 및/또는 A 레코드가 결정되고 액세스 가능하면 메시지는 계속 전송되고 프로세스는 작업이 성공했음을 명령에 나타내는 /usr/sbin/sendmail
결과 코드 0으로 종료됩니다 .mail
그러나 수신자 서버에 즉시 연결할 수 없으면 모든 베팅이 취소됩니다. 이 경우 구성 요소는 /usr/sbin/sendmail
메시지를 로컬 시스템의 발신 메일 대기열에 저장합니다(역사적으로는 /var/spool/mqueue
Postfix를 사용하여 가능했습니다 /var/spool/postfix/deferred
). 메일 전송 소프트웨어의 나머지 부분이 활성화되지 않은 경우 시간이 끝날 때까지 잊어버렸습니다. 메일 대기열을 정기적으로 확인해야 하는 프로세스가 실행되지 않기 때문입니다.