Mailgun으로 이메일 보내기

Mailjet은 Google Compute Engine 사용자에게 매월 10,000개의 무료 이메일 메시지를 제공하는 타사 이메일 서비스입니다. 또한 MailGun은 프로그래매틱 방식 API, 로그 보관, 이메일 맞춤설정, 분석, 이메일 검사 등의 기능도 제공합니다.

다음 안내에 따라 가입 후 Mailgun을 사용하세요.

시작하기 전에

  1. Mailgun의 Google 파트너 페이지에서 새 Mailgun 계정을 만듭니다.* Compute Engine 사용자의 경우 매월 30,000개까지의 메시지를 무료로 사용할 수 있습니다. 추가 메시지의 가격과 볼륨 할인에 대한 정보는 Mailgun 월별 가격 계산기에서 확인하세요.

  2. 사용자 인증 정보를 가져옵니다. 이 안내를 따르려면 Mailgun SMTP 사용자 이름, 비밀번호, 호스트 이름을 알고 있어야 합니다. Mailgun 제어판의 Domains(도메인) 섹션에서 사용자 이름 및 비밀번호를 확인합니다.

    Mailgun SMTP 호스트 이름은 smtp.mailgun.org입니다.

  3. TCP 포트 2525에서 나가는 트래픽을 허용하도록 방화벽 규칙을 구성합니다.

* Google은 유료 계정에 가입한 고객에 대한 보상을 받습니다.

Mailgun을 Postfix 관련 메일 릴레이로 구성

Mailgun을 메일 릴레이로 구성하면 Postfix 메일 전송 에이전트에서 원격 전달용으로 지정된 이메일을 전달할 수 있습니다.

  1. SSH를 사용하여 인스턴스에 연결합니다.

    gcloud compute ssh [INSTANCE_NAME]
    

    여기서 [INSTANCE_NAME]은 이메일을 보내는 VM 인스턴스의 이름입니다.

  2. 수퍼유저가 된 후 안전한 umask를 설정합니다.

    user@test-instance:~$ sudo su -
    
    root@test-instance:~# umask 077
    
  3. Postfix Mail Transport Agent를 설치합니다. 메시지가 표시되면 도메인 이름의 기본 선택 항목을 수락하고 Local Only 구성을 선택합니다.

    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
    

  4. Postfix 구성 옵션을 수정합니다. Postfix 구성 옵션은 main.cf 파일에 설정되어 있습니다. 원하는 텍스트 편집기로 파일을 엽니다.

    root@test-instance:~# vi /etc/postfix/main.cf
    
  5. 다음과 같은 줄이 있는 경우 주석 처리합니다.

    # default_transport = error
    # relay_transport = error
    
  6. 파일 끝에 다음 행을 추가하여 Mailgun SMTP 서비스를 추가합니다.

    relayhost = [smtp.mailgun.org]:2525
    
  7. 그런 후 다음 행을 추가하여 SSL/TLS 지원을 적용하고 이러한 요청에 대한 STMP 인증을 구성합니다. 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
    

    변경사항을 저장하고 파일을 닫습니다.

  8. SASL 비밀번호 맵을 생성합니다.

    1. 표준 입력용으로 준비된 새 비밀번호 파일을 만듭니다.

      root@test-instance:~# cat > /etc/postfix/sasl_passwd << EOF
      
    2. 프롬프트에서 YOUR_SMTP_LOGINYOUR_SMTP_PASSWORD를 사용자 인증 정보로 바꾸어 서비스 세부정보를 입력합니다. 도메인별 사용자 인증 정보를 보거나 변경하는 방법은 Mailgun 도움말을 참조하세요.

      > [smtp.mailgun.org]:2525 YOUR_SMTP_LOGIN:YOUR_SMTP_PASSWORD
      
    3. 구분 기호 EOF를 입력하여 파일을 저장한 후 닫습니다.

      > EOF
      
  9. 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
    
  10. 다음으로, 사용자 인증 정보가 들어 있는 파일은 더 이상 필요 없으므로 삭제합니다.

    root@test-instance:~# rm /etc/postfix/sasl_passwd
    
  11. .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
    
  12. 마지막으로 구성을 새로고침하여 수정된 매개변수를 로드합니다.

    Debian


    root@test-wheezy:~# /etc/init.d/postfix restart
    

    CentOS


    [root@test-centos ~]# postfix reload
    

  13. 구성을 테스트합니다. 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 문서 를 참조하세요.

Mailgun SMTP 설정

다음 Mailgun 관련 SMTP 설정을 사용하여 클라이언트를 구성합니다.

  • 호스트: smtp.mailgun.org
  • 포트: 2525

다른 Google Cloud 기능을 직접 사용해보세요. 가이드 살펴보기.