2012-03-05 107 views
0

下面是一個場景;我想用PHP和Zend Framework發送電子郵件。下面是關於如何這通常是一個例子:Zend Framework中的SMTP驗證

$smtp = new \Zend_Mail_Transport_Smtp(array(
    'host'=> 'localhost' 
    , 'auth' => 'login' 
    , 'ssl' => 'TLS' 
    , 'username' => 'john' 
    , 'password' => '123')); 
\Zend_Mail::setDefaultTransport($smtp); 
$mail = new \Zend_Mail(); 
$mail->addTo('[email protected]', 'Jane Smith'); 
$mail->setSubject('Greetings'); 
$mail->setBodyText('Hi there'); 
$mail->setFrom('[email protected]', 'John Smith'); 
$mail->send(); 

我的問題是,如何才能確保在從地址(在這種情況下,「[email protected]」)實際存在和它所屬的用戶名和密碼提供給SMTP連接?因爲如果不是,那麼我可以代表任何人發送電子郵件!

[更新]

我相信我找到了我自己的問題的部分答案。它應該通過IMAP/POP3協議完成。但是,這兩個協議需要輸入用戶名和密碼才能進行身份驗證,因此您無法檢查提供的用戶名和電子郵件地址之間的關聯。所以問題是如何通過PHP和Zend Framework中的IMAP/POP3驗證電子郵件地址?

回答

2

SMTP允許任何人發送電子郵件。這就是爲什麼大多數以安全爲導向的人們推動數字簽名的使用。

驗證可以由SMTP本身完成。例如,Gmail的SMTP將拒絕發送地址未附加到帳戶的電子郵件。