我正在开发一个web应用程序,该应用程序将代表已登录用户发送电子邮件。
我尝试使用Google最新发布的Gmail OAuth协议(描述在这里)通过用户的Gmail帐户发送这些邮件(最好使用SMTP而不是IMAP,但我很容易上手)。
- 所有示例代码都基于IMAP而不是SMTP。如果你不打算向人们展示如何使用SMTP,为什么要"支持"它?
- 示例代码给我的一个致命错误,来自未捕获的Zend异常——它找不到"INBOX"文件夹。
致命错误:未捕获的异常'Zend_Mail_Storage_Exception',信息为'不能更改文件夹,也许它不存在'在路径\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:467中堆栈跟踪:#0路径\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php(248):Zend_Mail_Storage_Imap->selectFolder('INBOX') #1路径\to\xoauth-php-samples\three-legged.php(184):Zend_Mail_Storage_Imap->__construct(Object(Zend_Mail_Protocol_Imap))#2 {main} 下一个异常 'Zend_Mail_Storage_Exception',信息为'无法选择INBOX,这是有效的传输吗?'在路径\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:254中堆栈跟踪:#0路径\to\xoauth-php-samples\three-legged.php(184):Zend_Mail_Storage_Imap->__construct(Object(Zend_Mail_Protocol_Imap))#1 {main} 在路径\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php的第254行
我已经确认收到了好的OAuth令牌,但是我不知道如何进行实际的电子邮件发送操作。由于这个协议还比较新,因此没有太多非官方社区文档介绍,而官方文档则只是关于SMTP RFC的干巴巴的内容,没有什么帮助。如果有人能够帮助我启动它,我将非常感激。
注意:我已经成功地通过SSL连接到Gmail的SMTP服务器并发送电子邮件,前提是用户提供我的应用程序他/她的Gmail用户名和密码。我想避免这种方法,因为它会鼓励网络钓鱼,安全意识强的用户也不会接受它。这个问题不涉及这方面。