2012-03-05 101 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将拒绝发送地址未附加到帐户的电子邮件。