2014-02-14 4 views
0

Мне нужно отправить почту через Gmail, но я не знаю, как настроить phpmailer. Когда я использую 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 = "[email protected]"; // SMTP server username 
    $mail->Password = "mypassword";   // SMTP server password 

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

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

    $mail->From  = "[email protected]"; 
    $mail->FromName = "First Last"; 

    $to = "[email protected]"; 

    $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(); 
} 
?> 

Я получаю эту ошибку:

Could not execute: /var/qmail/bin/sendmail

+0

Вы смотрели на [любой из них] (https://www.google.com/#q=Could+not+execute%3A+%2Fvar % 2Fqmail% 2Fbin% 2Fsendmail)? –

+0

Что такое ОС сервера? – SaidbakR

ответ

0

Помимо того, что Sendmail не может быть вызывался правильно, вы пытаетесь подключиться к порту 25. Вы не можете этого сделать. smtp.gmail.com требует: SSL - он не является обязательным.

0

С командой $mail->isSMTP() вы выбираете SMTP как транспорт.

Но перед отправкой почты вы возвращаетесь к использованию локальной установки sendmail с $mail->isSendmail().

Не делайте этого, и ваша текущая ошибка исчезнет. Вероятно, может появиться новая.

0

Вы должны использовать порт 465 для Gmail

$mail->Port  = 465;  
Смежные вопросы