phpmailer无法正常工作

时间:2014-02-14 21:00:58

标签: php email phpmailer

我必须通过Gmail发送邮件,但我不知道如何配置phpmailer。 当我使用phpmailer时,它会给我一个未经过身份验证但电子邮件和密码为真的错误。

以下是代码:

require '../class.phpmailer.php';

try {
    $mail = new PHPMailer(true);                 //New instance, with exceptions enabled

    $body             = file_get_contents('contents.html');
    $body             = preg_replace('/\\\\/','', $body); //Strip backslashes

    $mail->IsSMTP();                             // tell the class to use SMTP
    $mail->SMTPAuth   = true;                    // enable SMTP authentication
    $mail->Port       = 25;                      // set the SMTP server port
    $mail->Host       = "smtp.gmail.com";        // SMTP server
    $mail->Username   = "yuliy.x.95@gmail.com";  // SMTP server username
    $mail->Password   = "mypassword";            // SMTP server password

    $mail->IsSendmail();                         // tell the class to use Sendmail

    $mail->AddReplyTo("k.yuliy@yahoo.it","First Last");

    $mail->From       = "name@domain.com";
    $mail->FromName   = "First Last";

    $to = "k.yuliy@yahoo.it";

    $mail->AddAddress($to);

    $mail->Subject  = "First PHPMailer Message";

    $mail->AltBody  = "To view the message, please use an HTML compatible email viewer!";                                            // optional, comment out and test
    $mail->WordWrap = 80;                      // set word wrap

    $mail->MsgHTML($body);

    $mail->IsHTML(true);                         // send as HTML 

    $mail->Send();
    echo 'Message has been sent.';
} catch (phpmailerException $e) {
    echo $e->errorMessage();
}
?>

我收到此错误:

  

无法执行:/ var / qmail / bin / sendmail

3 个答案:

答案 0 :(得分:0)

除了可能没有正确调用sendmail这一事实外,您还在尝试连接到端口25.您无法做到这一点。 smtp.gmail.com 需要 SSL - 它不是可选的。

答案 1 :(得分:0)

使用命令$mail->isSMTP(),您选择SMTP作为传输。

但在发送邮件之前,您将切换回使用$mail->isSendmail()的本地sendmail安装。

不要这样做,你当前的错误就会消失。可能会出现一个新的。

答案 2 :(得分:0)

您需要将端口465用于Gmail

$mail->Port       = 465;