Вопрос

Пожалуйста, помогите мне, я новичок в PHP, и последние 5 часов я пытаюсь отправить почту и теперь очень устал.Спасибо.

Вот мой код.Я использую учетную запись Gmail.

include("class.phpmailer.php");
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail             = new PHPMailer();

$body             = $mail->getFile('contents.html');
$body             = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$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   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->AddReplyTo("hussaintalha@gmail.com","First Last");

$mail->From       = "hussaintalha@gmail.com.com";
$mail->FromName   = "First Last";

$mail->Subject    = "PHPMailer Test Subject via gmail";

//$mail->Body       = "Hi,<br>This is the HTML BODY<br>";                      //HTML Body
$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 50; // set word wrap

$mail->MsgHTML($body);

$mail->AddAddress("hussaintalha@gmail.com", "John Doe");

$mail->AddAttachment("images/phpmailer.gif");             // attachment

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

if(!$mail->Send()) {
  echo "Mailer Error: " . $mail->ErrorInfo;
} else {
  echo "Message sent!";
}
?>

Когда я запускаю свой файл, я получаю эту ошибку:

Предупреждение:fopen (contents.html) [function.fopen]:Не удалось открыть потоки:Нет такого файла или каталога в D: xampplite htdocs webeng class.phpmailer.php в строке 1870

Предупреждение:fsockopen () [function.fsockopen]:Невозможно подключиться к ssl: //smtp.gmail.com: 465 (невозможно найти транспорт сокета "SSL" - вы забыли включить его, когда вы настроили PHP?) В D: xampplite htdocs webeng class. smtp.php в строке 122 Ошибка почты:Ошибка SMTP:Не удалось подключиться к SMTP-узлу.

Это было полезно?

Решение

Прежде всего, когда вы получаете сообщения об ошибках, это здорово!Потому что в 90% случаев вы обнаружите, что они были и у других, и поэтому вы найдете в Интернете много информации об этом сообщении об ошибке.

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

Тогда о твоих ошибках.Особенно xampp Light не поддерживает SSL.Возможно, вы сначала попробуете более простой пример sendmail.Например, очень маленький, а затем постепенно увеличивайте его.Я всегда так делаю, когда не знаю, почему что-то не работает.Я начинаю с одной строки и смотрю, что она делает, затем добавляю другую и так далее.

Допустим, вы начинаете с этого и смотрите, работает ли это:

<?php

include("class.phpmailer.php");

$mail             = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
$mail->Port       = 465;                   // set the SMTP port for the GMAIL server
$mail->Username   = "hussaintalha@gmail.com";  // GMAIL username
$mail->Password   = "xxxxxxxx";            // GMAIL password

$mail->From       = "hussaintalha@gmail.com";
$mail->Subject    = "PHPMailer Test Subject via gmail";
$mail->Body       = "Hi, this is a test";           
$mail->AddAddress("hussaintalha@gmail.com", "Hussain");

$mail->send();
?>

ох, и кстати.в вашей почте слишком много доменов .com!

Другие советы

Ваша установка PHP (судя по всему, XAMPP) не поддерживает SSL.Убедитесь, что линия

extension=php_openssl.dll

является нет закомментировано в вашем php.ini, перезапустите Apache, и если это по-прежнему не работает, попробуйте перезаписать (или скопировать) ssleay32.dll и libeay32.dll из вашего каталога PHP в двоичный каталог Apache (.exe), а затем перезапустить Apache.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top