2011-07-30 4 views
0

Zend Framework를 사용하여 Gmail에서 메일을 보내려고했지만 사용자 이름과 비밀번호를 거부 한 것 같습니다. gmail.com에 로그인하고 Outlook 등으로 로그인).PHP Zend 오류가있는 Gmail SMTP를 통해 메일 보내기 - UGFzc3dvcmQ6

내 PHP 코드는 다음과 같습니다

<?php 

$tr = new Zend_Mail_Transport_Smtp("smtp.gmail.com",array('user' => '****@gmail.com', 'password' => '****', 'auth' => 'login', 'ssl' => 'TLS')); 
Zend_Mail::setDefaultTransport($tr); 

$mail = new Zend_Mail(); 
$mail->setFrom('[email protected]', 'Some Sender'); 
$mail->addTo('****@hotmail.com', 'Some Recipient'); // my Hotmail account 
$mail->setSubject('Test Subject'); 
$mail->setBodyText('This is the text of the mail.'); 

try { 
    $sent = $mail->send($tr); 
} catch (Zend_Mail_Exception $e) { 
    die($e); 
} 

?> 

젠드에 의해 throw 예외는 다음과 같습니다

exception 'Zend_Mail_Protocol_Exception' with message 'UGFzc3dvcmQ6 
' in C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail\Protocol\Abstract.php:431 
Stack trace: 
#0 C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail\Protocol\Smtp\Auth\Login.php(95): Zend_Mail_Protocol_Abstract->_expect(235) 
#1 C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail\Protocol\Smtp.php(217): Zend_Mail_Protocol_Smtp_Auth_Login->auth() 
#2 C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail\Transport\Smtp.php(200): Zend_Mail_Protocol_Smtp->helo('localhost') 
#3 C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail\Transport\Abstract.php(348): Zend_Mail_Transport_Smtp->_sendMail() 
#4 C:\Users\Admin\Documents\Wamp\bin\php\php5.3.0\lib\Zend\Mail.php(1194): Zend_Mail_Transport_Abstract->send(Object(Zend_Mail)) 
#5 C:\Users\Admin\Documents\Wamp\www\Reader\scripts\modules\mail\send.php(63): Zend_Mail->send(Object(Zend_Mail_Transport_Smtp)) 
#6 {main} 

젠드 \ 메일 \ 프로토콜 \ Abstract.php로 전환되어 나는 전체 $에 errmsg는 것을 발견 : base64로 인코딩하지만 "fx12sm2756834wbb.59"는 무엇을 의미 하는가, 어떻게 "암호"

UGFzc3dvcmQ6 
5.7.1 Username and Password not accepted. Learn more at     
5.7.1 http://mail.google.com/support/bin/answer.py?answer=14257 fx12sm2756834wbb.59 

나는 UGFzc3dvcmQ6는 것을 알고 오류를 해결할 수 있습니까? SSL 또는 SSL 또는 포트 또는 서버를 변경해야합니까? 아니면 다른 계정으로 시도해야합니까?

+0

다른 메일 서버 (예 : 인터넷 제공 업체의 메일 서버)를 사용하여 메일을 보내려고하면 어떻게됩니까? – Arjan

+0

@Arjan PHP mail()을 허용하는 웹 호스트에 대한 액세스 권한이 없으며 localhost에서만이 스크립트를 사용합니다. gmail이 아닌 다른 메일을 사용하여 보내는 것을 의미하지 않는다면? - 내 hotmail 계정에 연결하려고했지만 "5.0.0 Authentication Failed"가 나타납니다. – Zendmailer

답변

0

보내는 메일에 SSL/OAuth를 사용해야하고 Google에서 설정하는 방법에 대해서는 this page입니다. 그들은 또한 당신이 SSL을 필요로한다고 설명하는 problems sending mail에 대한 페이지를 가지고 있습니다 (그리고 이메일 클라이언트를 구성하는 방법에 대한 다른 페이지로의 링크).

Zend 메일에 대해 잘 모르는 경우 SSL을 사용하도록 구성 할 수 있습니다.

+0

TLS를 SSL로 변경하면 같은 오류가 발생합니다. OAuth를 최선의 방법으로 시도하고 있습니까? - 다른 메일 계정도 사용하고 싶습니다. 또한 [google의 oauth 페이지] (http://code.google.com/apis/gmail/oauth/code.html)의 PHP에있는 링크가 손상된 것 같습니다. – Zendmailer

+0

이상하게도 모든 샘플 페이지 (Java, Python, PHP) 및 해당 다운로드가 저에게 효과적입니다. 나는 거기에 어떤 부서지는 연결을 얻지 않는다. TSL 및 SSL이 작동하지 않으면 OAuth를 시도해야합니다. Google OAuth PHP 샘플 다운로드 (zip 파일) 링크 : http://google-mail-xoauth-tools.googlecode.com/files/xoauth-php-samples.zip. 링크가 나를 위해 작동, 나는 압축 파일을 얻을하고 그것을 추출 할 수 있습니다. – Arjan

+0

도와 주셔서 감사합니다. 페이지는 저를 위해 지금 일하고있다, 그러나 나는 Zend 대신에 PHPMailer 및 [Sendmail] (http://www.joshstauffer.com/send-test-emails-with-wampserver/)를 사용하여 원한 것을 얻었다. – Zendmailer

관련 문제