문제

전용 IP를 과부하시키지 않고 하나의 PHP 스크립트 요청에서 약 3000 개 이상의 이메일을 보낼 수있는 방법이 있습니까?

당신이 나를 얻지 못하면 .. 여기에 자세한 내용이 있습니다 :)

전용 IP를 통해 Mail () 함수를 통해 500 개의 이메일 만 보낼 수 있습니다. 예를 들어 이메일 주소에서 가져온 3000 행의 이메일을 보낼 수있는 방법이 있습니까? 시간당 500 ...

이미 감사합니다!

도움이 되었습니까?

해결책

테이블 2 개, 하나는 이메일 메시지와 하나는 수신자 목록을 만듭니다. 그런 다음 메시지 테이블에 새 메시지가 있는지 확인하고 다음 수신자 세트에 이메일 배치를 보내는 경우 CRON이 실행할 스크립트를 만듭니다. 메일이 전송 된 후 각 수신자를 표시합니다.

그런 다음 클라이언트가 메시지를 작성하고 메시지를 메시지에 첨부 할 수있는 웹 인터페이스를 작성하고 사용자가 메시지를 클릭 할 준비가 된 것으로 표시하면 메시지를 선택하여 처리합니다.

CRON 작업을 보내야 할 메시지가 없으면 아무것도하지 않습니다.

다른 팁

전화 사이에서 잠을 잘 수 있거나 이미 데이터베이스에있는 경우 보낸 시점에 필드를 넣을 수 있습니다. 그런 다음 보내지 않은 것을 선택하고 거기서부터 시작합니다.

마지막 이메일이 각 사용자에게 전송되었을 때 표시하기 위해 DB에 필드를 넣었습니다. 또한 보낸 각 이메일을 보여줄 다른 DB 테이블이 있고 아직 모든 사용자에게 전송 된 경우 아직 전송되었습니다.

User Table:
Id, UserName, Email, etc, DateTimeOfLastEmail, LastEmailId

Email Table:
Id, EmailSubject, EmailContent, DateTimeSent, SentToAll(True/False), DateTimeOfFinish

모든 답변에 감사드립니다! 내가 찾은 가장 좋은 방법은 실제로 400 개의 우편물을 테스트 할 때 Sleep ()을 사용하는 전화 사이에서 단순히 sleep ()를하는 것이 었습니다. 이것은 17 초가 걸렸습니다 :)

사용자가 450 한도 이상을 보낼 가능성은 낮지 만 ... 만약 그렇다면 while ()가 450 행 이상이 있는지 확인하기 전에 if 문을 가지고 있습니다. 충실한 데이터베이스없이 작동합니다 :)

감사!

수학을 한 후에는 8.3 초 (498/hr)마다 이메일을 보낼 수 있지만 문제는 해결되지 않습니다. 또 다른 접근법은 DB를 사용하고 500의 쿼리를 사용하고 매 시간마다 대본을 실행하는 것입니다.

따라서 DB 테이블에서 이메일이 전송 된 후 스크립트를 업데이트 할 수 있으므로 다음 CRON 작업이 쿼리하고 다음 500 개의 이메일을 전송해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top