PHP Mailer работает на localhost (MAMP), но не на живом сайте - PullRequest
0 голосов
/ 14 октября 2010

Я учусь делать сайты и собираю простой сайт для бизнеса моих родителей.Я сделал контактную форму, и сообщение было отправлено на электронную почту моих родителей.Я только что посмотрел пример PHP-кода GMail для отправки почты, и он работает, когда я тестирую его с помощью MAMP, но когда я загружаю его на действующий сайт, я получаю эту ошибку:

Ошибка SMTP: возможноне подключаться к узлу SMTP.Ошибка почтовой программы: ошибка SMTP: не удалось подключиться к узлу SMTP.

Почему он не работает на работающем сайте, но работает, когда я тестирую его на MAMP?Вот мой код:

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

$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host       = "myparentswebsite.com"; 
$mail->Mailer = "smtp";      
$mail->Host = "ssl://smtp.gmail.com";  
$mail->Port = 465;

$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "parentswebsite@gmail.com"; // SMTP username
$mail->Password = "paswsword"; // SMTP password

$webmaster_email = "parentswebsite@gmail.com"; //Reply to this email ID
$email= $_POST['email']; // Recipients email ID
$name= $_POST['name']; // Recipient's name 
$mail->From = $webmaster_email;
$mail->FromName = "parentswebsite";
$mail->AddAddress($email,$name);
$mail->AddReplyTo($webmaster_email,"Webmaster");
$mail->WordWrap = 50; // set word wrap

$mail->IsHTML(true); // send as HTML
$mail->Subject = "Feedback from parentswebsite.com";
$mail->Body = $_POST['name']. " " .$_POST['email']. " ". $_POST['phone']. " ". $_POST['message'] ;//HTML Body

echo "it works"; 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "We have received your message!";
}

1 Ответ

1 голос
/ 27 декабря 2010

попробуйте добавить следующее:

$mail->SMTPSecure = "ssl";
$mail->SMTPKeepAlive = true; 

и изменение хоста и порта на

$mail->Host='smtp.gmail.com';
$mail->Port='465';  

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

проверьте, что у вас включены такие функции, как fopen и / или fsockopen

проверьте, включен ли php curl (не уверен насчет этого)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...