답변:
아니오 메일을 발송하기 위해 메일 서버가 필요하지 않습니다. Sendmail에 대해 가장 잘 알고 있으며 전자 메일을 서비스로 수행하는 3 가지 기능 분류가 있습니다. MDA (Mail Delivery Agents)는 1이고 MTA (Mail Transfer Agents)는 2이고 3은 MUA (Mail User Agents)입니다.
용어가 혼동 되기는하지만 항상 MTA를 실행할 필요는 없습니다. MUA ( mail
)가 메일을 "보내기"원할 때마다 MTA가 호출됩니다 .
실행 mail
하고 메일을 보낼 주소를 지정하면 sam@example.com
. 메일 클라이언트는 MTA ( /usr/bin/sendmail
)를 소환하여 해당 호스트 / 도메인 (example.com)에 대한 DNS를 쿼리하고 MX 레코드에 지정된 값을 찾습니다. MX는 메일 교환기를 의미합니다.
dig
명령을 사용하여 이것을 볼 수 있습니다 .
$ dig gnu.org mx
; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;gnu.org. IN MX
;; ANSWER SECTION:
gnu.org. 299 IN MX 10 eggs.gnu.org.
;; ADDITIONAL SECTION:
eggs.gnu.org. 299 IN A 208.118.235.92
eggs.gnu.org. 299 IN AAAA 2001:4830:134:3::10
;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:27:22 2013
;; MSG SIZE rcvd: 90
따라서 클라이언트는 포트 25에서 eggs.gnu.org에 연결하여이 이메일을 전달하려고 시도합니다.
@puk는 다음과 같은 후속 질문을했습니다.
이 DNS가 로컬 컴퓨터에 있습니까?
내가 대답 한 내용 :
@puk-메일 서버와 같은 방식 일 수 있지만 일반적으로 그렇지 않습니다. /etc/resolv.conf
파일을 살펴보고 dig
명령을 실행 SERVER: ...
하면 맨 아래 줄 이 나타납니다 . 그것은 귀하의 요청을 처리하는 DNS 서버입니다.
내 /etc/resolv.conf
파일에는 다음이 포함되어 있습니다.
nameserver 192.168.1.8
그리고 다음과 같은 쿼리를 사용하십시오 dig
.
$ dig gnu.org mx
아래에 결과가 나타납니다.
;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct 3 17:46:13 2013
;; MSG SIZE rcvd: 90
그리고 독창적 인 독자를 위해, 내 질문에, 이것이 어떻게 구성되어 있습니까? 답은 /etc/nsswitch.conf
파일입니다. 특히이 줄은 :
hosts: files mdns4_minimal [NOTFOUND=return] dns
즉, 파일을 먼저 사용하고 ( /etc/hosts
) 뒤에을 사용하십시오 mdns4_minimal
. 이것이 멀티 캐스트 DNS입니다. 기본적으로 이전 조회의 캐시입니다. 마지막으로 파일에 지정된 dns
IP 주소를 사용 합니다.nameserver
/etc/resolv.conf
실제로 mail
사용 중인 버전에 따라 다릅니다 .
모든 버전은 실제로 메일을 전달하기 위해 MTA가 필요하지만 일부 버전은 SMTP를 사용하여 원격 MTA (예 : ISP의 메일 서버와 같은 "스마트 호스트")와 통신 할 수 있으며 일부는 /usr/sbin/sendmail
메일을 통해 메일을 보내도록 파이프 할 수 있습니다. 지역 MTA.
후자의 경우 로컬 MTA는 sendmail 또는 exim 또는 postfix 와 같은 본격적인 MTA 일 수 있습니다 . 또는 nullmailer 또는 ssmtp 와 같은 간단한 보내기 전용 MTA 일 수도 있습니다 . 또는 msmtp 와 같이 조금 더 정교한 미니 MTA 도 나중에 배달을 위해 큐잉 메일을 지원합니다.
자유 소프트웨어 및 오픈 소스 세계에서는, 거기에 두 가지 변종입니다 mailx
합니다 (제공 패키지 mail
명령) : bsd-mailx
와 heirloom-mailx
.
bsd-mailx 는 SMTP를 사용하지 않으며 다음 주소로 메일을 보내야만 메일을 보낼 수 있습니다/usr/sbin/sendmail
hierloom-mailx 는 SMTP를 스마트 호스트뿐만 아니라 기존의 '파이프 투 센드 메일'방법으로도 말할 수 있습니다.
따라서 "메일 서버가 필요하십니까?"라는 질문에 대답하십시오. 예, 일종의 하나의 메일이 필요하지만 설치 한 메일 버전에 따라 자신의 시스템에 메일을 설치 및 구성하지 않아도됩니다.
IMO는 인터넷 연결이 끊어 지거나 스마트 호스트에 연결할 수없는 경우 나중에 배달하기 위해 메일을 대기해야하기 때문에 msmtp
스마트 호스트에만 의존하는 것 보다 최소한의 MTA를 사용하는 것이 좋습니다 heirloom-mailx
. 로컬 큐와 함께, mail
그리고 crond
다른 프로그램은 메일을 잊지 보내 앤 수 있습니다. 로컬 대기열이 없으면 스마트 호스트를 사용할 수없는 경우 어떻게 든 오류 상태를 처리해야합니다.