2012-04-09 1 views
3

У меня есть два счета:SMTP не работает с PHP мэйлера класса

[email protected]
[email protected]

и

Входящий POP3: pop.secureserver .net (995)
Исходящий SMTP: smtpout.secureserver.net (80, 3535, 25, 465)

Они работают с помощью почтовых клиентов, как Thunderbird, почтовый ящик, и т.д., но не с PHP-почтовик:

 error_reporting(0); 
     require_once ("class.phpmailer.php");// PHP MAILER FOR SENDING EMAILS 

     $mail = new PHPMailer(); 

     define('EMAIL_HOST','smtpout.secureserver.net'); 
     define('EMAIL_USER','[email protected]'); 
     define('EMAIL_PASSWORD','xxxxxxxx'); 

     $mail->IsSMTP();      
     $mail->Port  = 465;    
     $mail->Host  = EMAIL_HOST;  
     $mail->Username = EMAIL_USER;  
     $mail->Password = EMAIL_PASSWORD; 
     $mail->SMTPAuth = true;    

     $mail->FromName = "Administrator"; 
     $mail->From = "Administrator"; 
     $mail->AddAddress($email); 
     $mail->WordWrap = 50; 
     $mail->IsHTML(true);  
     $mail->Subject = "Seating Arrangements on Event"; 
     $mail->Body  = "Dear WeddingWire Customer"; 

     if($mail->Send()) return "true";   

     return "false"; 
+0

у вас отсутствует 'if' закрывающая скобка') '. Это опечатка? –

+0

1. У вас есть синтаксическая ошибка в файле, 2. Прошу прокомментировать error_reporting (0); чтобы узнать, может ли код получить правильный путь к классу почтовой программы PHP – Pete

+0

error_reporting (0); просто для того, чтобы скрыть все предупреждения от устаревших методов из класса php-mailer. файл включен, объект создан отлично и без SMTP, функция isMail() класса php-mailer отправляет почту. но я должен использовать SMTP и должен аутентифицировать пользователя. –

ответ

7

У вас проверено $ mail-> SMTPSecure = 'ssl'? некоторые SMTP-серверы нуждаются в этом.

Проверьте ошибку с помощью $ mail-> ErrorInfo sometime дает подсказку.

+0

, а также попробуйте $ mail-> SMTPSecure = 'tls'; если выше не работает. – scalopus

+0

Спасибо, $ mail-> SMTPSecure = 'ssl' работал, но $ mail-> SMTPSecure = 'tls' не работал, это была моя проблема. – baptx

0

С сервера, на котором размещен этот файл, действительно ли правильно разрешает smtpout.secureserver.net? Попытайтесь проверить это и, видя, если IP-адрес, что вы ожидаете

Запрещая что я PHPMailer() использует исключения, если передать его «истинный» параметр, поэтому попробовать что-то вроде:

$mail = new PHPMailer(true); 
try 
{ 
    $mail->IsSMTP();      
    $mail->Port  = 465;    
    $mail->Host  = EMAIL_HOST;  
    $mail->Username = EMAIL_USER;  
    $mail->Password = EMAIL_PASSWORD; 
    $mail->SMTPAuth = true;    

    $mail->FromName = "Administrator"; 
    $mail->From = "Administrator"; 
    $mail->AddAddress($email); 
    $mail->WordWrap = 50; 
    $mail->IsHTML(true);  
    $mail->Subject = "Seating Arrangements on Event"; 
    $mail->Body  = "Dear WeddingWire Customer"; 
    $mail->Send(); 
} catch(phpmailerException $e) { 
    echo $e->errorMessage(); 
    exit(0); 
} 

Это должно в аренду дайте вам понять, какая ошибка была выбрана.

1

Используя эту информацию, вы настроить PHPMailer как это:

$mail->SMTPAuth = true; // enable SMTP authentication 
$mail->SMTPDebug = 2; // enables SMTP debug 
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier 

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

  1. Имеет ли ваш хост разрешение на ретрансляцию через SMTP-хост?
  2. Требуется ли вашему хосту POP перед SMTP?
  3. Требуется ли вашему хосту SMTP-аутентификация?
Смежные вопросы