Google Cloud는 Mailgun과 협력하여 프로그래매틱 API, 로그 보관, 이메일 맞춤설정, 분석, 이메일 검증이 포함된 이메일 서비스를 제공합니다.
다음 안내에서는 Mailgun을 Postfix가 있는 이메일 릴레이로 구성하는 방법을 보여줍니다.
시작하기 전에
Google Cloud Marketplace에서 가입하고 새 Mailgun 계정을 만듭니다.
사용자 인증 정보를 가져옵니다. 이 안내를 따르려면 Mailgun SMTP 사용자 이름, 비밀번호, 호스트 이름을 알고 있어야 합니다. Mailgun 제어판의 Domains(도메인) 섹션에서 사용자 이름 및 비밀번호를 확인합니다.
Mailgun에서 도메인이 구성된 방식에 따라 SMTP 호스트 이름은
smtp.mailgun.org
또는smtp.eu.mailgun.org
입니다.TCP 포트
2525
에서 나가는 트래픽을 허용하도록 방화벽 규칙을 구성합니다.
Mailgun을 Postfix 관련 메일 릴레이로 구성
Mailgun을 메일 릴레이로 구성하면 Postfix 메일 전송 에이전트에서 원격 전달용으로 지정된 이메일을 전달할 수 있습니다.
SSH를 사용하여 인스턴스에 연결합니다.
gcloud compute ssh [INSTANCE_NAME]
여기서
[INSTANCE_NAME]
은 이메일을 보내는 VM 인스턴스의 이름입니다.수퍼유저가 된 후 안전한 umask를 설정합니다.
user@test-instance:~$ sudo su -
root@test-instance:~# umask 077
Postfix Mail Transport Agent를 설치합니다.
Debian
root@test-instance:~# apt update && apt -y install postfix libsasl2-modules
CentOS
root@test-instance:~# yum install postfix cyrus-sasl-plain cyrus-sasl-md5 -y
메시지가 표시되면
Local Only
구성을 선택하고 도메인 이름의 기본 선택 항목을 수락합니다.Postfix 구성 옵션을 수정합니다. Postfix 구성 옵션은
main.cf
파일에 설정되어 있습니다. 원하는 텍스트 편집기로 파일을 엽니다.root@test-instance:~# vi /etc/postfix/main.cf
다음과 같은 줄이 있는 경우 주석 처리합니다.
# default_transport = error # relay_transport = error
파일 끝에 다음 줄을 추가하여 Mailgun SMTP 서비스를 추가합니다.
relayhost = [smtp.mailgun.org]:2525
SSL/TLS 지원을 적용하고 이러한 요청에 SMTP 인증을 구성하려면 파일 끝에 다음 줄을 추가합니다. SASL(단순 액세스 및 보안 레이어) 모듈은 Postfix 구성에서 인증을 처리합니다.
smtp_tls_security_level = encrypt smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous
변경사항을 저장하고 파일을 닫습니다.
SASL 비밀번호 맵을 생성합니다.
표준 입력용으로 준비된 새 비밀번호 파일을 만듭니다.
root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
프롬프트에서
YOUR_SMTP_LOGIN
및YOUR_SMTP_PASSWORD
를 사용자 인증 정보로 바꾸어 서비스 세부정보를 입력합니다. 도메인별 사용자 인증 정보를 보거나 변경하는 방법은 Mailgun 도움말을 참조하세요.> [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
구분 기호
EOF
를 입력하여 파일을 저장한 후 닫습니다.> EOF
postmap
유틸리티를 사용하여.db
파일을 생성합니다.root@test-instance:~# postmap /etc/postfix/sasl_passwd
root@test-instance:~# ls -l /etc/postfix/sasl_passwd* -rw------- 1 root root 68 Jun 1 10:50 /etc/postfix/sasl_passwd -rw------- 1 root root 12288 Jun 1 10:51 /etc/postfix/sasl_passwd.db
다음으로, 사용자 인증 정보가 들어 있는 파일은 더 이상 필요 없으므로 삭제합니다.
root@test-instance:~# rm /etc/postfix/sasl_passwd
.db
파일에 대한 권한을 설정합니다.root@test-instance:~# chmod 600 /etc/postfix/sasl_passwd.db
root@test-instance:~# ls -la /etc/postfix/sasl_passwd.db -rw------- 1 root root 12288 Aug 31 18:51 /etc/postfix/sasl_passwd.db
마지막으로 구성을 새로고침하여 수정된 매개변수를 로드합니다.
Debian
root@test-wheezy:~# /etc/init.d/postfix restart
CentOS
[root@test-centos ~]# postfix reload
구성을 테스트합니다.
mailx
또는mailutils
패키지를 설치하고 구성을 테스트합니다.Debian
root@test-wheezy:~# apt -y install mailutils
CentOS
[root@test-centos ~]# yum install mailx -y
테스트 메시지를 보냅니다.
root@test-instance:~# echo 'Test passed.' | mail -s 'Test-Email' EMAIL@EXAMPLE.COM
시스템 로그에서
status
가 포함된 상태 행과 성공한 서버 응답 코드(250)
을 찾습니다.Debian
root@test-wheezy:~# tail -n 5 /var/log/syslog
CentOS
[root@test-centos ~]# tail -n 5 /var/log/maillog
메시지 추적 및 라우팅을 비롯한 다른 주제에 대한 자세한 예시와 정보는 Mailgun 문서를 참조하세요.
Google Cloud에 대한 참조 아키텍처, 다이어그램, 권장사항을 살펴보세요. Cloud 아키텍처 센터를 살펴보세요.