PHPMailer не работает

Добрый день!

Я скачал класс PHPMailer с кодовой страницы Google: http://code.google.com/a/apache-extras.org/p/phpmailer/. Я запускаю это с помощью:

PHP 5.2.14 (cli) (built: Jul 27 2010 10:49:36)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

На машине с Windows 7 я использую следующий тестовый код:

require("PHPMailer_5.2.1/class.phpmailer.php");

$mail = new PHPMailer();  

$mail->IsSMTP();
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.live.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "password";

$mail->From     = "[email protected]";
$mail->AddAddress("[email protected]");  

$mail->Subject  = "Subject";
$mail->Body     = "Hi!";

if(!$mail->Send()) {
echo 'Message was not sent.';
echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent.';

Я также уверен, что пароль и имя пользователя верны, но я получаю следующую ошибку:

Message was not sent.Mailer error: The following From address failed: [email protected]

Что я делаю неправильно?

Заранее спасибо!


person Jori    schedule 12.08.2012    source источник
comment
возможный дубликат PHPMailer не работает: сообщение не может быть отправлено   -  person mario    schedule 12.08.2012
comment
Я включил openssl. расширение=php_openssl.dll...   -  person Jori    schedule 12.08.2012
comment
Это единственный адрес, на который вы не можете отправить электронное письмо, или он не работает с каждым письмом, которое вы пробовали?   -  person biziclop    schedule 12.08.2012
comment
убедитесь, что вы можете подключиться к этому порту с сервера, например telnet smtp.live.com 587 или что-то подобное.   -  person deej    schedule 12.08.2012
comment
Джори, вы пытались также изменить протокол ssl на tls?   -  person Stano    schedule 12.08.2012
comment
Попробую это! Кроме того, 587 является правильным портом.   -  person Jori    schedule 12.08.2012


Ответы (1)


Я не использую live.com, поэтому я протестировал ваш скрипт на своей учетной записи gmail, и он работал хорошо. Вы можете убедиться, что у вас установлены правильные имя пользователя и пароль для вашей учетной записи live.com. . Или вы можете попробовать установить $mail->SMTPSecure = 'tls'; Это хорошо работает с gmail:

require("PHPMailer_5.2.1/class.phpmailer.php");
$mail = new PHPMailer();  
$mail->IsSMTP();
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Username = "[email protected]";
$mail->Password = "yourPassword";
$mail->From     = "[email protected]";
$mail->AddAddress("[email protected]");
$mail->Subject  = "Subject";
$mail->Body     = "Hi!";
if(!$mail->Send()) {
    echo 'Message was not sent.';
    echo 'Mailer error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent.';
}
person Stano    schedule 12.08.2012
comment
Добавление $mail-›SMTPSecure = 'tls'; сделал работу! - person Jori; 12.08.2012