이 문서에서는 Ubuntu 서버 20.04 또는 24.04를 사용한다고 가정합니다.
동기 부여
Sendmail은 강력한 안정성으로 잘 알려져 있기 때문에 WordOps에서 선호하는 MTA(메일 전송 에이전트)입니다. 그러나 특히 인증, 암호화, 컴파일과 같은 작업 시 구성은 숙련된 시스템 관리자에게도 상당히 복잡해 보일 수 있습니다. 하지만 걱정하지 마세요! 단계별로 명확하게 이해하면 이러한 프로세스는 실제로 상당히 관리하기 쉽습니다. 지금부터 이 설정을 마스터하는 방법을 자세히 알아보세요!
대안
Sendmail을 대체하고 싶거나 더 쉬운 방법을 찾고 있다면 Postfix, SSMTP 또는 Nullmailer와 같은 옵션이 모두 훌륭한 선택입니다. 하지만 워드프레스를 통해 이메일만 보내고 서버에서 오는 모든 중요한 정보를 무시해야 하는 경우라면 이 옵션을 사용하는 것이 좋습니다, FluentSMTP 를 사용하는 것이 가장 좋습니다. 예를 들어 로깅 기능 등을 위해 사이트에 SMTP 플러그인이 여전히 필요한 경우 서버에 이미 구성되어 있어도 추가할 수 있습니다.
Sendmail 설치
Sendmail은 WordOps Stack의 일부이며 함께 쉽게 설치할 수 있습니다:
wo 스택 설치 --sendmail
sudo apt install libsasl2-modules
APT를 사용하여 Ubuntu에 설치할 수도 있습니다:
sudo apt 업데이트
sudo apt install sendmail
sudo apt install libsasl2-modules
설치 메일 도구 는 필수 사항은 아니지만 시스템에서 Sendmail의 호환성을 높여줍니다:
sudo apt 설치 메일 유틸리티
인증 파일 만들기
에 인증 정보를 위한 새 파일을 만듭니다. /etc/mail/authinfo을 클릭하고 파일에 다음 줄을 추가하여 다음을 대체합니다. YOUR_USERNAME 그리고 YOUR_API_KEY 를 실제 거래 이메일 제공업체 자격증명(일부 제공업체에서는 단일 토큰을 사용자 이름과 비밀번호로 모두 사용할 수 있음)과 함께 입력합니다:
AuthInfo:smtp.youremailprovider.com "U:YOUR_USERNAME" "P:YOUR_API_KEY"
Sendmail은 항상 가장 안전한 방법을 먼저 선택하므로 인증 유형을 설정할 필요가 없으며, 나중에 STARTLS로 정의할 것입니다.
SMTP 공급업체를 사용하도록 Sendmail 구성하기
다음 위치에서 Sendmail 구성 파일을 엽니다. /etc/mail/sendmail.mc. 먼저 다음 줄을 수정하여 발신 이메일에 사용할 도메인을 설정합니다. yourdomain.com 를 실제 도메인으로 변경합니다:
Ubuntu 20.04
MASQUERADE_AS(`yourdomain.com')dnl
Ubuntu 24.04
최신 버전에서는 Sendmail에서 모든 가장무도회 구성이 제거되었으므로 다음과 같이 필요한 모든 설정을 추가해야 합니다:
MASQUERADE_AS(`yourdomain.com')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
그런 다음 (모든 버전에서) 다음 줄을 추가하여 공급업체를 SMTP 릴레이로 사용하도록 Sendmail을 구성합니다. 메일러_정의를 대체하여 smtp.youremailprovider.com 를 실제 거래 이메일 공급자 SMTP URL로 변경합니다:
define(`SMART_HOST',`[smtp.postmarkapp.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
데이터베이스 파일 생성
저장 후 authinfo 파일을 사용하여 Sendmail에서 사용할 데이터베이스 파일을 생성합니다:
sudo 메이크맵 해시 /etc/mail/authinfo < /etc/mail/authinfo
센드메일 구성 다시 빌드
Sendmail은 앞서 편집한 파일에 있는 매크로를 포함하여 사용해야 하는 모든 매크로를 컴파일해야 합니다. 구문 오류가 있는 경우 컴파일 프로세스가 실패하므로 여러 번 확인한 후 실행하세요:
sudo m4 /etc/mail/sendmail.mc | sudo tee /etc/mail/sendmail.cf
Sendmail 다시 시작
Sendmail 서비스를 다시 시작하여 변경 사항을 적용합니다:
sudo 서비스 보내기 메일 다시 로드
이메일 보내기 테스트
테스트 이메일을 보내 Sendmail 구성을 테스트할 수 있지만 일부 제공업체는 이메일의 제목과 본문도 요구할 수 있으므로 먼저 다음과 같은 파일을 만들어 보겠습니다. test_email.txt 를 아래 내용으로 업데이트합니다:
제목: 터미널 이메일 보내기
이메일 내용 1줄
이메일 내용 2줄
이제 파일을 기본으로 하여 이메일을 보내세요:
보내기 메일 re*******@*****le.com < test_email.txt
교체 re*******@*****le.com 를 실제 이메일 주소로 입력하세요.
리소스:
- https://docs.wordops.net/how-to/setup-sendmail-with-sendgrid/
- https://postmarkapp.com/support/article/792-is-sendmail-configurable-through-postmark
- https://sourcedaddy.com/networking/modifying-sendmail-mc.html
- https://stackoverflow.com/questions/57410259/how-to-send-an-email-using-sendmail-command-in-linux
답글 남기기