2010-02-19 2 views
1

뉴스 레터 시스템을 만들었습니다. 내 질문은 : 내가 그 메일을 수백 개의 이메일 주소로 보내야한다고 생각하면서 코드를 어떻게 작성해야합니까?PHPMailer()로 이메일 보내기

저는 호스트 관리자와상의 한 후 분당 6 개 이하로 메일을 보내야한다고 말했습니다.

$ Timeout 속성을 사용할 수 있습니까? 그렇다면 어떻게?

감사합니다.

+0

Are 같은 메일을 다른 수신자에게 보냈습니까? 또는 모든 사람에게 맞춤 메일을 보내시겠습니까? – PvB

+0

많은 수신자에게 동일한 이메일이 있음 – kmunky

+1

이 경우에는 수신자가 bcc (개인 정보 보호 용)로 추가 된 상태에서 이메일을 한 번만 보내면 smtp- 서버에 많은 양의 부하를 아웃소싱 할 수 있습니다. 그래서, PHP가 모든 메일을 보내지 않고, 하나뿐입니다. Todd가 이미 언급했듯이, Pear Mail은 매우 강력합니다. 아니면, 당신이 그것을 설치할 수 없다면, PHPMailer() 좋은 일을 너무합니다. – PvB

답변

0

배 메일을 사용하면 PHP에서 사람들에게 이메일을 보낼 수 있습니다.

http://pear.php.net/package/Mail/

+0

PEAR 메일에는 PHP 5.3에 많은 문제와 비 호환성이 있습니다. –

3

당신이 (BCC를 사용하는 대신) 우편물 하나 하나를 보낼 경우, 나는 분당 6 개 메일을 전송의 한계를 존중하기 위해 데이터베이스 큐를 사용하십시오 (상관없이 마침내 실제로 메일을 보내기 위해 어떤 솔루션을 사용할 것인가).

예. 당신은받는 사람, 제목, mailbody, lastsenddate, timessent 및 상태를 포함하는 데이터베이스 테이블을 가질 수 있습니다.

모든 메일을 저장하고 데이터베이스로 보내고 1 분에 한 번 실행되는 대기열에 메일이 있는지 확인합니다 (예 : status = "unsend"). . 그런 다음 대기열에서 최대 6 개 (또는 제한이 무엇이든간에) 메일을 선택하여 보내고 상태를 '보내기'로 설정하고 ("timessent"를 늘리고 "lastsenddate"를 실제 시간으로 설정합니다. 같은) 모든 메일이 보내질 때까지 다음 cronjob를 기다린다.

이 방법은 몇 가지 장점이 있습니다

  1. 당신을 존경 할 수는 분당 제한은 데이터베이스에있는 모든 메일이 그들에게 관련 될 수
  2. 나중에 (예를 들어, 얼마나 많은 알 수 있습니다 지난 주 금요일에 발송했거나 특정 주소가 처리되었는지 여부를 확인하기 위해 어떤 메일을 받았는지 그리고 누군가가 메일을받지 못했다고 또는 너무 많이 알았 으면
  3. ) 상태 예를 들어 바운스 처리기를 구현할 수있는 상태 메일이 반송되면 메일 상태가 "반송"되도록 설정하십시오. 나중에 우편물을 다시 보내서 "우편함 가득"메시지를 보낸 주소에 도달 할 수 있습니다. 처음 메시지
  4. 데이터베이스 "startfer"데이터베이스 필드를 추가하여 "지연된 메일 서비스"를 설정하고 send-script가이 날짜를 존중하도록 할 수 있으므로 봄철에 크리스마스 메일을 대기열에 넣을 수 있습니다 :)
+0

이것은 훌륭한 게시물입니다. 모든 cronjob 참조를 찾을 수 있기를 바랍니다. 감사 – kmunky