대량 메일 시스템 개선 및 발송 결과
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 |