mail 명령에는 메일 서버가 필요합니까?

mail 명령에는 메일 서버가 필요합니까?

Linux mail명령을 사용하기 전에 메일 서버를 설정해야 합니까?

답변1

아니요, 메일을 보내는 데 메일 서버가 필요하지 않습니다. 제가 가장 잘 알고 있는 것은 이메일을 서비스로 구현하기 위한 3가지 범주의 기능을 갖춘 Sendmail입니다. MDA(Mail Transfer Agent)는 1, MTA(Mail Transfer Agent)는 2, 3은 MUA(Mail User Agent)입니다.

용어가 혼란스럽기는 하지만 MTA가 항상 실행될 필요는 없습니다. mailMTA는 MUA( )가 메시지를 "전송"하려고 할 때마다 호출됩니다.

mail메일을 보내려는 주소를 실행하고 지정하면 [email protected].mail 클라이언트가 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에 연결하려고 시도합니다.

DNS 서버?

@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

답변2

mail실제로 사용중인 버전 에 따라 다릅니다 .

모든 버전에서는 실제로 메일을 전달하기 위해 MTA가 필요하지만 일부는 SMTP를 사용하여 원격 MTA(ISP의 메일 서버와 같은 "스마트 호스트")와 통신할 수 있고 일부는 메시지를 /usr/sbin/sendmail로컬 MTA로만 파이프할 수 있습니다.

후자의 경우 로컬 MTA는 완전한 MTA가 될 수 있습니다.이메일을 보내또는수출입은행또는접미사. 또는 단순한 전송 전용 MTA일 수도 있습니다.빈 우편물또는ssmtp. 또는 약간 더 복잡한 미니 MTA도 있습니다.메일 전송 프로토콜또한 나중에 배달하기 위해 메일을 대기열에 넣는 것도 지원합니다.

무료 소프트웨어 및 오픈 소스 세계에는 mailx이 패키지의 두 가지 주요 변형(명령 제공)이 있습니다 mail: bsd-mailx, 및 heirloom-mailx. 이 mail명령은 GNU에서도 사용할 수 있습니다 mailutils.

bsd-mailxSMTP를 지원하지 않으며 파이프를 통해서만 메일을 보낼 수 있습니다./usr/sbin/sendmail

가보 메일x기존의 "파이프 메일 전송" 방법뿐만 아니라 스마트 호스트와의 SMTP 통신도 가능합니다. 그런데,달팽이들아마도 heirloom-mailx의 가장 좋은 파생물일 것입니다. 이는 여전히 활발히 개발되고 업데이트되고 있습니다.

GNU 메일 도구mail버전 등을 포함하여 최종 사용자와 시스템 관리자를 위한 다양한 메일 관련 도구가 포함되어 있습니다 .

따라서 "메일 서버가 필요합니까?"라는 질문에 답해 보겠습니다. 네, 그렇죠. 필요하지만 mail설치하는 버전에 따라 시스템에 설치하고 구성할 필요가 없을 수도 있습니다.

IMO, 스마트 호스트에 의존하는 것보다 최소한의 MTA(또는 또는 msmtp과 같은 완전한 MTA ) 를 갖는 것이 더 낫습니다. 왜냐하면 인터넷 연결이 끊어지거나 스마트 호스트가 다운되면 여전히 나중에 배달하기 위해 대기열에 있는 메일을 배달할 수 없습니다. 로컬 대기열을 사용하면 다른 프로그램에서 메일을 보내고 잊어버릴 수 있습니다. 로컬 대기열이 없으면 스마트 호스트를 사용할 수 없는 경우 어떻게든 오류 조건을 처리해야 합니다.postfixeximheirloom-mailxmailcrond

관련 정보