데비안 계열 리눅스에서, Sendmail로 자신의 지메일(Gmail)을 SMTP 릴레이 서버로 사용하여 메일을 보내는 방법을 알아 보겠습니다.

테스트 환경

가장 먼저 구글 계정에서, 다른 기기에서 메일 발송이 가능 하도록 보안 설정을 해 주어야 합니다.

구글/Gmail -> 내계정 -> 로그인 및 보안 -> 연결된 앱 및 사이트 -> 보안 수준이 낮은 앱 허용: 사용

귀차니즘이 발동하여, 아래 명령어들은 root 권한으로 작업하겠습니다.

$ su
# apt-get install sendmail mailutils sendmail-bin
# mkdir -m 700 /etc/mail/authinfo
# cd /etc/mail/authinfo/
# touch gmail-idpass
# nano gmail-idpass
AuthInfo: "U:root" "I:구글계정@gmail.com" "P:구글비밀번호"

예를 들어, 저의 이메일 minibrary@gmail.com에 비밀번호가 MyPassword 라면 다음과 같이 작성합니다.

AuthInfo: "U:root" "I:minibrary@gmail.com" "P:MyPassword"
# makemap hash gmail-idpas.db < gmail-idpass
# cd ..
# nano sendmail.mc

!!! 매우 중요한 부분입니다 !!!

dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(YOURDOMAIN.COM)dnl

# Adding config for gmail #
define(`SMART_HOST',`[smtp.gmail.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/gmail-idpass.db')dnl

# End config for gmail #
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl
# make -C /etc/mail
# /etc/init.d/sendmail reload
# echo "Just testing my sendmail gmail relay" | mail -s "Sendmail gmail Relay" minibrary@gmail.com

설정이 제대로 되었다면 입력한 메일 주소로 메일이 발송 될 것입니다.

발송이 되지 않는 경우,/var/log/mail.log를 확인해 보시기 바랍니다.

이상으로, Sendmail에서 자신의 지메일(Gmail)을 SMTP 릴레이 서버로 사용하여 메일 보내는 방법을 알아 보았습니다.