首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >收件箱中没有显示由office365 rest发送的消息附件。

收件箱中没有显示由office365 rest发送的消息附件。
EN

Stack Overflow用户
提问于 2017-07-11 12:23:43
回答 1查看 373关注 0票数 0

我使用Office365RESTAPI并发送附件,当我将附件发送到除office 365邮件(gmail.com、yahoo.com等)以外的任何电子邮件地址时,然后在收件箱中看到附件,但如果office 365邮件只显示内容。

谢谢你,尚卡尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 11:55:47

我可以发送附件到office 365和雅虎,gmail等使用rest的office 365。

附件数组需要创建如下

代码语言:javascript
复制
     <?php
      $k=0;
         $attchmentArr=array();
        foreach($requestjson['name'] as $file){
                $attchmentArr[]=array(
                     "@odata.type"=> "#Microsoft.OutlookServices.FileAttachment",
                    "Name"=> $file,
                    "ContentBytes"=> $requestjson['content_bytes'][$k],
                );
          $k++;  
        }
?>

您需要创建一个数组,如下所示。

代码语言:javascript
复制
<?php
 $post_data=array(
             "Message"=>array(
                 "Subject"=>$requestjson['subject'],
                 "Body"=>array(
                     'ContentType'=>'HTML',
                     'Content'=> $requestjson['message'],
                 ),
                 "From"=>array(
                     "EmailAddress"=>array(
                         'Name'=>$fromName[0],
                         'Address'=>CARE_ACOCUNT
                     )
                 ),
                "ToRecipients"=>array(
                      array(
                          "EmailAddress"=>array(
                                        'Name'=>$toName[0],
                                        "Address"=>$requestjson['to_address']
                                    )
                            )
                  ),
                  "Attachments"=>$attchmentArr,
             ),
            "SaveToSentItems"=> "true"
         );
?>

然后用卷发发送邮件

代码语言:javascript
复制
<?php
$url="https://outlook.office365.com/api/beta/me/sendmail";
  $post_data = json_encode($post_data);
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL,$url);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
            curl_setopt($ch, CURLOPT_USERPWD, CARE_ACOCUNT . ':' . CARE_PASS);
            curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_HTTPHEADER, $post_header);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);          

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            $response = curl_exec($ch);
            $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            $response = json_decode($response, true);  

            $status_arr=array(200,201,202,204);           
            curl_close($ch);
            if(in_array($status,$status_arr)){
                return $response;
            } else {
                return 'error';
            }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45034552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档