2013-05-23 5 views
0

사용자가 내 웹 사이트에서 양식을 제출하면 250 개의 다른 공급 업체 인 모든 활성 공급 업체에 알림 이메일이 전송됩니다. mail() 함수를 사용했지만 양식을 제출할 때 내부 서버 오류가 표시되고 전자 메일이 반복적으로 전송되는 경우가 있습니다. 다른 사용자가 동시에 양식을 제출하려고 시도하면 문제가 발생합니까? 메일 전송 간격을 어떻게 설정할 수 있습니까? mail 기능은 여러 이메일 ID를 받아메일을 보내는 간격을 어떻게 설정할 수 있습니까?

  $emails = mysql_query('select * from supplier_detail where emailquotes = "y" and s_active ="a"'); 

      while($row = mysql_fetch_assoc($emails)){ 

      $to = $row['s_email']; 
      $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= 'From: mysitename <[email protected]' . "\r\n"; 
    mail($to, $subject, $message, $headers); 
    } 

답변

3

PHP : 이 내 코드입니다. 그래서, 당신은 sleep() 기능을 살펴보십시오 commas

$to = array(); 
while ($row = mysql_fetch_assoc($emails)) { 
    $to[] = $row['s_email']; 
} 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: mysitename <[email protected]' . "\r\n"; 
mail(implode(",", $to), $subject, $message, $headers); 
0

로 구분 모든 메일 ID를 가진 문자열을 만들 수 있습니다, 당신의 코드는 다음과 같을 것이다 :

while($row = mysql_fetch_assoc($emails)) 
{ 
    $to = $row['s_email']; 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $headers .= 'From: mysitename <[email protected]' . "\r\n"; 
    mail($to, $subject, $message, $headers); 
    sleep(1); 
} 

이 1 기다립니다 계속하기 전에 두 번째.

+0

Daanvn, 위의 코드를 사용하여 각 메일 사이에 간격을 설정합니다. sleep (10)을 시도해 봅니다. – user168818

+0

물론 시도해보십시오! – Daanvn

+0

안녕 Daanvn, 나는 반복적으로 이메일을 받고 있습니다. – user168818

0

"last_email_sent"값을 데이터베이스에 저장하고 비교하는 것은 어떻습니까? 그런 다음 마지막으로 보낸 이후 시간이 일정 기간보다 길면 해당 사용자에게만 새 이메일을 보냅니다.

관련 문제