2012-01-11 3 views
3

Когда я отправляю через Gmail с помощью phpmailer, письмо отправляет много времени, а иногда и не идет. Я использую XAMPP как localhost.Электронная почта через PHPMailer медленная

Вот мой код:

if($_POST['submit']{ 
/*MAIL PART BEGINS*/ 

     //error_reporting(E_ALL); 
     error_reporting(E_STRICT); 

     date_default_timezone_set('America/Toronto'); 

     require_once('class.phpmailer.php'); 
     //include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded 

     $mail    = new PHPMailer(); 

     $body    = "Your Password has been generated.<p />"; 
     $body    .="New Password = '$password'<p />"; 
     $body    .="Please Login with your Employee ID and this password and you can change the password at any time."; 
     //$body   .="Amount Requested = '$amount'<p />"; 
     //$body   .="Amount Sanctioned = '$amount_sanctioned'<p />"; 
     $body    = eregi_replace("[\]",'',$body); 

     $mail->IsSMTP(); // telling the class to use SMTP 
     $mail->Host  = "stmp.gmail.com"; // SMTP server 
     $mail->SMTPDebug = 1;      // enables SMTP debug information (for testing) 
             // 1 = errors and messages 
             // 2 = messages only 
     $mail->SMTPAuth = true;     // enable SMTP authentication 
     $mail->SMTPSecure = "ssl";     // sets the prefix to the servier 
     $mail->Host  = "smtp.gmail.com";  // sets GMAIL as the SMTP server 
     $mail->Port  = 465;     // set the SMTP port for the GMAIL server 
     $mail->Username = "[email protected]"; // GMAIL username 
     $mail->Password = "******";   // GMAIL password 

     $mail->SetFrom('[email protected]', 'First Last'); 

     $mail->AddReplyTo("[email protected]","First Last"); 

     $mail->Subject = "Change Password"; 

     //$mail->AltBody = "Hello...!!!"; // optional, comment out and test 

     $mail->MsgHTML($body); 

     $address = "$email"; 
     //$address1 = "[email protected]@hotmail.com"; 
     //$address2 = "[email protected]@rediffmail.com"; 
     //$address3 = "[email protected]@iicb.res.in"; 
     $mail->AddAddress($address, "First Last"); 
     //$mail->AddAddress($address1, "First Last"); 
     //$mail->AddAddress($address2, "First Last"); 
     //$mail->AddAddress($address3, "First Last"); 



     //$mail->AddAttachment("images/phpmailer.gif");  // attachment 
     //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment 

     if(!$mail->Send()) { 
      echo "Mailer Error: " . $mail->ErrorInfo; 
     } else { 
      echo "Message sent!"; 
     } 
     //MAIL PART ENDS*/ 
} 

ответ

0

У меня было, что тоже: Это потому, что PPHmailer работает с uniqid() создавать свои граничные строки, которые, на некоторых хостах, очень медленно. Добавив параметр 2. more_entropy в true, я решил эту проблему.

В файле class.phpmailer.php вокруг line 1379:

public function CreateHeader() { 
    $result = ''; 

    // Set the boundaries 
    $uniq_id = md5(uniqid(time(), true)); // adding 2. param more_entropy (true) 
    // .... 

Из документов

uniqid:

more_entropy

Если установлено значение TRUE, uniqid() добавит дополнительную энтропию (с использованием комбинированного линейного конгруэнтного ial generator) в конце возвращаемого значения , что увеличивает вероятность того, что результат будет уникальным.

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