CI 묻고 답하기

제목 [초보]대량메일전송에 관하여
글쓴이 헛발이 작성시각 2009/12/17 09:18:11
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 30081   RSS
CI랑은 무관하게 메일시스템에 관해서 질문을 해도 괜찮을런지..
주변에 생각이 통하는 사람들이 없어서... ^^;

일단 하고 싶은것은 다른 리눅스를 이용하거나 다른 어플리케이션을 짜서 이용하는 메일시스템이 아니고
순수 PHP 또는 CI 나 mysql만 이용하려 만들고 싶습니다.

가장 쉽게 생각할 수 있는것은 예를 들어 회원테이블에서 메일주소를 불러와서
받는사람 메일주소에 ,(콤마)를 이용하여 보내도 되지만 그렇게 하면 받는 사람들의 정보에 누구누구한테 보냈는지
보이잖아요... 그래서 그것은 싫고...

회원메일주소를 불러와서 Loop를 돌면서 한껀 한껀 보내도 되지만... 이렇게 되면 100,000건이 되면 서버가 서버리거나
타임아웃이 걸리게 될듯 싶기도 하고..

대량으로 메일 보내는 PHP프로그램을 만들려면 어떤 방식으로 만드는게 좋은지.. 그 방법론을 알고 싶은데요..
혹시 아시는 분이 있으신가요?

 다음글 [초보] db접속시 문제 (6)
 이전글 급합니다. Session 에러 (3)

댓글

변종원(웅파) / 2009/12/17 12:58:58 / 추천 0
서버에 sendmail이 아니라 qmail이 셋팅되어있다면 몇만건 정도는 소켓이용해서 보내도 큰 무리가 없습니다.
예전에 20만건을 웹서버에서 보낼때 시간을 체크해보면 qmail이 sendmail보다 보통 2, 3배정도 빨랐습니다.
방식은 단순하게 100건 단위로 소켓전송, 잠시 쉬었다가 다시 전송. 반복.
건수가 많아지만 어차피 웹에서는 보내기 힘들구요. 서버에서 cron으로 돌려야합니다.
쉘에서 php -q xx.php 형식으로 크론으로 구동.

푸념댓글 잠시 보니까 메일보낼 대상과 내용을 db에 넣어놓으면 cron이 됐건 c프로그램이 됐건 시시각각 체크를 해서 발송을 해주는 방식인가 봅니다. 1년반째 만들고 있는게 이해가 안되네요. ㅋㅋ 한국 같으면 바로 짤렸을 법합니다. 아니면 대량메일발송 시스템 자체를 만들고 있거나요.
^^
헛발이 / 2009/12/17 15:32:58 / 추천 0

맞아요..cron으로 하고 있다고 했어요...
푸념글 올렸다가.. 괜한 아이같은 하소연 같아서 지웠습니다.. (민망하네요 ㅋㅋ)
정말 이해 안가는 친구에요.. 그렇다고 화면구성이 좋은것도 아니고.. 단순히 로그인 화면과 리스트와 메일폼 만 있으면서 매일 매일 테스트 하네.. 서버정검하네..보안설정하네...상사들 한테는 영어로 전문용어만 풀어대면서.. 윈도에서 IE쓰는 사람들은 Low레벨의 사람취급하네요..
한번은 네트워이 좀 느려진거 같다.. 했더니...(딱 느끼잖아요.. 느려지면..) 그랬더니 하는 말이 저는 불법S/W써서 그렇다네요.. ㅡ.ㅡ;
 

헛발이 / 2009/12/17 15:41:14 / 추천 0
그러면요.. cron으로 한다는 말은 어떤 방식인가요?
DB에 10,000건을 넣어 두고.. crom으로 .php파일을 1분에 한번씩 실행 시켜 주는건가요?
그리고 그 .php에서는 아직 안 보낸 100건을 Loop로 보내는건가요?
그게 궁굼해요... ^^;
변종원(웅파) / 2009/12/17 15:41:21 / 추천 0

어느 회사에나 가끔 있을 법한 유형이네요.
경주마가 쓰는 시선고정용 안경(?)같은 것을 쓰고 있는 사람.

변종원(웅파) / 2009/12/17 15:47:07 / 추천 0
cron은 윈도우의 예약실행 같은 겁니다. 몇시 몇분에 어떤 프로그램을 실행하라하던가
매일 새벽 4시에 어떤 프로그램을 실행하라라던가 하는 리눅스 프로그램입니다.
5분단위로 mail.php를 실행하게 해놓고 그 프로그램이 db에 있는 내용을 읽어서
메일을 발송한다. 이게 끝입니다.
안에서는 루프를 돌겠죠. 소켓으로 날리던지 메일함수를 쓰던지 smtp도 직접 이용하는게 있었던거 같은데..
헛발이 / 2009/12/17 15:54:11 / 추천 0
음...그렇군요...별루 어려워 보이지 않는데.. ^^; 암튼 고맙습니다..
제가 디자인쪽에서 프로그램쪽으로 전향한 사람이여서 조금씩은 들어본 적이 있지만..
썩 능통하지가 않네요.. ^^;