Email through PHPMailer is slow

风格不统一 提交于 2019-12-21 05:36:19

问题


When I am sending via Gmail using phpmailer, the email is taking a long time to send and also sometimes it is not going. I am using XAMPP as localhost.

Here is my Code:

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   = "my_username@gmail.com";  // GMAIL username
        $mail->Password   = "******";            // GMAIL password

        $mail->SetFrom('my_username@gmail.com', 'First Last');

        $mail->AddReplyTo("my_username@gmail.com","First Last");

        $mail->Subject    = "Change Password";

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

        $mail->MsgHTML($body);

        $address = "$email"; 
        //$address1 = "my_username@gmail@hotmail.com";
        //$address2 = "my_username@gmail@rediffmail.com";
        //$address3 = "my_username@gmail@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*/
}

回答1:


I had that too:It is because PPHmailer works with uniqid() to create its boundary strings, which, on certain hosts, is very slow. By adding the 2. parameter more_entropy to true, I solved that problem.

In the file class.phpmailer.php around line 1379:

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

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

From the docs

uniqid:

more_entropy

If set to TRUE, uniqid() will add additional entropy (using the combined linear congruential generator) at the end of the return value, which increases the likelihood that the result will be unique.



来源:https://stackoverflow.com/questions/8815088/email-through-phpmailer-is-slow

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!