2014-01-13 6 views
3

Я пытался выяснить, как получить phpMailer для работы в течение последних нескольких часов. Я продолжаю получать ошибки. Вот мой код:Ошибка подключения SMTP-сервера PHPMailer

<?php 
$name = $_REQUEST['name'] ; 
$email = $_REQUEST['email'] ; 
$message = $_REQUEST['message'] ; 

require("class.phpmailer.php"); 
$mail = new PHPMailer(); 
$mail->IsSMTP(); // send via SMTP 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "******@gmail.com"; // SMTP username 
$mail->Password = "******"; // SMTP password 
$host = "smtp.mandrillapp.com"; 
$port = 587; 
$mail->SMTPSecure = 'ssl'; 
$mail->SMTPDebug = 1; 
$webmaster_email = "****@gmail.com"; //Reply to this email ID 
$email= $email; // Recipients email ID 
$name= $name; // Recipient's name 
$mail->From = $webmaster_email; 
$mail->FromName = "University of Life Experiences"; 
$mail->AddAddress($email,$name); 
$mail->AddReplyTo($webmaster_email,"Webmaster"); 
$mail->WordWrap = 50; // set word wrap 
$mail->IsHTML(true); // send as HTML 
$mail->Subject = "ULE"; 
$mail->Body = $message; //HTML Body 
$mail->AltBody = $message; //Text Body 
if(!$mail->Send()) 
{ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else 
{ 
echo "Message has been sent"; 
} 
?> 

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

SMTP ERROR: Failed to connect to server: (0) SMTP connect() failed. Mailer Error: SMTP connect() failed.

Я пытался много различных серверов SMTP, включая Gmail, и я всегда получаю подобную ошибку о неспособности подключиться.

Пожалуйста, помогите, я пробовал много других phpMailer примеров кодов с одинаковой проблемой. Если кто-то может порекомендовать любые другие почтовые программы PHP, которые были бы полезны. Причина, по которой я не использую встроенную функцию mail().

+0

Вы пытаетесь использовать эти smtp с localhost? – Goikiu

+0

Это * все * информация, которую вы получаете даже с 'SMTPDebug = 1'? –

+0

Вы используете размещенный веб-сервер? Возможно, брандмауэр блокирует порт 25. Если вы можете подключиться через ssh, попробуйте «telnet yourserver smtp» и посмотрите, что произойдет. – Jens

ответ

1

Вы не установили хост SMTP (хотя вы объявляете переменную $host). Установите его с помощью:

$mail->host = $host; 

Спасибо @Rikesh за напоминание, $port также тот же случай.

Боковое примечание: я заметил, что вы используете gmail.com в качестве ответного письма, но ваш SMTP-сервер не является gmail. Это может привести к тому, что некоторые почтовые серверы будут помещать вашу электронную почту в папку спама/нежелательной почты.

+1

То же самое для 'port'. – Rikesh

+0

Эй, парень, спасибо за ответ, но я попробовал это, и он не работал, такая же ошибка. Пробовали из WAMP и веб-сервера – user3051223

+0

Вы пытались подключиться к серверу SMTP? – Raptor

1

Попробуйте это, добавив:

$mail->Mailer = "SMTP"; // SMTP Method 

См эту ссылку PHP Mailer help

+0

Не работает, извините, такая же ошибка – user3051223

+0

@Mukil OP уже заявила '$ mail-> IsSMTP(); // отправляем через SMTP'. Кроме того, ссылка, которую вы предоставили, НЕ является официальной документацией. – Raptor

0

Попробуйте изменить номер порта

$port = 587; 

к

$port = 465; 

и проверить, что новая ошибка Эй вы получаете, я уверен, что вы снова не получите ошибку подключения SMTP.

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