mailx는 SMTP 릴레이를 사용하여 메일을 보내거나 대상 SMTP 서버에 직접 연결합니까?


30

다음 명령을 사용하여 메일을 보낸다고 가정합니다.

mailx person@x.com

그런 다음 mailx는 먼저 메일을 릴레이하기 위해 ISP의 SMTP 서버를 찾으려고하거나 직접 연결합니다. 내 PC에 공용 IP 주소가 있는지 또는 NAT 뒤에 있는지에 따라 다릅니다. PC에서 mailx 설정을 어떻게 확인합니까? tcpdump를 사용하여 이것을 어떻게 확인할 수 있습니까?

답변:


29

전통적으로 Unix mail및 파생 상품 (및 기타 많은 Unix 도구) /usr/bin/sendmail은 거의 모든 메일 전송 에이전트 (MTA – 접미사, exim, 택배 및 sendmail)가 제공 하는 인터페이스를 사용합니다 .

즉, mail프로그램은 네트워크 프로토콜을 사용하지 않습니다. sendmailstdin 을 통해 메시지를 전달하고 실제 전달을 처리 할 수 ​​있습니다. (이것은 일부 메일이 SMTP를 사용하고 일부는 UUCP를 사용하고 일부는 BITNET을 사용하던 시절로 거슬러 올라갑니다 ...

를 통해 메시지가 대기열에 들어가면 sendmailMTA는 SMTP 등을 통해 실제 메시지 전송을 처리합니다. 구성에 따라 대상 MTA에 직접 연결하거나 다른 호스트 (스마트 호스트라고도 함)를 통해 메일을 릴레이 할 수 있습니다.

서버에서 직접 연결이 더 일반적입니다. 스마트 호스트를 통한 릴레이는 홈 연결의 개인용 컴퓨터에서 더 일반적입니다. 블랭킷 "동적 IP"안티 스팸 필터를 방지하려면 Gmail 또는 ISP / 회사 이메일 계정을 통한 릴레이가 필수적입니다.

(일부 MTA와 같이 esmtp또는 nullmailer가정용 사용자를 위해 특별히 제작되었으며 항상 릴레이 호스트를 사용합니다. 메일 수신을 지원하지 않으며 리소스가 훨씬 가볍습니다.)

mailx → [/ usr / bin / sendmail] → 로컬 MTA 대기열 → [SMTP] → 수신자 MTA → 수신자받은 편지함
mailx → [/ usr / bin / sendmail] → 로컬 MTA 대기열 → [SMTP] → Gmail 또는 ISP / 작업 서버 → [SMTP] → 수신자 MTA → 수신자 수신함

Thunderbird 또는 Outlook과 같은 사용자에게 친숙한 그래픽 클라이언트와 같은 다른 프로그램은 항상 릴레이 / 스마트 호스트 SMTP 서버 (일반적으로 Gmail 또는 ISP / 회사 SMTP 서버)에 직접 연결되어 사용자 대신 메시지를 전송합니다.

기본 SMTP 지원은 heirloom-mailx기존에는 없지만 기존에는 지원 되지 않습니다 bsd-mailx.

앱 → [SMTP] → Gmail 또는 ISP / 회사 서버 → [SMTP] → 수신자 MTA → 수신자받은 편지함

세 번째 방법 - 수신자의 서버에 직접 연결은 - 거의되어 결코 사용하지 않고 MUA는 지원하지 않습니다. 개인용 컴퓨터에서는이 메시지를 사용하면 메시지가 거부됩니다 (감염된 홈 사용자 IP 주소에서 많은 스팸이 전송 됨).

앱 → [SMTP] → 수신자 MTA → 스팸 필터에 의해 포착

1
리눅스에서 내 MTA를 찾는 방법은 무엇입니까?
Rohit Banga

1
@iamrohitbanga 1) 설치된 패키지 목록을 확인하십시오. (모든 배포판에 기본적으로 MTA가 제공되는 것은 아닙니다.)
grawity

1
@iamrohitbanga 2) 나는 이미 대답했다. Outlook은 종종 집에있는 개인용 컴퓨터에서 사용되며 많은 메일 서버는 집에있는 사용자의 주소에서받은 메시지를 스팸으로 인해 거부합니다. 이것이 회사 서버를 통한 릴레이가 필요한 이유입니다.
grawity

1
@iamrohitbanga 3) "또는"은 "둘 다"가 아니라 "둘 중 하나"를 의미합니다. 기본 메일 계정으로 Gmail을 사용하는 사용자는 Gmail 서버를 통해 메일을 보냅니다. ISP에 사서함이있는 사용자는 ISP의 서버를 사용합니다.
grawity

1
@iamrohitbanga 4) "제 3의 방법"을 mailx 사용하지 않기 때문이다 . 내 답변 상단에 설명 된대로 MTA를 사용합니다. 그리고 다시 한 번, 회사 인터넷에 연결되어 있지 않으면 PC에서 직접 전송 된 (릴레이없이) 메일이 삭제 될 가능성이 높습니다.
grawity

31

mailx는 SMTP를 사용할 수 있습니다. 구성 파일은 ~ / .mailrc입니다.

한 가지 예는 Gmail의 SMTP를 사용하는 mailx 입니다.

구성은 하나의 명령으로도 가능합니다.

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.gmail.com:587 \
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
-S smtp-auth-user=$FROM_EMAIL_ADDRESS \
-S smtp-auth-password=$EMAIL_ACCOUNT_PASSWORD \
-S ssl-verify=ignore \
-S nss-config-dir=~/.mozilla/firefox/xxxxxxxx.default/ \
$TO_EMAIL_ADDRESS

일반 SMTP 서버를 사용하는 경우 훨씬 쉽습니다 (자세한 소개는 여기 참조 ).

mailx -v -s "$EMAIL_SUBJECT" \
-S smtp=smtp://smtp.example.com
-S from="$FROM_EMAIL_ADDRESS($FRIENDLY_NAME)" \
$TO_EMAIL_ADDRESS

이것들을 mailx의 설정 파일 ~ / .mailrc에 넣을 수도 있습니다


이것은 기본 mailx가 아닌 heirloom-mailx에 의존합니다.
Scott

@Scott : 예. 그러나 Linux 배포판에 따라 다릅니다. 일부 시스템에서 기본값은 가보가 아닙니다 (예 : Ubuntu : fclose.com/b/linux/1411/… . 3 개의 mailx 버전이있는 것 같습니다). Fedora, OpenSUSE와 같은 다른 제품에서는 기본 기능이 "풍부한 기능" "heirloom-mailx"입니다.
ericzma

@ericzma 나는 가보 -mailx가 최고라고 생각합니다. 기본적으로 설치되어 있지 않지만 데비안에서 잘 작동합니다. 데비안 mailx에서 / usr / bin / bsd-mailx에 링크되는 / etc / alternatives / mailx에 링크 heirloom-mailx를 데비안에 설치 한 후, / etc / alternatives / mailx는 / usr / bin / heirloom-mailx에 링크되고 잘 작동합니다
barlop

@barlop 당신의 발견은 나의 것과 일치합니다 : 가보 -mailx는 작동하지만 bsd-mailx는 작동하지 않습니다. 다른 작업 구현에 대해서는 아직 알지 못합니다.
ericzma

CentOS는 6.7 용도 가보는 12.4 mailx의
여호수아 Grigonis

3

로부터 mailx(1)man 페이지, 설명의 섹션 문자열 옵션 조항 :

   smtp   Normally, mailx invokes sendmail(8) directly to  transfer
          messages.  If the smtp variable is set, a SMTP connection
          to the server specified by the value of this variable  is
          used  instead.

이것은 나를 조금 혼란스럽게했다. 좀 더 정교해질 수 있습니까?
Rohit Banga

sendmail이 옵션이 설정되어 있지 않으면 사용합니다 .
이그나시오 바스케스-아 브람스

1

sendmail / postix와 같은 로컬 mta가없는 대안이 있습니다.

데비안 패키지 ssmtp

rpm 설명 정보 :

Summary     : Extremely simple MTA to get mail off the system to a Mailhub
URL         : http://packages.debian.org/stable/mail/ssmtp
License     : GPLv2+
Description : A secure, effective and simple way of getting mail off a system to your mail
            : hub. It contains no suid-binaries or other dangerous things - no mail spool
            : to poke around in, and no daemons running in the background. Mail is simply
            : forwarded to the configured mailhost. Extremely easy configuration.

hth

스테판 케이


1
거의 ssmtp는 MTA와 같은 SMTP 클라이언트입니다. / usr / bin / sendmail처럼 동작하지만 특정 도메인의 MX 레코드에 직접 연결하는 대신이 작업을 ssmtp를 실행하는 시스템에 액세스 할 수있는 SMTP 서버 (일반적으로 사용자 이름 / 암호를 통해)에 위임합니다. 이것은 ADSL 동적 IP 범위, 닷지 호스팅 제공 업체 등과 같은 높은 스팸 IP 범위에서 이메일을 보내는 시스템에 특히 유용합니다.
Andre de Miranda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.