2016-11-09 2 views
3

У меня есть сайт работы (в CI), и может быть x число лиц, ищущих работу. Что мне нужно сделать, так это отправить ревальные задания в зависимости от категории и местоположения пользователей. Так что есть различное сообщение для разных лиц, ищущих работу. я использую PHPMailer, чтобы отправить по электронной почте на данный момент я сделалКак отправить x номер электронной почты с помощью phpMailer?

$subject = 'Revalent Jobs For Your Profile'; 
foreach ($job_receiving_users as $job_receiving_user){ 
    $this->send_email->send_email(FROM_NOREPLY_EMAIL,ORG_NAME,$job_receiving_user['email'],$job_receiving_user['username'],$subject,$job_receiving_user['message']); 
     $time = time() + 10; 
     while(time() < $time){ 
     // do nothing, just wait for 10 seconds to elapse 
     } 
    } 

(Существует PHPMailer электронного метода внутри библиотеки send_email отправки)

Существует предел 200 электронной почты в час с сервера или может продлить его 500. Что я хочу знать, это хороший способ отправить электронную почту? Если я сохраню разрыв 10 секунд между каждым электронным письмом, он будет поддерживать мой сервер. Все действия sql были выполнены над этим кодом, а $job_receiving_users - это массив электронной почты пользователя, сообщения и имени пользователя, извлеченного выше.

ответ

2

Базовый код на the mailing list example provided with PHPMailer

Что вы делаете в цикле, называется «занят ожидание»; не делай этого. PHP имеет несколько sleep functions; используйте их вместо этого. Например:

$sendrate = 200; //Messages per hour 
$delay = 1/($sendrate/3600) * 1000000; //Microseconds per message 
foreach ($job_receiving_users as $job_receiving_user) { 
    //$this->send_email->send_email(FROM_NOREPLY_EMAIL,ORG_NAME,$job_receiving_user['email'],$job_receiving_user['username'],$subject,$job_receiving_user['message']); 
    usleep($delay); 
} 

Это приведет к тому, что позволяет отправлять сообщение через каждые 18 секунд (200/час), а также использование функции сна будет означать, что потребляет почти не CPU, пока он ждет.

 Смежные вопросы

  • Нет связанных вопросов^_^