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

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

linux 명령을 사용하려면 메일 서버를 설정해야 합니까 mail?

답변1

아니요, 메일을 보내는 데 메일 서버가 필요하지 않습니다. 저는 Sendmail에 가장 익숙하며 이메일을 서비스로 처리하는 기능에는 3가지 분류가 있습니다. MDA(Mail Delivery Agents)는 1, MTA(Mail Transfer Agents)는 2, 3은 MUA(Mail User Agents)입니다.

용어가 혼란스럽기는 하지만 MTA가 항상 실행될 필요는 없습니다. MTA는 MUA( mail)가 메일을 "보내려고" 할 때마다 호출됩니다 .

실행 mail하고 메일을 보낼 주소를 지정 하면 [email protected]. 메일 클라이언트는 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에서 egg.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입니다. 기본적으로 이전 조회의 캐시입니다. 마지막으로 파일 에 지정된 dnsIP 주소를 사용합니다 .nameserver/etc/resolv.conf

답변2

mail실제로 어떤 버전을 사용하고 있는지 에 따라 다릅니다 .

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

후자의 경우 로컬 MTA는 다음과 같은 완전한 MTA가 될 수 있습니다.메일을 보내다또는출국또는접미사. 또는 다음과 같은 간단한 전송 전용 MTA일 수도 있습니다.널 메일러또는ssmtp. 또는 다음과 같은 약간 더 정교한 미니 MTA도 있습니다.msmtp나중에 배달하기 위해 메일을 대기열에 넣는 것도 지원합니다.

자유 소프트웨어 및 오픈 소스 세계에는 명령을 mailx제공하는 패키지 의 두 가지 주요 변형인 , 및 가 있습니다 . 이 명령은 GNU에서도 사용할 수 있습니다 .mailbsd-mailxheirloom-mailxmailmailutils

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

가보 메일x전통적인 'pipe-to-sendmail' 방법뿐만 아니라 스마트호스트와도 SMTP를 연결할 수 있습니다. 그런데,달팽이아마도 heirloom-mailx의 가장 좋은 파생물일 것입니다. 여전히 활발히 개발되고 업데이트되고 있습니다.

GNU 메일 유틸리티최종 사용자와 시스템 관리자 모두를 위한 여러 가지 메일 관련 도구가 포함되어 있습니다 mail.

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

IMO, 인터넷 연결이 끊어졌거나 스마트호스트가 작동하지 않을 때 나중에 배달하기 위해 메일을 대기열에 추가해야 하기 때문에 스마트호스트에만 의존하는 것보다 적어도 최소한의 MTA(또는 또는 또는 msmtp와 같은 본격적인 MTA)를 사용하는 것이 더 좋습니다. 연결할 수 없습니다. 로컬 대기열 및 기타 프로그램을 사용하면 모든 메일을 보내고 잊어버릴 수 있습니다. 로컬 대기열이 없으면 스마트호스트를 사용할 수 없는 경우 오류 조건을 어떻게든 처리해야 합니다.postfixeximheirloom-mailxmailcrond

관련 정보