2015-07-08 3 views
1

Я использую этот пример кода, предоставленного в PHPMailer. Во-первых, код выполняется очень медленно (по крайней мере 1-2 минуты загрузки в браузере), а затем дает мне некоторые ошибки.Сервер, очень медленно реагирующий на PHPMailer gmail SMTP

<?php 
/** 
* This example shows settings to use when sending via Google's Gmail servers. 
*/ 

//SMTP needs accurate times, and the PHP time zone MUST be set 
//This should be done in your php.ini, but this is how to do it if you don't have access to that 
date_default_timezone_set('Etc/UTC'); 

require 'phpmailer/PHPMailerAutoload.php'; 

//Create a new PHPMailer instance 
$mail = new PHPMailer; 

//Tell PHPMailer to use SMTP 
$mail->isSMTP(); 

//Enable SMTP debugging 
// 0 = off (for production use) 
// 1 = client messages 
// 2 = client and server messages 
$mail->SMTPDebug = 2; 

//Ask for HTML-friendly debug output 
$mail->Debugoutput = 'html'; 

//Set the hostname of the mail server 
$mail->Host = 'smtp.gmail.com'; 

//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission 
$mail->Port = 587; 

//Set the encryption system to use - ssl (deprecated) or tls 
$mail->SMTPSecure = 'tls'; 

//Whether to use SMTP authentication 
$mail->SMTPAuth = true; 

//Username to use for SMTP authentication - use full email address for gmail 
$mail->Username = "[email protected]"; 

//Password to use for SMTP authentication 
$mail->Password = "myPassword"; 

//Set who the message is to be sent from 
$mail->setFrom('[email protected]', 'Andrew Mathew'); 

//Set an alternative reply-to address 
$mail->addReplyTo('[email protected]', 'Andrew Mathew'); 

//Set who the message is to be sent to 
$mail->addAddress('[email protected]', 'John Doe'); 

//Set the subject line 
$mail->Subject = 'PHPMailer GMail SMTP test'; 

//Read an HTML message body from an external file, convert referenced images to embedded, 
//convert HTML into a basic plain-text alternative body 
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); 

//Replace the plain text body with one created manually 
$mail->AltBody = 'This is a plain-text message body'; 

//Attach an image file 
//$mail->addAttachment('images/phpmailer_mini.png'); 

//send the message, check for errors 
if (!$mail->send()) { 
echo "Mailer Error: " . $mail->ErrorInfo; 
} else { 
echo "Message sent!"; 
} 
?> 

Ошибки я получаю IS-

SMTP ОШИБКА: Не удалось подключиться к серверу: (0) SMTP подключения() не удалось. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Ошибка Mailer: сбой SMTP connect(). https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Я разрешил моей учетной записи gmail использовать менее безопасное приложение Google. Есть ли какие-либо другие изменения, которые мне нужно сделать на моем сервере или в файлах конфигурации php, чтобы сделать эту работу?

P.S. Я ничего не установил на своем сервере, я только что загрузил PHPMailer из GitHub и поместил его в свой рабочий каталог.

+0

Попробуйте установить $ mail-> isHTML (true) – Djip

+0

Не работает! То же самое происходит. Может быть, моя библиотека php ошибочна? Должен ли я переустановить apache на моем сервере? –

+0

Можете ли вы вставить все HTML-файлы, которые выводит PHPMailer? – Djip

ответ

1

Это не ошибка PHPMailer, это проблема с вашим сервером. Если вы прочитали документы по устранению неполадок, связанные с сообщением об ошибке (почему это именно так), это даст вам несколько советов, чтобы попытаться выяснить, что не так с вашей связью. Вероятно, сбой DNS-поиска не выполняется или ваша сеть не выпускает вас.

Установка SMTPDebug=3 предоставит несколько отладочных выходов нижнего уровня, относящихся к соединению.

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