
저는 기본 도메인의 하위 도메인에 있는 특정 계정으로 이메일을 받을 수 있도록 회사 서버를 설정하려고 합니다. 즉:[이메일 보호됨]
수신 메일러는 일부 콘텐츠 처리를 처리하는 PHP 스크립트를 트리거해야 합니다.
Ubuntu Server 20.0.4를 실행 중이고 Postfix가 설치되어 있고 Dovecot이 설치되어 있고 택배를 이용해도 시도해 보았지만 그렇게 할 수 없었습니다.
나는 여기까지 왔다:
- Linux 사용자를 생성하고 로컬 계정을 유효한 사서함으로 사용하도록 postfix를 구성했습니다.
- subdomain.domain.com에서 수신 메일을 허용하도록 postfix를 구성했습니다.
- Google 도메인에서 올바르게 라우팅하기 위해 하위 도메인에 대한 A 및 MX 레코드를 추가했습니다.
- 하위 도메인에 SSL을 구성했습니다(해당 하위 도메인으로 이동할 때 ssllabs 및 apache를 통해 제대로 작동하는지 확인했습니다).
- PHP 스크립트를 트리거하기 위해 /etc/postfix/master.cf에 몇 가지 추가 구성을 추가했습니다(현재는 테스트 스크립트/자리 표시자임).
smtp inet n - - - - smtpd
-o content_filter=myhook:dummy
...
# PHP SCRIPT HOOK
myhook unix - n n - - pipe
flags=F user=www-data argv=/path/to/script/MailParser.php ${sender} ${size} ${recipient}
MailParser.php 스크립트는 "수신 메일을 성공적으로 받았습니다 timestamp
" 라는 로그 파일에 대한 쓰기를 트리거합니다.
이 설정으로 smtper.net을 통해 메일을 보내면
스크립트를 성공적으로 실행하여 로그에 기록하고 사용자 시스템 메일에서 smtper.net의 "test" 메시지를 볼 수 있으므로 모든 것이 괜찮아 보입니다.
그러나 내 Gmail 계정과 같은 일반 이메일 클라이언트를 통해 메일을 보내려고 하면 다음 오류와 함께 반송할 수 없다는 메시지가 나타납니다.
550 5.1.1 연결하려는 이메일 계정이 존재하지 않습니다. 수신자의 이메일 주소에 오타나 불필요한 공백이 있는지 다시 확인해 보세요. 자세히 알아보기https://support.google.com/mail/?p=NoSuchUserf16si1842833plj.1 - gsmtp
나는이 시점에서 막혔다.
답변1
@anx가 지적한 것처럼 문제는 MX 레코드에 있는 것으로 밝혀졌습니다. 또한 도메인의 SSL 인증서가 완전히 구성되지 않아 문제가 발생했습니다. 그렇지 않으면 내 로컬 서버 구성이 올바르게 설정되었습니다.