Gmail 주소로 보낸 Postfix 이메일이 수신되지 않는 문제를 해결하는 방법

Gmail 주소로 보낸 Postfix 이메일이 수신되지 않는 문제를 해결하는 방법

2022-10-03 last update

6 minutes reading mailutils mail postfix gmail
따라서 instructions ~ mailutilspostfix 를 수행했지만 test echo "This is the body of the email" | mail -s "This is the subject line" your_Gmail_address 명령을 실행해도 your_Gmail_address 에 이메일이 표시되지 않습니다.

무슨 일이야? 다음은 문제를 해결한 방법입니다(Debian 10에서).

이메일 전달을 설정하고 문제를 해결하는 것이 어려운 만큼 좋은 소식은 전달에 실패한 이메일은 일반적으로 반송되고 반송된 이메일에는 유용한 오류 정보가 포함되어 있다는 것입니다.

받은 편지함을 열어 무엇이 있는지 살펴보겠습니다. 터미널에서 $ mail 를 실행하십시오. 다음과 같은 내용이 표시되어야 합니다(그렇지 않은 경우 시스템 메일 로그를 확인하세요. 그렇게 하는 것은 이 게시물의 범위를 벗어남):

$ mail
"/var/mail/jdrch": 1 message 1 new
>N   1 Mail Delivery Syst Sun Apr 25 14:22  70/2479  Undelivered Mail Returned to Sender


이메일을 읽으려면 Enter를 누르십시오. Diagnostic-Code: 로 시작하는 줄을 찾으십시오. 제 경우에는 다음과 같습니다.

Diagnostic-Code: X-Postfix; mail for gmail.com loops back to myself

loops back 여기에 정보가 있습니다. 컴퓨팅 용어에서 루프백은 목적지 위치가 소스 위치로 확인되는 경로를 따라 어딘가에 있음을 의미합니다. 네트워크에서 예를 들어 이메일, 컨텍스트, 이러한 위치는 일반적으로 URL 또는 IP 주소입니다.

Gmail의 SMTP 서버 URL은 gmail-smtp-in.l.google.com 입니다. 머신의 DNS 설정¹을 사용하여 확인된 입력 URL의 IP 주소를 반환하는 dig 를 사용하여 해결되는 내용을 알아보겠습니다.

$ dig gmail-smtp-in.l.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> gmail-smtp-in.l.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1243
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;gmail-smtp-in.l.google.com.    IN      A

;; ANSWER SECTION:
gmail-smtp-in.l.google.com. 2   IN      A       0.0.0.0

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Apr 25 14:29:16 CDT 2021
;; MSG SIZE  rcvd: 71

;; ANSWER SECTION:에서 우리는 Gmail SMTP 서버 URL이 0.0.0.0 로 확인되는 것을 볼 수 있습니다. 이는 항상 시스템 자체를 의미합니다. 따라서 Gmail 주소로 보낸 이메일은 원본 컴퓨터로 바로 돌아옵니다.

이제 우리는 문제가 DNS 측에 있다는 것을 압니다. DNS 서버, DNS 필터링 서비스, 방화벽 또는 이와 유사한 것이 될 수 있습니다. 제 경우에는 2개의 Pi-hole 차단 목록이었고 서버 URL을 허용 목록에 추가하면 문제가 해결되었습니다.

$ dig gmail-smtp-in.l.google.com

; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> gmail-smtp-in.l.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19729
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;gmail-smtp-in.l.google.com.    IN      A

;; ANSWER SECTION:
gmail-smtp-in.l.google.com. 599 IN      A       108.177.111.26

;; Query time: 25 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Apr 25 14:33:09 CDT 2021
;; MSG SIZE  rcvd: 71


아하, 이제 ;; ANSWER SECTION:에는 0.0.0.0보다 더 정확해 보이는 IP 주소가 포함되어 있습니다. (TBH Google의 SMTP 서버 IP가 무엇인지 전혀 모릅니다.)

이제 처음에 echo 테스트 명령이 작동합니다.