невозможно отправить письмо через gmail с помощью php pear mail () - PullRequest
1 голос
/ 17 ноября 2010

Я пытаюсь отправить почту через мою учетную запись gmail с выделенного сервера Godaddy.Я попытался отправить электронное письмо через почтовый сервер моей компании, но Godaddy убивает порт 25 без обходного пути (grrr).

Я искал решение для этого , включая здесь , но не могу отправлять электронные письма.Я всегда получаю сообщение об ошибке «Требуется аутентификация» от Google.

Вот код, который я использую для отправки электронного письма:

include("Mail.php");

/* mail setup recipients, subject etc */

$headers["From"]   = "xxxxx@gmail.com";
$headers["to"]    = "yyyyy@hotmail.com";
$headers["subject"]   = "User feedback";   
$mailmsg    = "Hello, This is a test.";

/* SMTP server name, port, user/passwd */

$smtpinfo["host"]   = "ssl://smtp.gmail.com";   
$smtpinfo["port"]   = 465;    
$smtpinfo["auth"]   = true;    
$smtpinfo["username"]   = "xxxxx@gmail.com";
$smtpinfo["password"]   = "xxxxxx";
$smtpinfo["debug"]  = true;

/* Create the mail object using the Mail::factory method */

// $mail_object =& Mail::factory("smtp", $smtpinfo);
// EDIT -- removed reference   


$mail_object = Mail::factory("smtp", $smtpinfo);

/* Ok send mail */

$result = $mail_object->send($recipients, $headers, $mailmsg);

if(PEAR::isError($result))
{
 echo "\nerror sending mail: ".PEAR_Error::getCode().' '.PEAR_Error::getMessage();
}
else    
 echo "\nSuccessfully sent mail.";

Вот ответ от груши:

DEBUG: Recv: 250-mx.google.com at your service, [208.109.190.226]
DEBUG: Recv: 250-SIZE 35651584
DEBUG: Recv: 250-8BITMIME
DEBUG: Recv: 250-AUTH LOGIN PLAIN XOAUTH
DEBUG: Recv: 250 ENHANCEDSTATUSCODES
DEBUG: Send: MAIL FROM:<xxxxx@gmail.com>

DEBUG: Recv: 530-5.5.1 Authentication Required. Learn more at
DEBUG: Recv: 530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257 t35sm1037116qco.30

Fatal error: Using $this when not in object context in /usr/share/php/PEAR.php on line 970

Любая помощь очень ценится.

Ответы [ 2 ]

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

Решение ... нет решения, так как Годадди занимался блокировкой.Нет способа обойти это, поэтому я в конечном итоге использовал их «одобренный» сервер доставки почты.гррр.

0 голосов
/ 23 ноября 2010

Проблема в следующем коде:

PEAR_Error::getCode().' '.PEAR_Error::getMessage();

Используйте

$result->getMessage()

и

$result->getCode()
...