AmazonSES과 Postfix 통합 - Amazon Simple Email Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AmazonSES과 Postfix 통합

접두사는 널리 사용되는 Sendmail 메시지 전송 에이전트()의 대안입니다MTA. Postfix에 대한 자세한 내용은 http://www.postfix.org를 참조하세요. 이 주제의 절차는 Linux, macOS 또는 Unix에 적용됩니다.

참고

Postfix는 타사 애플리케이션이며 Amazon Web Services에서 개발하거나 지원하지 않습니다. 이 단원의 절차는 정보 제공이 목적이며 사전 통지 없이 변경될 수 있습니다.

사전 조건

이 단원의 절차를 완료하려면 다음 작업을 수행해야 합니다.

  • 시스템에 설치되어 있는 경우 Sendmail 애플리케이션을 제거합니다. 이 단계를 완료하는 절차는 사용하는 운영 체제에 따라 다릅니다.

    중요

    sendmail에 대한 다음 참조는 Sendmail 애플리케이션과 혼동하지 않도록 Postfix 명령 sendmail을 참조합니다.

  • Postfix를 설치합니다. 이 단계를 완료하는 절차는 사용하는 운영 체제에 따라 다릅니다.

  • SASL 인증 패키지를 설치합니다. 이 단계를 완료하는 절차는 사용하는 운영 체제에 따라 다릅니다. 예를 들어 RedHat기반 시스템을 사용하는 경우 cyrus-sasl-plain 패키지를 설치해야 합니다. Debian 또는 Ubuntu 기반 시스템을 사용할 경우에는 libsasl2-modules 패키지를 설치해야 합니다.

  • 이메일 전송에 사용할 이메일 주소 또는 도메인을 확인합니다. 자세한 내용은 이메일 주소 자격 증명 생성 단원을 참조하십시오.

  • 계정이 아직 샌드박스에 있으면 확인된 이메일 주소에만 이메일을 전송할 수 있습니다. 자세한 내용은 프로덕션 액세스 요청(Amazon SES샌드박스에서 이동) 단원을 참조하세요.

Postfix 구성

다음 절차를 완료하여 Postfix를 SES 사용하여 Amazon을 통해 이메일을 보내도록 메일 서버를 구성합니다.

Postfix를 구성하려면
  1. 명령줄 프롬프트에 다음 명령을 입력합니다.

    sudo postconf -e "relayhost = [email-smtp.us-west-2.amazonaws.com]:587" \ "smtp_sasl_auth_enable = yes" \ "smtp_sasl_security_options = noanonymous" \ "smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd" \ "smtp_use_tls = yes" \ "smtp_tls_security_level = secure" \ "smtp_tls_note_starttls_offer = yes"
    참고

    미국 서부(오레곤) 이외의 AWS 리전SES에서 Amazon을 사용하는 경우 를 바꿉니다.email-smtp.us-west-2.amazonaws.com 해당 리전의 SMTP 엔드포인트가 있는 이전 명령에서. 자세한 내용은 지역 및 아마존 SES 단원을 참조하십시오.

  2. 텍스트 편집기에서 /etc/postfix/master.cf 파일을 엽니다. 다음 항목 검색:

    -o smtp_fallback_relay=

    이 항목이 있는 경우 열의 시작 부분에 #(해시) 문자를 붙여 주석을 남깁니다. 파일을 저장하고 닫습니다.

    그렇지 않은 경우 이 항목이 없으면 다음 단계로 계속 진행하십시오.

  3. 텍스트 편집기에서 /etc/postfix/sasl_passwd 파일을 엽니다. 파일이 없으면 새로 만듭니다.

  4. 다음 열을 /etc/postfix/sasl_passwd에 추가합니다.

    [email-smtp.us-west-2.amazonaws.com]:587 SMTPUSERNAME:SMTPPASSWORD
    참고

    Replace SMTPUSERNAME 그리고 SMTPPASSWORD SMTP 로그인 보안 인증 정보를 사용합니다. SMTP 로그인 보안 인증 정보가 액세스 키 ID 및 보안 액세스 키와 AWS 동일하지 않습니다. 자격 증명에 대한 자세한 내용은 Amazon SES SMTP 자격 증명 가져오기 단원을 참조하세요.

    미국 서부(오레곤) 이외의 AWS 리전SES에서 Amazon을 사용하는 경우 를 바꿉니다.email-smtp.us-west-2.amazonaws.com 이전 예제에서 해당 리전의 SMTP 엔드포인트를 사용합니다. 자세한 내용은 지역 및 아마존 SES 단원을 참조하십시오.

    sasl_passwd를 저장하고 닫습니다.

  5. 명령 프롬프트에서 다음 명령을 입력하여 SMTP 보안 인증 정보가 포함된 해시맵 데이터베이스 파일을 생성합니다.

    sudo postmap hash:/etc/postfix/sasl_passwd
  6. (선택 사항) 이전 단계에서 생성한 /etc/postfix/sasl_passwd/etc/postfix/sasl_passwd.db 파일은 암호화되지 않습니다. 이러한 파일에는 SMTP 보안 인증 정보가 포함되어 있으므로 파일의 소유권 및 권한을 수정하여 파일에 대한 액세스를 제한하는 것이 좋습니다. 이 파일에 대한 액세스를 제한하려면:

    1. 명령 프롬프트에서 다음 명령을 입력하여 파일의 소유권을 변경합니다.

      sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
    2. 명령 프롬프트에서 다음 명령을 사용하여 루트 사용자만 읽거나 쓸 수 있도록 파일 권한을 변경합니다.

      sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
  7. Postfix에 CA 인증서를 찾을 수 있는 위치를 알려줍니다(Amazon SES 서버 인증서를 확인해야 함). 이 단계에서 사용하는 명령은 운영 체제에 따라 다릅니다.

    • Amazon Linux, Red Hat Enterprise Linux 또는 관련 배포를 사용하는 경우 다음 명령을 입력합니다.

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
    • Ubuntu 또는 관련 배포를 사용하는 경우 다음 명령을 입력합니다.

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt'
    • macOS를 사용하는 경우 시스템 키 체인에서 인증서를 생성할 수 있습니다. 인증서를 생성하려면 명령줄에 다음 명령을 입력합니다.

      sudo security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > /etc/ssl/certs/ca-bundle.crt

      인증서를 생성한 후에 다음 명령을 입력합니다.

      sudo postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt'
  8. Postfix 서버를 시작하려면(또는 서버가 이미 실행 중인 경우 구성 설정을 다시 로드하려면) 다음 명령을 입력합니다.

    sudo postfix start; sudo postfix reload
  9. 명령줄에 다음을 입력하고 각 줄 이후에 Enter를 눌러 테스트 이메일을 보냅니다. Replace sender@example.com 보낸 사람 이메일 주소를 사용합니다. Amazon 에서 사용할 수 있는지 From 주소를 확인해야 합니다SES. Replace recipient@example.com 대상 주소를 사용합니다. 계정이 아직 샌드박스 환경에 있을 경우 수신자 주소도 확인해야 합니다. 마지막으로 메시지의 마지막 열에는 다른 콘텐츠가 없는 상태로 하나의 마침표(.)가 포함되어 있어야 합니다.

    sendmail -f sender@example.com recipient@example.com From: Sender Name <sender@example.com> Subject: Amazon SES Test This message was sent using Amazon SES. .
  10. 수신자 주소와 연결된 사서함을 확인합니다. 이메일이 도착하지 않으면 정크 메일 폴더를 확인합니다. 그래도 이메일을 찾을 수 없으면 자세한 내용은 이메일을 전송하기 위해 사용한 시스템의 메일 로그(일반적으로 /var/log/maillog에 있음)를 확인합니다.

고급 사용 예

이 예제에서는 구성 세트 를 사용하고 MIME-multipart 인코딩을 사용하여 첨부 파일과 함께 메시지의 일반 텍스트와 HTML 버전을 모두 보내는 이메일을 보내는 방법을 보여줍니다. 또한 클릭 이벤트를 분류하는 데 사용할 수 있는 링크 태그도 포함되어 있습니다. 이메일의 콘텐츠는 외부 파일에 지정되므로, Postfix 세션에서 수동으로 명령을 입력할 필요가 없습니다.

Postfix를 사용하여 멀티파트 MIME 이메일을 보내려면
  1. 텍스트 편집기에서 mime-email.txt라는 새로운 파일을 생성합니다.

  2. 텍스트 파일에서 빨간색으로 표시된 값을 계정의 해당 값으로 바꾸고 다음 콘텐츠를 붙여 넣습니다.

    X-SES-CONFIGURATION-SET: ConfigSet From:Sender Name <sender@example.com> Subject:Amazon SES Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="YWVhZDFlY2QzMGQ2N2U0YTZmODU" --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: multipart/alternative; boundary="3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ" --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Amazon SES Test This message was sent from Amazon SES using the SMTP interface. For more information, see: http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <html> <head> </head> <body> <h1>Amazon SES Test</h1> <p>This message was sent from Amazon SES using the SMTP interface.</p> <p>For more information, see <a ses:tags="samplekey0:samplevalue0;samplekey1:samplevalue1;" href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html"> Using the Amazon SES SMTP Interface to Send Email</a> in the <em>Amazon SES Developer Guide</em>.</p> </body> </html> --3NjM0N2QwMTE4MWQ0ZTg2NTYxZQ-- --YWVhZDFlY2QzMGQ2N2U0YTZmODU Content-Type: application/octet-stream MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="customers.txt" SUQsRmlyc3ROYW1lLExhc3ROYW1lLENvdW50cnkKMzQ4LEpvaG4sU3RpbGVzLENh bmFkYQo5MjM4OSxKaWUsTGl1LENoaW5hCjczNCxTaGlybGV5LFJvZHJpZ3VleixV bml0ZWQgU3RhdGVzCjI4OTMsQW5heWEsSXllbmdhcixJbmRpYQ== --YWVhZDFlY2QzMGQ2N2U0YTZmODU--

    파일을 저장하고 닫습니다.

  3. 명령줄 프롬프트에 다음 명령을 입력합니다. Replace sender@example.com 이메일 주소로 교체 recipient@example.com 수신자의 이메일 주소를 사용합니다.

    sendmail -f sender@example.com recipient@example.com < mime-email.txt

    명령이 성공적으로 실행되면 출력을 제공하지 않고 종료됩니다.

  4. 이메일의 받은 편지함을 확인합니다. 메시지가 전송되지 않은 경우 시스템의 메일 로그를 확인합니다.