【问题标题】:Email through PHPMailer is slow通过 PHPMailer 发送电子邮件很慢
【发布时间】:2012-01-11 06:30:21
【问题描述】:

当我使用 phpmailer 通过 Gmail 发送电子邮件时,电子邮件需要很长时间才能发送,有时也无法发送。我使用 XAMPP 作为 localhost。

这是我的代码:

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*/
}

【问题讨论】:

    标签: phpmailer


    【解决方案1】:

    我也有过:这是因为 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:

    更多熵

    如果设置为 TRUE,uniqid() 将添加额外的熵 (使用组合线性同余生成器)在末尾 返回值,这增加了结果的可能性 独一无二。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 1970-01-01
      • 2011-12-19
      • 2018-09-29
      • 1970-01-01
      • 2017-09-23
      • 2011-04-06
      • 1970-01-01
      相关资源
      最近更新 更多