sendmail 설치 설정

센드메일이란?


sendmail은 가장 널리 사용되는 MTA(Mail Transfer Agent) 프로그램으로 Unix 기반 환경에서 전자 메일 전송을 위해 SMTP를 구현하는 가장 일반적인 소프트웨어입니다.

수신자가 없으면 Queue에서 나중에 전달하기 위해 메시지를 렌더링합니다.

. 그러나 sendmail은 사서함을 제공하지 않으므로 POP 또는 IMAP과 같은 다른 소프트웨어를 사용해야 합니다.

대부분의 ISP는 sendmail과 같은 SMTP 서버와 POP 또는 IMAP 서버를 모두 제공합니다.

센드메일의 상용 버전은 센드메일(Sendmail)이라고 하며 센드메일 오픈 소스에 POP3 서버 및 기타 고급 기능을 포함하고 있으며 Windows NT 운영 체제에 설치할 수 있는 버전도 있습니다.

공식 사이트 http://www.sendmail.org. 이메일 발송을 위한 서버로 사용되며, SMTP(Simple Mail Transfer Protocol), 기본적으로 25번 포트를 사용합니다.

또한 이메일을 보내고 받으려면 pop3 또는 imap을 사용해야 합니다.

에스엔드메일 설치

얌 설치 -y sendmail*

호스트 파일 편집

vi /etc/호스트
================================================== ====
192.168.10.5 mail.suwon.tk
================================================== ====
-> DNS가 올바르게 등록된 경우 이 설정은 필요하지 않습니다.

vi /etc/mail/local-hostnames
================================================== ====
suwon.tk

================================================== ====

vi /etc/mail/sendmail.mc
================================================== ====
52행과 53행을 수정하십시오.

dnl TRUST_AUTH_MECH(`외부 다이제스트-MD5 CRAM-MD5 일반 로그인’)dnl
dnl 정의(`confAUTH_MECHANISMS’, `외부 GSSAPI DIGEST-MD5 CRAM-MD5 일반 로그인’)dnl

처음에 dnl을 삭제하십시오.
TRUST_AUTH_MECH(`외부 다이제스트-MD5 CRAM-MD5 일반 로그인’)dnl
define(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 일반 로그인’)dnl

픽스 라인 118
DAEMON_OPTIONS(`포트=smtp,주소=127.0.0.1, 이름=MTA’)dnl
-> DAEMON_OPTIONS(`포트=smtp,주소=0.0.0.0, 이름=MTA’)dnl
================================================== ====

sendmail.cf 파일에서 m4 명령을 사용하여 sendmail.mc 파일을 재생성합니다.


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

릴레이 설정

vi /etc/mail/access
================================================== ====
연결:localhost.localdomain 릴레이

연결: Localhost RELAY
연결: 127.0.0.1 릴레이
연결: IP 주소 RELAY
연결: 도메인 주소(예: naver.com) RELAY
================================================== ====

makemap 명령을 사용하여 액세스 구성 파일의 데이터베이스 생성
Makemap 해시 /etc/mail/access < /etc/mail/access

가상 설정

vi /etc/mail/virtusertable
================================================== ====
[email protected] abcd

================================================== ====

makemap 명령을 사용하여 virtusertable 구성 파일을 DB화합니다.


makemap 해시 /etc/mail/virtusertable < /etc/mail/virtusertable

방화벽에 설정

vi /etc/sysconfig/iptables
================================================== ====
-A RH-방화벽-1-INPUT -p tcp -m 상태 –state NEW -m tcp –dport 25 -j ACCEPT
================================================== ====

SMTP_AUTH 기능을 활성화하려면 saslauthd 데몬을 다시 시작하십시오.
systemctl은 saslauthd를 중지합니다.


systemctl 상태 saslauthd
systemctl이 saslauthd를 시작합니다.


systemctl 상태 saslauthd
systemctl 활성화 saslauthd

센드메일 재시작
systemctl 중지 sendmail
systemctl 상태 sendmail
systemctl sendmail 시작
systemctl 상태 sendmail
systemctl sendmail 활성화

netstat -ntlp
================================================== ====
우편배송확인

텔넷 로컬 호스트 25
127.0.0.1 시도…
로컬 호스트에 연결되었습니다.


이스케이프 문자는 ‘^)’입니다.


220 시스템 호스트 이름 ESMTP Sendmail 8.14.7/8.14.7; 2020년 10월 2일 (금) 09:08:29 +0900
이메일 발신자: 현재 컴퓨터 이메일 아이디@현재 컴퓨터 서버 이메일 주소(예: [email protected])
250 2.1.0 [email protected]… 보낸사람 ok
받는 사람 : 네이버, 다음, 구글 이메일 아이디 @ 네이버, 다음, 구글 이메일
250 2.1.5 Naver, Daum, Google Email ID @ Naver, Daum, Google Email… 수신자 확인
데이터
354 “.”로 시작하는 이메일을 입력하세요. 자신의 라인에서 마무리
테마: 리그 오브 레전드 재미
나는 LCK, LoL 월드컵을 좋아한다

.
250 2.0.0 09208T0F002620 메시지 전달 수락
멈추다
221 2.0.0 techsmile-111792.novalocal 연결 종료
외부 호스트에 의해 연결이 종료되었습니다.


================================================== ====

이메일 계정 생성 스크립트
================================================== ====
#!
/빈/배시
에코
에코 -n -e “아이디: ”
ID 읽기
에코 -n -e “비밀번호: ”
비밀번호 읽기
에코
echo -n -e “( ID : $id ) ( PW : $pw ) 확인? (y/n) : ”
답변 읽기
if ( “$answer” = “y” ) || ( “$Answer” = “Y” ); 그 다음에
7
useradd -G 12 -s /sbin/nologin $id
// 입력한 ID 값으로 계정을 생성합니다.


에코 $pw | /usr/bin/passwd –stdin $id
// 명령줄을 사용하여 계정의 비밀번호를 설정합니다.


다른
1번 출구
파이
echo “$id@domain $id” >> /etc/mail/virtusertable
// 예) Echo “[email protected] $id” >> /etc/mail/virtsertable
// 새로 만든 계정을 /etc/mail/virtusertable에 추가합니다.


// 계정에 추가된 사용자가 사용할 도메인을 설정합니다.

makemap 해시 /etc/mail/virtusertable < /etc/mail/virtusertable
// makemap을 사용하여 virtusertable 파일을 데이터베이스로 변환합니다.


chsh -s /bin/bash $id
// 로그인을 활성화하려면 chsh 명령을 사용하여 계정 셸을 /bin/bash로 변경합니다.


센드메일 서비스 재시작
// 모든 설정을 마친 후 sendmail 서비스를 다시 시작합니다.


================================================== ====

//설명이므로 주석 줄을 제거하고 vi sendmailuseradd.sh를 수행합니다.

chmod 755 sendmailuseradd.sh
./sendmailuseradd.sh로 실행합니다.

================================================== ====
./sendmailuseradd.sh

식별자: testtest
PW: 테스트 테스트

( ID : testtest ) ( PW : testtest ) 네? (y/n): 예
./sendmailuseradd.sh: 줄 11:7: 명령을 찾을 수 없음
사용자 testtest의 비밀번호 변경
passwd: 모든 인증 토큰을 성공적으로 업데이트했습니다.


테스트 테스트를 위해 쉘을 교환합니다.


쉘이 변경되었습니다.


sendmail을 다시 시작합니다(systemctl을 통해): ( OK )
================================================== ====

구성 파일에 대한 설명

/usr/sbin/sendmail Sendmail 데몬 실행 파일
/etc/init.d/sendmail Sendmail을 시작하는 스크립트 파일
/etc/sysconfig/sendmail sendmail 대기열에 대한 구성 파일
/etc/mail/sendmail.cf 기본 Sendmail 구성 파일
/etc/mail/local-host-names 이메일을 처리하는 도메인에 대한 정보를 기록하는 파일.
/etc/mail/access 액세스 제어 구성 파일
/etc/mail/domaintable 도메인 매핑을 위한 구성 파일
/etc/mail/mailertable 메일 경로 변경 구성 파일
/etc/mail/virtualtable 가상 사용자 테이블에 대한 구성 파일