2016-03-11 4 views
-1

Я пытаюсь отправить электронное письмо через PHPMailer. Я распаковал файл PHPMailer на сервер и получил этот код. У меня есть дополнительное «требование», как было предложено в других сообщениях, касающихся повешения при отправке.PHPMailer - Hangs

Он читает код, как будто я пропускаю «тело». Я получаю сообщение об ошибке.

Я пробовал несколько примеров разного кода, как показано ниже, и все зависает. Я добавил и изменил и теперь сдался! У меня есть простая кнопка, вызывающая этот код, и браузер (попробованный несколько) просто зависает. Любые идеи, что я делаю неправильно?

require 'PHPMailer/PHPMailerAutoload.php'; 
require 'PHPMailer/class.smtp.php'; 

$mail = new PHPMailer; 

$mail->isSMTP();    // Set mailer to use SMTP 

$mail->Host = 'smtp.eastlink.ca'; // Specify main and backup SMTP servers 

$mail->Username = '[email protected]';     // SMTP username 

$mail->Password = '*******';       // SMTP password 

$mail->From = '[email protected]'; 

$mail->FromName = 'bob'; 

$mail->addAddress('[email protected]', 'D');  // Add a recipient 

$mail->addReplyTo('[email protected]', 'Information'); 

$mail->isHTML(true);   // Set email format to HTML 

$mail->Subject = 'Here is the subject'; 

$mail->Body = 'This is the HTML message body <b>in bold!</b>'; 

$mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; 

if(!$mail->send()) { 

    echo 'Message could not be sent.'; 

    echo 'Mailer Error: ' . $mail->ErrorInfo; 

} else { 

    echo 'Message has been sent'; 

} 
+0

Вам не нужно, что дополнительный требуется. Не зависеть от ВСЕГО - есть много плохих советов. Идите [прямо к источнику] (https://github.com/PHPMailer/PHPMailer), используйте примеры, прочитайте документы. – Synchro

ответ

0

Вы, кажется, не указав порт,

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

$mail->SMTPAuth = true; 
$mail->Port = 25; 

См: http://my.eastlink.ca/customersupport/internet/faqs/email.aspx

Согласно EastLink Doc, при подключении с беспроводным устройством (не разделяется):

Тип сервера: SMTP Порт: 465 или 587 Имя сервера: smtp.eastlink.ca Использование STARTTLS

Так Попытка:

$mail->SMTPAuth = true; 
$mail->Port = 465; 
$mail->SMTPSecure = 'ssl'; 
// OR 
$mail->SMTPSecure = 'tls'; 
+0

Вам не нужно: PHPMailer по умолчанию указывает на порт 25. – Synchro

+0

Код все еще отсутствует: $ mail-> SMTPAuth = true; –

+0

Благодарим за помощь! Я добавил строки в качестве предложения, и я получаю сообщение: Extension missing: openssl Ошибка Mailer: расширение отсутствует: openssl Похоже, мне нужно отредактировать файл php.ini. еще раз спасибо –