加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 从远程主机发送带谷歌应用引擎的电子邮件,如何附加文件?

发布时间:2020-12-13 17:25:52 所属栏目:PHP教程 来源:网络整理
导读:我正在使用谷歌应用引擎发送基于 https://github.com/godsid/appEngineSendMail的电子邮件 所以我从我的远程主机做了一个curl post请求,它确实有效. 但是如何将文件附加到appengine? 这是我的卷曲post_fields $fields = array( 'to' = urlencode($to),'send
我正在使用谷歌应用引擎发送基于 https://github.com/godsid/appEngineSendMail的电子邮件

所以我从我的远程主机做了一个curl post请求,它确实有效.

但是如何将文件附加到appengine?

这是我的卷曲post_fields

$fields = array(
                'to' => urlencode($to),'sender' => urlencode($from),'body' => urlencode($body),'subject' => urlencode($subject),'key' => urlencode('****')
                );

$fields['attachments']= array("@". $_FILES['attachment']['tmp_name']);

我一直在寻找2天的答案…任何帮助或提示表示赞赏

解决方法

问题是我在url_encoding字段数组,这样做是为了防止cURL实际注意到@filename并将文件附加到请求.

所以我不得不提出多部分请求

curl_setopt($ch,CURLOPT_HTTPHEADER,array("Content-type: multipart/form-data"));

并将字段附加到请求而不编码它们

curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);

我在python方面的错误是使用了self.request.get(),它是github上的脚本所使用的,我所基于的那个

所以我不得不使用self.request.post [],就像这样

attachment = self.request.POST["attachment"] #actual attachment file
attachment_name = self.request.POST["attachment_name"] #string value of attahcment name sent from php side
message.attachments = [(attachment_name,attachment.value)]

*注意self.request.get是一个函数,self.request.post是一个数组

希望有一天能帮助别人:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读