메뉴 건너뛰기

imitator

CentOS 6 sendmail 설치 하는 방법

2016.11.16 16:07

관리자 조회 수:2370

CentOS 6 버전에 sendmail을 설치하여 추후에 참고 할수 있도록 내용을 정리하였습니다.

이 글은 수정해야할 사항이 확인되면 바로 수정될 예정입니다.


대상 서버 OS : CentOS 6.8 64 bit


설치전 기본적으로 확인할 사항


sendmail이 설치되어있는지 확인

rpm -qa |grep sendmail


# 기본적으로 설치되어있는 postfix를 제거

yum remove postfix



1.png

2.png


1. yum으로 sendmail, sendmail-cf 설치를 진행합니다.


# sendmail 설치

yum install sendmail sendmail-cf


3.png


2. /etc/mail에서 sendmail.mc 및 sendmail.cf 파일 존재 유무를 확인후 복사를 진행합니다.
   혹시 모를 실수를 예방하기 위해서입니다.


# 원본 파일 복사

cp /etc/mail/sendmail.mc /usr/local/src/backup_sendmail.mc

cp /etc/mail/sendmail.cf /usr/local/src/backup_sendmail.cf


4.png 

5.png 


3. vi /etc/mail/sendmail.mc 로 이동하여 변경 작업을 진행합니다.


# 에디터 상에서 53을 누르고 대문자 G를 누르면 아래와 같이 이동됩니다.


dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl


# 여기서 dnl은 주석과도 같은 기능을 하며.기능을 정상적으로 이용하기위해서는 dnl를 제거하면 됩니다.

  아래는 smtp의 인증을 사용하겠다는 설정이며 앞에 붙어있는 dnl를 삭제합니다.


TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl


6.png

7.png


# 이어서 116을 누르고 대문자 G를 눌러 이동합니다.


DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl


# 위의 127.0.0.1의 설정의 경우 로컬호스트에서만 메일 발송이 가능하므로 이부분을 0.0.0.0으로 변경하여

   외부에서도 메일 발송이 가능하게 해줍니다.


DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl


8.png


4. 수정이 완료되었다면 diff 명령어를 사용하여 원본과 수정본의 내용을 비교한후 m4 명령어를 이용하여 
    sendmail.cf을 재생성하고 sendmail를 시작합니다.


# 원본과 수정본의 내용을 비교합니다.

diff /usr/local/src/backup_sendmail.mc /etc/mail/sendmail.mc


52,53c52,53

< dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

< dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

---

> TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

> define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

116c116

< DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

---

> DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl


# 메크로 처리 언어인 m4를 이용하여 sendmail.cf을 재생성 합니다.

m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


# sendmail을 시작합니다.

service sendmail start


9.png


5. netstat 로 25번 포트가 올라왔는지 확인하고 chkconfig로 부팅시 서비스가 자동으로 시작되는지 확인한후
    방화벽에 25번 포트가 열려있는지 확인합니다.


# 25번 포트가 올라왔는지 확인합니다.

netstat -nlp |grep 25


# 리부팅시 서비스가 자동으로 실행되게 설정되어있는지 확인합니다.
chkconfig --list sendmail


# iptalbes에 25번 포트가 등록되어있는지 확인합니다.

iptables -nL |grep 25


# 포트가 등록되어있지 않다면 아래와 같이 등록해주세요. 다만 사용하는 룰에따라 등록이 안될수도있습니다.

iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT


10.png


6. telnet을 설치합니다. 


telnet 설치

yum install telnet


11.png  


6-1 설치가 완료되었으니 메일 발송 테스트를 해보겠습니다. 이 방법은 telnet으로 메일을 발송하는방법이며
      자세한 내용은 밑을 참고해주세요.


telnet으로 접근합니다.

telnet localhost 25


Trying ::1...

Connected to localhost.

Escape character is '^]'.

220 localhost.localdomain ESMTP Postfix


mail from:을 적고 보내는 사람에 관한 이메일 주소를 적습니다.

mail from: testmail@mail.com

250 2.1.0 Ok


rcpt to:에는 메일을 받을 사람에 관한 이메일 주소를 적습니다.

rcpt to: 받을 사람 이메일

250 2.1.5 Ok


# data를 적으면 메일을 작성할수 있습니다.

data

354 End data with <CR><LF>.<CR><LF>


# subject :는 메일의 제목 부분에 해당한다. 제목을 작성후 엔터를 누르고 

  내용을 적어봅시다.

subject : This is Test Mail

hello. test mail!!!!


# 작성 완료후에 발송하려면 마지막줄에 .을 적은뒤 엔터를 누르면 메일이 발송되며.
   telnet은 quit로 빠져나갈수 있습니다.

.

250 2.0.0 Ok: queued as 3F28024013D

quit

221 2.0.0 Bye


12.png


6-2 이번에는 mail 명령어로 이메일을 발송해보겠습니다.


# 아래의 명령어를 이용하여 메일을 보낼 사람의 이메일과 받을 사람의 이메일을 적습니다.

mail -r testmail@mail.com 받을 사람 이메일


Subject: 부분에는 제목을 적은후 내용을 적고 마지막줄에 .을 적은뒤 엔터를 누르면

  이메일이 발송됩니다. 

Subject: Hello!

Test mail!

.

EOT


13.png


7. 이메일은 무사히 받았으나 스팸메세지로 나오는 부분이 있습니다. 이 부분은 화이트 도메인 등록이
    필요할것같습니다.

번호 제목 글쓴이 날짜 조회 수
73 umount target is busy 강제 해제하는 방법 관리자 2017.02.10 875
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 1531
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 1330
» CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 2370
68 CentOS 6 nginx php-fpm mysql을 yum(rpm) 설치하는 방법 file 관리자 2016.11.04 518
67 CentOS 6 webmin rpm 설치 하는방법 file 관리자 2016.11.02 303
66 CentOS 6 phpmyadmin을 yum(rpm)으로 설치하는 방법 file 관리자 2016.11.01 499
65 VirtualBox Cannot register the hard disk 해결방법 file 관리자 2016.10.18 248
64 su: pam_unix(su:auth): authentication failure file 관리자 2016.10.05 425
63 서버의 ssh 접근이 안될때 확인하는 방법 file 관리자 2016.09.27 6984
62 우분투 16.04 tasksel를 이용하여 데스크탑 설치방법 file 관리자 2016.08.29 662
61 LVM2_member mount(마운트) 불가 해결하는 방법 file 관리자 2016.08.26 1317
60 centos 6.8 mysql 5.5.51 소스설치 secret 관리자 2016.08.15 0
59 우분투 16.04 데스크탑에서 카카오톡 PC버전 설치하기 [27] file 관리자 2016.08.02 29870
58 우분투 16.04 패키지 목록이나 상태 파일을 파싱할 수 없거나 열 수 없습니다. 해결하기 file 관리자 2016.07.28 321
57 gdisk로 대용량 파티션을 생성하기 file 관리자 2016.07.22 883
56 클램(ClamAV) 안티바이러스 설치하기 (CentOS 6.6) file 관리자 2016.06.30 2825
55 메가레이드의 상태를 간단하게 확인할수 있는방법 file 관리자 2016.06.16 1467
54 메가레이드 LSI 9261-8i BIOS(바이오스) 펌웨어 업데이트 하는법 file 관리자 2016.06.16 200