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.