ssmtp가 뭐냐? 외부에 있는 smtp 서버를 이용해서 메일을 보내고 싶을때 간단하게 커맨드상에서 쓸 수 있는 간결한 녀석 되겠습니다. - Simple SMTP 의 약자라고들 합니다.
설치부터 갑시다. 어차피 레드햇으로 벌어먹는 놈 블로그니까 레드햇 중심입니다. 다른건 다들 알아서 하세요. '-'
뭐 소스가 어쩌고 컴파일이 어쩌고 그딴거 없습니다. 패키지 깝니다.
http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=ssmtp
찾아서 까세요. dag나 이런데 포함되어있는지는 모르겠네요. CentOS/RHEL 계열의 경우 EPEL에 있는거 쓰는게 제일 편할듯.
자 설정.
제가 원래 이전 블로그에서 이 글을 남겼을때가 야후 사용자분때문에 남겼던 글이어서 야후 사용자분 config 중심으로 갑니다.
* 설정파일 변경
/etc/ssmtp/ssmtp.conf 파일을 보시면 기본적으로 다음과 같이 되어있습니다.
# cat /etc/ssmtp/ssmtp.conf
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
root=postmaster
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=mail
# Where will the mail seem to come from?
#rewriteDomain=설치중 기재한 mail 주소
# The full hostname
hostname=hello(이건 제 호스트네임이네요)
위 설정들을 정리해보면 다음과 같습니다.
root=메일주소
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_
root 항목에는 실제 e-mail 주소를 입력합니다.
이를테면 id@yahoo.co.kr 이런식이겠지요.
mailhub에는 smtp서버 주소를 기재해줍니다.
smtp.mail.yahoo.co.kr(맞나요? 대충 아무렇게나 적었습니다. -_-)
이런 방식으로 smtp주소를 적으면 됩니다. 자세한 smtp주소는
smtp서버를 제공하는 서버 관리자에게 문의하거나,
혹은 smtp 서비스를 제공하는 업체에서 제공하는
정보를 따르시면 됩니다. (만일 야후라면 야후 사이트에서 제공하는 설정내용 보면;;)
rewriteDomain에는 원래 메일주소가 아닌 메일헤더를 조작하여
해당 메일 주소에서 보낸것처럼 보일 수 있게 합니다.
스패머들이 자주 사용하는 방법중의 하나이기도 합니다.
이 부분은 #으로 주석처리가 되어있는데 그냥 내버려두시면
될 듯 합니다. 이 옵션은 비인증 smtp서버에서만 사용 가능하고
인증이 필요한 smtp서버에서는 사용이 불가능합니다.
야후같은 경우는 불가능한 경우로 보시면 되겠습니다.
hostname에는 현재 사용중인 시스템의 hostname을 적어주시면 됩니다.
이 부분은 설치하면서 현재 호스트네임에 맞게 자동으로 채워집니다.
자체 smtp(sendmail등을 자체적으로 사용하면서 사용시)를 사용시에는
필요합니다만 외부 smtp를 사용시에는 별 의미가 없는 값입니다.
이 정도만 해 주시면 기본 설정이 끝납니다.
4. 기본 사용법 - 메일 발송
- 기본 메일 발송 포맷
# ssmtp -C 설정파일위치[발송할 메일주소]< 메일내용이 담긴 파일이름
이를테면 다음과 같습니다.
# /usr/sbin/ssmtp -C /etc/ssmtp/ssmtp.conf foo@bar.com < hello.eml
근데 야후등은 이렇게 하면 안됩니다! 아래와 같이 사용자 인증을 사용해야합니다.
- 사용자 인증기능 사용하기
# ssmtp -C 설정파일위치[발 송할 메일주소] -au [ID] -ap [P/W]< 메일내용이 담긴 파일이름
이것은 대략 이렇게 될 것입니다.
# /usr/sbin/ssmtp -C /etc/ssmtp/ssmtp.conf foo@bar.com -au Yahoo_ID
-ap Yahoo_PassWORD < hello.eml
이렇게 해 주시면 기본적으로 메일 내용이 날아갑니다.
뭐 Gmail 같은 경우는 이렇게 한다더군요. - 찾다보니 나와서 설정 추가합니다.
#The following line redirects mail to root to your gmail account
root=myemail@gmail.com
mailhub=smtp.gmail.com:587
UseSTARTTLS=yes
UseTLS=yes
AuthUser=myemail@gmail.com
AuthPass=mypassword

최근 덧글