2015-02-01 3 views
0

Меня беспокоит функция отправки почты с использованием phpmailer, работающего на localhost.Phpmailer не работает из localhost (XAMPP)

Я использую XAMPP, phpmailer

$mail->IsSMTP() или $mail->IsSendmail() хорошо работает на хостинге, но не локальный.

Я пытался много решения упоминались в Интернете, например, позволил OPENSSL (extension=php_openssl.dll)

For using $mail->IsSendmail() of phpmailer, it shown "Could not execute: /usr/sbin/sendmail". 

For using $mail->IsSMTP() with well configured, all are setting correctly. 

Это показывает

"SMTP Error: Could not authenticate.", 

Я имел информацию от своего отладчика, есть информация "...SMTP -> ERROR: Password not accepted from server:..."

Но у них не было проблем с живым хостингом, просто не работало на localhost.

Надеюсь, что кто-то может дать мне некоторую идею. Большое спасибо.

ответ

-2

Скачать & УСТАНОВИТЬ PHPMailer

https://github.com/PHPMailer/PHPMailer Экстракт class.phpmailer.php и class.smtp.php раскомментируйте , расширение = php_openssl.dll в php.ini нормально расположен под xampp/php/ folder найти [почтовая доставка] и изменение (Для Microsoft)

SMTP=smtp.gmail.com 
smtp_port=465 
sendmail_from = [email protected] 
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 

Редактировать class.smtp.php, хост и порт параметры, такие как (для Linux): $ хост = "SSL: //smtp.gmail.com" $ порта = 465

[редактировать удаление Sendmail PARAMS]

Пример кода для отправки почты:

<?php 
require_once "phpmailer/class.phpmailer.php"; 
$mail = new PHPMailer(); 
$mail->IsSMTP(); // send via SMTP 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // Enter your SMTP username 
$mail->Password = "yourpassword“; // SMTP password 
$webmaster_email = "[email protected]"; //Add reply-to email address 
$email="[email protected]"; // Add recipients email address 
$name="name"; // Add Your Recipient’s name 
$mail->From = $webmaster_email; 
$mail->FromName = "Webmaster"; 
$mail->AddAddress($email,$name); 
$mail->AddReplyTo($webmaster_email,"Webmaster"); 
$mail->WordWrap = <strong>50</strong>; // set word wrap 
$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment 
$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // attachment 
$mail->IsHTML(true); // send as HTML 

$mail->Subject = "This is your subject"; 

$mail->Body =  "Hi, this is your email body, etc, etc" ;  //HTML Body 

$mail->AltBody = "Hi, this is your email body, etc, etc";  //Plain Text Body 
if(!$mail->Send()){ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
echo "Message has been sent"; 
} 
?> 
+0

Много плохого совета здесь, я боюсь. PHPMailer долгое время не поддерживался в коде Google - [получите его из github] (https://github.com/PHPMailer/PHPMailer). Код (устаревший) пример был испорчен кавычками culy. Настройки gmail неверны. Параметры sendmail.ini не имеют значения, потому что вы используете прямой SMTP. – Synchro

+0

Я ответил слишком быстро, я не исправил параметры googles или кавычек в коде, и я забыл абзац на sendmail, который я окончательно удалил, потому что я согласен, что это не очень полезно. хочу идти слишком быстро. Я забываю исправить свои ошибки, извините - «. –

1

isSendmail вряд ли будет работать на Windows - используйте isMail, если у вас установлен локальный почтовый сервер, и если да, убедитесь, что он запущен и работает (например, telnet localhost 25). isSMTP отправляет напрямую и не зависит от конфигурации локальной почты, поэтому он работает для вас. Вы также должны read the troubleshooting docs.

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