SMTP 서버 설정, 사용 및 모범 사례
게시 됨: 2022-04-08이메일이 실제로 어떻게 작동하는지 궁금하신 적이 있으십니까? 이메일을 보내고 몇 초 안에 받는 사람의 받은 편지함에 있을 때 이러한 일이 일어나는 이면의 기술은 SMTP(Simple Mail Transfer Protocol)입니다. IMAP/POP3 서버를 사용하여 수신된 이메일이 서버에 저장되는 방법은 다른 시간에 대한 이야기입니다. 지금은 SMTP에 대해 다루며 기사의 끝에서 귀하가 STMP 프로토콜, SMTP 서버에 대해 완전히 이해하기를 바랍니다. , 일반적인 옵션 및 이메일이 스팸으로 분류되도록 하는 방법.
SMTP 란 무엇입니까?
SMTP(Simple Mail Transfer Protocol)는 이메일을 보내는 데 사용되는 프로토콜로, 모든 SMTP 서버가 인터넷의 다른 SMTP 서버 또는 POP3/IMAP 서버와 통신하고 서로를 이해할 수 있도록 공통 표준을 정의합니다. 이메일 전송에 관련된 여러 주체가 공통 언어를 사용하도록 보장한다고 말할 수 있습니다.
SMTP 서버란 무엇입니까?
SMTP 프로토콜은 응용 프로그램에서 사용할 수 있어야 합니다. 전자 메일을 보내거나 전자 메일을 릴레이하려는 사람들을 위한 SMTP 요청에 응답하는 이 응용 프로그램을 SMTP 서버/SMTP 릴레이라고 합니다. 아래와 같이 두 가지 유형으로 나눌 수 있습니다. 둘 다 사소한 차이점을 제외하고는 대부분 동일합니다.
- SMTP 서버 : SMTP 릴레이와 동일하나 수신자 도메인이 서버 도메인과 같을 때 주로 사용합니다. 이들은 일반적으로 gmail.com, yahoo.com과 같은 무료 이메일 서비스와 함께 사용됩니다.
- SMTP 릴레이 서버 : 서버 이기도 하지만 원본 이메일과 목적지 이메일 도메인이 SMTP 서버 도메인과 다를 때 사용하는 용어입니다. 이를 제공하는 SendGrid 또는 SendInBlue를 예로 들 수 있습니다. 이러한 서버는 주로 메일용 라우터입니다.
가짜 SMTP 서버: – 이 서버는 주로 개발자가 테스트하는 데 사용되며, 기본적으로 사용자가 실제로 이메일을 보내지 않고도 수신자 측에서 이메일이 어떻게 보이는지 볼 수 있도록 하는 포괄적인 서버입니다. MailHog 또는 MailCatcher와 같은 로컬 애플리케이션을 설치하거나 Mailtrap 또는 당사 로컬 도구와 같이 제공된 클라우드를 사용할 수 있습니다.
SMTP는 어떻게 작동합니까?
다음은 이메일 보내기 프로세스가 SMTP에서 작동하는 방식에 대한 일반적인 가이드입니다.
- [이메일 보호됨]에서 [이메일 보호됨]으로 이메일을 보내려는 사용자는 이메일 클라이언트를 사용하여 제목과 본문이 있는 이메일 초안을 작성하고 보내기를 누릅니다.
- 사용자가 보내기를 누르면 이메일 클라이언트는 구성된 SMTP 서버에 연결될 것입니다. 지금은 smtp.source.com이라고 가정하겠습니다. 클라이언트와 SMTP 서버는 핸드셰이크를 수행하고 인증이 필요한 경우 클라이언트는 이에 대한 자격 증명을 제공합니다.
- 핸드셰이크 후 이메일 클라이언트는 우리의 경우 [email protected] , 제목 및 본문인 수신자 주소를 보냅니다.
- 우리 사용자가 같은 도메인에 있는 누군가에게 보낸 것이라면 우리 서버는 그것을 내부적으로 로컬 수신자 서버로 전달할 것입니다.
- 다음으로 MX 레코드에 대한 DNS 요청을 사용하는 SMTP 서버는 SMTP 서버가 실행 중인 수신자 IP 또는 도메인 주소를 찾습니다.
- 다음으로 수신자 SMTP 주소에 연결하고 이메일을 전달하려고 시도합니다.
- 수신자 이메일 서버는 전달되는 이메일을 처리할 수 있는지 확인합니다. 모든 것이 정상이면 이를 들어오는 IMAP 또는 POP3 서버로 전달합니다.
공통 SMTP 포트 및 주소
대부분의 경우 SMTP 주소는 연결하려는 도메인 앞의 메일 또는 smtp 접두사입니다. 또한 이들은 이메일 메시지가 라우팅되는 방식을 처리하는 메일 서버로 클라이언트를 보내는 DNS의 MX(Mail Exchange) 레코드에 의해 지정됩니다.
SMTP 서버의 주소를 찾으려면 dig 명령을 사용할 수 있습니다.
1 2 3 |
root @ mailtest : ~ # dig +short freesmtpservers.com MX 20 smtp . freesmtpservers . com . 10 smtp . freesmtpservers . com . |
그런 다음 필요한 경우 dig 명령을 사용하여 IP 주소를 찾을 수 있습니다.
1 2 |
root @ mailtest : ~ # dig +short smtp.freesmtpservers.com 104.237.130.88 |
연결할 포트는 그렇게 간단하지 않습니다. 서버와 릴레이에는 일반적으로 연결할 수 있는 여러 포트가 있으며 각각은 특정 요구 사항을 충족하기 위해 초과 근무하게 되었습니다.
SMTP 포트
포트 번호 | 설명 | 정보 |
---|---|---|
25 | 표준 SMTP 포트 | 주로 이메일 릴레이에 사용해야 합니다. |
465 | 사용되지 않는 SMTP 포트 | 보안 SMTP용이었으며 암호화용 SSL을 사용했습니다. 사용을 피하십시오. |
587 | 최신 보안 SMTP 포트 | 대부분의 최신 이메일 클라이언트는 이것을 사용하며 TLS 암호화를 사용합니다. |
2525 | 대체 비표준 SMTP 포트 | 이것은 차단된 경우 587의 대안으로 사용됩니다. |
대부분의 경우 필요에 따라 포트 587을 사용합니다.
일반 SMTP 서버 이름
SMTP 서버의 공통 주소는 smtp로 시작합니다. 또는 메일. 도메인 이름으로 일부는 IP 주소도 가질 수 있습니다. 아래에 세부 정보와 함께 몇 가지 일반적인 항목을 나열했습니다.
작업 명 | SMTP 서버 | 포트 |
---|---|---|
구글 메일 | smtp.gmail.com | 587 |
아웃룩닷컴 | smtp.live.com | 587 |
오피스365.com | smtp.office365.com | 587 |
야후 메일 | smtp.mail.yahoo.com | 465 |
야후 메일 플러스 | plus.smtp.mail.yahoo.com | 465 |
야후 영국 | smtp.mail.yahoo.co.uk | 465 |
야후 독일 | smtp.mail.yahoo.com | 465 |
야후 AU/NZ | smtp.mail.yahoo.com.au | 465 |
O2 | smtp.o2.ie | 25 |
O2.uk | smtp.o2.co.uk | 25 |
AOL.com | smtp.aol.com | 587 |
AT&T | smtp.att.yahoo.com | 465 |
NTL @ntlworld.com | smtp.ntlworld.com | 465 |
비티 커넥트 | pop3.btconnect.com | 25 |
BT 오픈월드 | mail.btopenworld.com | 25 |
비티 인터넷 | mail.btinternet.com | 25 |
주황색 | smtp.orange.net | 25 |
Orange.uk | smtp.orange.co.uk | 25 |
영국 와나두 | smtp.wanadoo.co.uk | 25 |
핫메일 | smtp.live.com | 465 |
O2 온라인 독일 | mail.o2online.de | 25 |
T-온라인 독일 | securesmtp.t-online.de | 587 |
1&1(1&1) | smtp.1and1.com | 587 |
1&1 독일 | smtp.1und1.de | 587 |
컴캐스트 | smtp.comcast.net | 587 |
버라이즌 | outgoing.verizon.net | 465 |
Verizon(야후 호스팅) | outgoing.yahoo.verizon.net | 587 |
조호 메일 | smtp.zoho.com | 465 |
메일닷컴 | smtp.mail.com | 587 |
GMX.com | smtp.gmx.com | 465 |
[이메일 보호] USA.NET 제공 | smtp.postoffice.net | 465 |
대량 SMTP 서버 공급자 설정
몇 개 이상의 이메일(예: 10000K 이메일)을 보내려는 경우 대량 SMTP 릴레이와 같은 것이 필요하며 API 및 배달 추적, 공개 요금 등과 같은 기타 기능도 제공합니다. 프로토콜로서 SMTP만큼 매우 빠른 이메일은 약간 느립니다.
수가 많지 않은 경우 무료 SMTP 서버 제공업체 목록을 사용하여 선택할 수 있습니다.
대규모 사용자층에 이메일을 보내거나 이메일 마케팅을 위해 다양한 제공업체가 나열된 아래 가격을 제시했습니다.
공급업체 | 무료 / 월 | 일일 한도 | 유료 플랜 | 코멘트 |
---|---|---|---|---|
센드인블루 | 9000 | 300 | 10,000에 25달러에서 100만에 499달러 | 최고의 무료 |
터보SMTP | 6000 | 200 | 50k의 경우 14.95에서 2백만의 경우 979.95입니다. | 12개월 동안 6000/월 |
알리바바 다이렉트 메일 | 6000 | 200 | 이메일 1000개당 .00029 | |
페피포스트 | 3000 | 100 | 15만 달러에 25달러에서 200만 달러에 445달러 | |
센드그리드 | 3000 | 100 | 50,000개 이메일의 경우 $14.95에서 150,000개의 경우 $749 | |
스파포스트 | 3000 | 100 | 5만 달러에 20달러 ~ 100만 달러에 525달러 | |
탄력적 이메일 | 3000 | 100 | Amazon SES와 같은 비용 계산 | 저렴한 비용 지불 옵션 |
아마존 SES | 62000 | 1000개의 이메일에 대해 .0001 | AWS EC2 서버에서 보낸 경우 가장 저렴하고 무료입니다. | |
지메일 | 15000 | 500 | Gsuite는 프리미엄 옵션입니다. | 도메인은 gmail.com이 됩니다. 계정이 정지될 수 있습니다. |
워드프레스에서 SMTP 서버 사용하기
WordPress는 인터넷 사이트의 거의 40%를 지원합니다. 기본적으로 PHP Mail을 사용하여 트랜잭션 이메일을 보내며 구성되지 않은 경우 sendmail을 사용합니다. 배달과 관련하여 성공하거나 실패할 수 있으므로 다음을 사용하는 것이 좋습니다. SMTP 설정을 사용하거나 SMTP API를 사용할 수 있는 WordPress 플러그인.
기본적으로 WordPress는 PHP 메일을 사용하여 이메일을 보내며 올바르게 구성되어 있으면 충분하지만 대부분의 공유 호스트에서 진행 중인 작업과 사용자의 상태를 확인하기 위한 직접 콘솔 액세스를 허용하지 않으므로 대부분의 경우 타사 서비스를 사용하는 것이 더 쉽습니다. 호스트 IP가 스팸으로 인해 블랙리스트에 추가되었을 수 있습니다. 서버에 다른 사용자가 있을 수도 있기 때문입니다(공통 공유 호스팅의 경우). 동작하지 않고 귀하의 IP가 블랙리스트에 추가될 수 있습니다. 블랙리스트에 올랐다는 것은 서버의 IP가 알려진 스패머의 전체 목록에 포함되어 메일이 통과하기가 훨씬 더 어렵다는 것을 의미합니다. 여기에서 상태를 확인할 수 있습니다.
WordPress의 경우 Wp Mail SMTP 플러그인을 권장합니다. 구성, 설정이 쉽고 Gmail을 비롯한 다양한 공급업체를 지원하며 보낸 모든 이메일을 기록하는 옵션도 있습니다. 무료 요금제는 대부분의 사용자에게 충분합니다.
WordPress 내부에서 쉽게 설치하거나 WordPress 웹 사이트에서 다운로드할 수도 있습니다. 프리미엄 플랜이 있지만 무료는 대부분의 사용자에게 충분합니다.
Linux에서 자체 호스팅 SMTP 서버 설정
빠른 MTA 비교, 우리는 Linux에서 작업할 것이므로 Postfix를 선택합니다.
당신이있는 경우... | 큐메일 | 엑심 | 메일을 보내다 | 접미사 | 노트 |
---|---|---|---|---|---|
미숙 | 0 | 삼 | 1 | 삼 | Exim과 Postfix에는 좋은 문서와 명확한 예가 있습니다. |
보안 걱정 | 삼 | 2 | 0 | 삼 | Postfix는 안전하고 현대적입니다. qmail은 안전하지만 아주 오래되고 까다롭습니다. Exim은 다른 기준에 따라 안전합니다(위 참조). |
Sendmail milters에 의존 | 0 | 1 | 삼 | 2 | Postfix는 milters를 실행할 수 있습니다. 동등한 Exim 라우터/필터 스크립트를 사용할 수 있습니다. |
최소한의 번거로움을 원함 | 0 | 삼 | 0 | 삼 | Sendmail에는 쉬운 프론트 엔드가 있지만 깊이 들어갈수록 더 나빠집니다. Postfix와 Exim이 더 예측 가능합니다. |
리소스가 제한된 | 삼 | 2 | 1 | 2 | 다른 의견은 아래 임베디드 애플리케이션 을 참조하십시오. |
Windows에서 | 0 | 2 | 삼 | 0 | Sendmail에는 기본 Windows 포트가 있습니다. Exim은 Cygwin 배포판에 있습니다. |
상업적 지원 필요 | 1 | 삼 | 삼 | 삼 | 모든 MTA에 대해 유능한 회사가 있습니다. 큐메일은 너무 오래되어서 본질적으로 지원하기가 어렵습니다. |
Postfix는 이메일을 보내거나 받는 SMTP 서버 또는 클라이언트 역할을 할 수 있는 메일 전송 에이전트(MTA)입니다. 설정 및 구성이 간편하며 대부분의 요구 사항에 맞게 자체적으로 사용하며 타사 이메일 서비스를 통해 이메일을 전달하는 중개자 역할을 하도록 설정할 수도 있습니다. 기본 설정만 다루고 첫 번째 이메일을 보내드립니다.
가장 간단한 설정은 postfix를 설치하는 것으로 구성되어 있습니다.
이러한 기본 설정은 기술적으로 작동하지만 이메일이 스팸에 도착할 수 있습니다. 이를 충족하고 더 나은 이메일 전달성을 보장하기 위해 이메일이 제대로 전송되도록 하는 데 필요한 DKIM 또는 SPF와 같은 다른 요구 사항을 추가하는 또 다른 가이드가 있습니다. 을 통해. 그러나 매우 타당한 이유가 없는 한 자체 이메일 서버를 실행하지 않는 것이 좋습니다.
이 프로세스에서는 Ubuntu 20.04를 새로 설치했으며 Linux 명령줄로 작업할 수 있다고 가정합니다. 그렇지 않은 경우 기존 SMTP 공급자 중 하나를 사용하는 것이 좋습니다. 우리는 Ubuntu 20.04 서버에 postfix를 설정하고 작동 여부를 테스트하기 위해 자체 더미 서비스에 이를 사용하는 이메일을 보낼 것입니다.
시작하려면 apt 패키지 관리자에 대한 업데이트 캐시 명령을 실행합니다.
sudo apt update
다음으로 다음 명령을 사용하여 postfix를 설치합니다.
sudo apt install postfix
설치 시 여러 프롬프트가 표시됩니다. 다음을 선택하십시오.
- 일반 유형의 메일 구성? : 이를 위해 인프라 요구 사항과 일치하는 인터넷 사이트를 선택합니다.
- 시스템 메일 이름: 사용자가 보낸 사람 도메인을 지정하지 않은 경우 이메일을 보내는 데 사용되는 기본 도메인입니다. 따라서 user1이 보낸 이메일을 보내고 도메인을 지정하지 않으면 이메일에 접미사가 붙습니다. 따라서 example.com이 주어지면 [email protected] 에서 이메일을 보냅니다.
기본 구성을 처리해야 합니다. 전체 설정을 위해 메일 서버 설정 가이드를 따르십시오. 이제 포트 25를 사용할 수 있어야 합니다. 다음 명령 중 하나를 사용하여 포트가 열려 있는지 확인할 수 있습니다.
1 2 3 4 5 |
sudo lsof - i - P - n | grep LISTEN sudo netstat - tulpn | grep LISTEN sudo ss - tulpn | grep LISTEN sudo lsof - i : 22 ## see a specific port such as 22 ## sudo nmap - sTU - O IP - address - Here |
우리가 이와 같은 것을 찾고 있는 것

master 2575 root 13u IPv4 30244 0t0 TCP *:25 (LISTEN)
master 2575 root 14u IPv6 30245 0t0 TCP *:25 (LISTEN)
설정을 재구성해야 하는 경우 다음 명령을 실행하기만 하면 됩니다.
1 |
sudo dpkg - reconfigure postfix |
우리는 모두 SMTP 서버를 설정하고 실행해야 합니다. 다음으로 인터넷의 일부 사용자에게 이메일을 보내거나 모든 이메일을 포착하여 테스트할 수 있습니다.
SMTP 서버 사용
일반적으로 이메일 클라이언트는 우리 대부분이 SMTP 서버와 인터페이스하는 가장 일반적인 방법이지만 텔넷을 사용하여 직접 상호 작용할 수도 있습니다. 우리는 이 방법이 아주 간단하기 때문에 이 방법으로 시작할 것입니다.
리눅스에서 텔넷을 사용하여 메일 보내기
다음 명령을 입력하여 로컬 SMTP 서버에 연결합니다.
1 |
telnet localhost 25 |
당신은 다음과 같은 것을 보게 될 것입니다 -
1 2 3 4 |
root @ mailtest : ~ # telnet localhost 25 Trying : : 1... Connected to localhost . Escape character is '^]' . |
연결할 수 없으면 postfix가 실행 중이고 포트 25가 열려 있는지 확인하십시오.
이제 [email protected] ( catch all email )이라고 이메일을 보내겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
root @ mailtest : ~ # telnet localhost 25 Trying : : 1... Connected to localhost . Escape character is '^]' . 220 mailtest ESMTP Postfix ( Ubuntu ) ehlo localhost 250 - li292 - 146.members.linode.com 250 - PIPELINING 250 - SIZE 10240000 250 - VRFY 250 - ETRN 250 - STARTTLS 250 - ENHANCEDSTATUSCODES 250 - 8BITMIME 250 - DSN 250 - SMTPUTF8 250 CHUNKING mail from : bob @ example . com 250 2.1.0 Ok rcpt to : smtptest @ freesmtpservers . com 250 2.1.5 Ok data 354 End data with . Subject : Testing Email service This is a test email . . 250 2.0.0 Ok : queued as A6ADC402D4 quit 221 2.0.0 Bye Connection closed by foreign host . |
이메일이 [email protected] 의 받은 편지함에 수신되었는지 확인하거나 다른 수신자를 사용한 경우 받은 편지함에서 확인할 수 있습니다.
Linux 명령줄에서 이메일 보내기
Linux에서는 sendmail 명령을 사용하여 이메일을 빠르게 보낼 수 있습니다.
1 |
echo "Subject: hello" | sendmail - v smtptest @ freesmtpservers . com |
제 기사가 마음에 드셨으면 좋겠습니다. 제가 몇 가지 요점을 놓쳤거나 어딘가에서 잘못되었다고 생각되면 저에게 알려주시면 여기에서 업데이트하겠습니다.