본문 바로가기

스터디/R&D

리눅스 sendMail 대량메일 설정

대량 메일 시스템 개선 및 발송 결과


1. RDNS(Reverse DNS) 신청


 * Reverse DNS의 기본 용도는 해당 IP의 서버가 실제로 등록되어 있는지를 확인.

 * 일반적으로 메일 서비스에서 스팸메일을 차단할 때 메일 발송 서버의 IP를 역방향(Reverse DNS) 조회해서 Reverse DNS가 등록된 서버의 메일만 수신을 허용하는 방식으로 사용.

 * 특정 메일주소로 발송 시 RDNS 체크 오류(존재하지 않음)로 인해 메일이 전송되지 않는 증상 발생

=> 해외 메일서버로 메일을 보내려면 사용중인 메일서버 IP에 대해 Reverse DNS(PTR Record)가 등록 되어 있어야 수신이 될 가능성이 높다. 

   2018-08-29 오후 4시경 KT(kornet) DNS 작업 요청함.


2. 메일 서버 신설 


a. 시스템(System)

ADPRINT 마케팅용으로 메일서버가 최근에 신설되었습니다.
메일서버의 대량 메일 발송을 위한 시스템 설정을 하였습니다.

* 기본 SendMail 설정.

* 큐 병렬 처리

* 큐 발송 프로세스 생성(데몬 실행)

참고 사이트 : http://stoplulker.blogspot.com/2014/06/sendmail.html


b. 클라이언트(Client)

* 단일 쓰레드가 아닌 멀티 쓰레드 Parallel.ForEach 루프를 사용함. 

 - Proccess / core의 수를 기반으로 최적의 스레드 수를 산출. 

* 단일 SMTP 연결 처리를 15개의 STMP 연결 처리로 변경.

 - 15개의 SMPT의 배열을 순차적으로 

=> 병렬 처리로 인해 평균 처리 시간을 단축시킵니다.

3. 클라이언트(client)에서 메일 발송 결과를 받아볼 수는 없다. 


* 백엔드 코드에서 메일 서버에 메시지를 전송했다면 예외가 발생하지 않는 한 성공이라고 가정할 수 밖에 없습니다.

* 클라이언트(Client)에서는 "메일 서버에 메시지를 전송했다."까지만 확인할 수 있습니다. 

* SendCompleted 이벤트를 사용하여 SmtpClient가 동작하는지 확인은 할 수 있습니다. 하지만 메시지를 보낸다는 확인을 받을 수 없습니다.


4. 이메일이 발송되지 않는 조건


* 스팸 필터에 의해 차단

* 컨텐츠 용량 제한 (현재 defalut=0, 제한없음)

* RCPT 도메인 허용 목록에 없는 IP


5. 결과 


* 메일 전송 속도가 떨어지지 않고 안정성 있게 전송을 목표. * 기존 처리 시간보다 2배정도 빠른 결과를 보일 것으로 예상. * RDNS(Reverse DNS) 등록 완료를 기다리는 중. * 추후 대량 메일 발송 이슈가 생길 때 다시 체크할 예정.


6. 리눅스 명령어 및 참고 사이트


○ 메일서버 셋팅

  http://kkanari.org/wiki/wiki.php/FC2_MailServer


○ sendmail.cf 파일 설정
http://uple.net/376
※ LogLevel도 포함되어있음.


○ sendmail 시작/중지/재시작/상태보기

기능service 명령어/etc/init.d/
시작service sendmail start/etc/init.d/sendmail start
정지service sendmail stop/etc/init.d/sendmail stop
재시작service sendmail restart/etc/init.d/sendmail restart
상태보기service sendmail status/etc/init.d/sendmail status

○ mqueue에 쌓인 메일 일괄 삭제
rm /var/spool/mqueue/* -f


 Sendmail 587포트 추가
 ※ https://idchowto.com/?p=30791

○ sendmail 메일 보낸 이력
모든 출력 메일은에 의해 기록되어야합니다 /var/log/maillog - 출력 메일을 처리하는 방법이 하나 뿐이며, sendmail 시스템을 통해 보내는 메일을 확인하십시오 /etc/mail.

○ sendmail 송수신 장애처리
https://idchowto.com/?p=2867

'스터디 > R&D' 카테고리의 다른 글

대량메일 발송 결과  (0) 2018.09.07
개발방법론 - 애자일(Agile)  (0) 2015.06.21