我正在开发一个Web应用程序,它将代表已登录的用户发送电子邮件.
我正在尝试使用此处所述的新Gmail OAuth协议通过用户的Gmail帐户发送这些电子邮件(最好使用SMTP而不是IMAP,但我很容易).但是,示例PHP代码给我带来了一些问题.
致命错误:未捕获的异常'Zend_Mail_Storage_Exception',消息'无法更改文件夹,也许它不存在'在path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:467堆栈跟踪:#0 path \到\ xoauth-php-samples\Zend\Mail\Storage\Imap.php(248):Zend_Mail_Storage_Imap-> selectFolder('INBOX')#1 path\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,这是一个有效的传输吗?' 在path\to\xoauth-php-samples\Zend\Mail\Storage\Imap.php:254堆栈跟踪:#0 path\to\xoauth-php-samples\three-legged.php(184):Zend_Mail_Storage_Imap - > __ construct (对象(Zend_Mail_Protocol_Imap))路径中的#1 {main}到第254行的\ xoauth-php-samples\Zend\Mail\Storage\Imap.php
我已经确认我的OAuth令牌很好,我只是不知道如何让实际的电子邮件交易发生.这个协议仍然是新的,因此没有太多关于它的非官方社区文档,官方文档对于SMTP RFC来说是无用的.所以,如果有人能帮助实现这一目标,我将非常感激.
注意:我已经能够通过SSL连接到Gmail的SMTP服务器并成功发送电子邮件,前提是用户已向我的应用程序提供了他/她的Gmail用户名和密码.我想避免这种方法,因为它鼓励网络钓鱼,安全意识的用户不会接受它.这个问题与此无关.
我的应用程序创建了一个mailto-esque链接,该链接将最终用户带到预先填充了各种属性的Hotmail撰写屏幕.我需要的大部分功能都是:to,cc,subject,body.但是,Hotmail似乎正在删除我传递给URL的任何BCC属性.
例如,此链接的工作方式与宣传的一样:
我在To字段中获得一个电子邮件地址,在CC字段中获得两个电子邮件地址.但是,当我尝试使用完全相同的URL而不是将"bcc"替换为"cc"时,这两个地址无处可寻.
此链接格式发布在整个网络上(以及http://mail.live.com/default.aspx?rru=compose%3f [属性]等变体),但我尝试过的各种设置都没有实际上工作带来BCC地址.
我需要BCC,以便电子邮件收件人不会给对方的电子邮件地址.我的常规旧邮件的这个网址版本,以及Gmail和Yahoo Mail,完美地运行.惊喜惊喜.
在CakePHP 1.x/2.x中,通过定义自定义数据源,使模型的数据来自REST API(而不是关系数据库)相当简单.(Neil Crookes的CakePHP-ReST-DataSource-Plugin是一个很好的起点.)在您的模型上压缩您的自定义数据源,您$this->MyModel->find()就像调查一个名为MySQL的表一样进行调用my_models.
我想弄清楚如何在CakePHP 3.0下实现同样的效果.也就是说,对由REST API驱动的表/实体进行find()/ save()/ set()/ get()调用.
由于3.0的ORM系统是A)相当新的,而且B)与旧的做事方式相当大的偏离,我还没有找到关于如何做这样的事情的任何信息.事实上,基于JoséLorenzoRodríguez的SlideShare,听起来似乎不太可能.
这意味着:
- 不会连接到不是关系数据库的东西.
是否有人更熟悉CakePHP 3.0,可以澄清在新的ORM系统下我能找到的东西是否可行?如果是这样,你能解释一下你必须扩展或实现哪些类来实现这样的功能吗?