最近需要在项目开发的oa中集成一个收发腾讯企业邮箱邮件的功能,今天做到了获取收件箱内容部分,imap如何获取就不写了,百度一堆,主要是关于内容的解码

主要以邮件主题解码为主,腾讯企业邮返回的数据主要有以下几种格式

1."subject": "=?UTF-8?B?5o+Q6YaS77yB77yB5pys5pyI5pyJ5pyq5o+Q5Lqk5pel5oql77yB?="

2."subject": "=?utf-8?Q?5YWz5LqO5YWs5Y+457uE57uH5p625p6E6LCD5pW0?="

3."subject": "=?gb2312?Q?2017=C4=EA10=D4=C2=B9=A4=D7=CA=CC=F5?="

4."subject": "=?GB2312?B?sr/K8Mnqx+u1pQ==?="

主要是分为utf8以及gb2312这两种,后面分别带着B跟Q,代表是base64_decode解码或者是quoted_printable_decode,代码如下

//解析主题    public function editSubject($value){        $valuearr1 = explode('?',$value);  //通过问号分割字符串,获取到有用的数据        if($valuearr1[1] == 'UTF-8' || $valuearr1[1] == 'utf-8'){            if($valuearr1[2] == 'Q'){                return quoted_printable_decode($valuearr1[3]);            }else{                return base64_decode($valuearr1[3]);            }        }else if($valuearr1[1] == 'GB2312' || $valuearr1[1] == 'gb2312'){            if($valuearr1[2] == 'Q'){                return iconv('gb2312','UTF-8//IGNORE',quoted_printable_decode( $valuearr1[3]));            }else{                return iconv('gb2312','UTF-8//IGNORE',base64_decode( $valuearr1[3]));            }        }else{            return $value;        }    }

因为当前的代码环境及文件格式都是utf8的,所以需要将所有的gn2312都通过iconv转为utf8,否则返回数据给前端时会出现问题,另外这个方法对于非utf8及gb2312以外的情况作了特殊处理,直接返回原数据,以后遇到这种特殊情况不会报错,可以直接看到方便后续补充

ps:imap进行收件操作,效率真的很低,很慢。。只获取20封邮件大概从请求接口到发起imap到接受数据(不包括解析,数据只包括信件标头)需要7秒以上(保守估计,受网络影响很严重),如果使用imap直接获取单个邮件内容,需要8-10秒,视情况而定,很坑。。

转载于:https://www.cnblogs.com/lsz920210/p/8177465.html

php通过imap获取腾讯企业邮箱信息后的解码处理相关推荐

  1. python程序下载腾讯企业邮箱附件_获取腾讯企业邮箱通讯录python脚本(带登录功能)...

    之前的 帖子 加入了 @ sdc1992 提供的登录部分 根据邮箱和密码,获取企业通讯录 运行后会生成两个文件 一个只包含邮箱,可以用于后续爆破 一个为部门名称 和 部门下的员工邮箱的树形结构,可以方 ...

  2. 腾讯企业邮箱OpenApi

    一.发送http请求的工具类 import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; ...

  3. 腾讯企业邮箱API实现单点登录和获取企业未读邮件

    应公司要求在ERP平台的OA系统上显示企业邮箱的未读邮件数量,并且实现单点登录.也就是点击数字可以直接进入腾讯企业邮箱不用登录.既然用到这个API肯定大家也都有腾讯企业邮箱OpenApi协议v1.4文 ...

  4. 腾讯企业邮箱支持 pop/imap/exchange服务器地址(用于客户端)

    腾讯企业邮箱支持 pop/imap/exchange 协议从邮件服务器上获取邮件的信息.下载邮件等. IMAP/SMTP 协议 接收邮件服务器:imap.exmail.qq.com ,使用 SSL,端 ...

  5. python获取未读邮箱数目_利用腾讯企业邮箱开放API获取账户未读邮件数初探

    1 /// 2 ///POST时用到的几个数据3 /// 4 public structPostData5 {6 /// 7 ///目标服务器地址8 /// 9 public stringurl;10 ...

  6. 邮件客户端用IMAP还是POP3,为什么?Thunderbird 雷鸟和免费腾讯企业邮箱

    从2023年4月1日起腾讯企业邮箱免费版的容量从2G降到1G,网易企业邮箱免费版也只有1G,所以现实的问题是如何把目前服务器上的所有邮件下载下来? 很久很久以前当网速很慢上网费很贵的时候一直使用POP ...

  7. 腾讯企业邮箱开发(非官方开发文档方式

    ** 之前项目系统中包含了一个邮箱下载模块,其中对接的是腾讯企业邮箱,这个模块前后也维护了不短时间,想写下这篇文章来聊聊具体问题,如果有需要对接腾讯企业邮箱的需求,同时官方给予的开发文档无法满足需求, ...

  8. 腾讯企业邮箱api java_腾讯企业邮全新API,五大新接口上线_腾讯企业邮箱服务中心...

    为了更好地支持企业拓展.定制邮箱的功能,腾讯企业邮推出全新的开放接口规范,对旧API接口进行全面升级.新API接口在接口规范.接口能力.接口安全等各方面都得到显著提升. 管理端工具箱的"开放 ...

  9. php 操作 腾讯企业邮箱设置发邮件,纯代码实现WordPress使用腾讯企业邮箱发送邮件...

    为什么选择腾讯企业邮箱,其中有个非常优秀的功能,就是可以绑定在腾讯云购买的域名为邮箱的域名,这样子看起来邮箱会更加的正统一点.另一个就是可以直接绑定到QQ邮箱,相对来说平时读邮件的时候回显得更加方便. ...

  10. 腾讯企业邮箱java-收发邮件

    腾讯企业邮箱-收邮件 package com.hzsmk.ocr.service;import java.io.IOException; import java.io.InputStream; imp ...

最新文章

  1. DevExpress的对话框XtraMessageBox的使用
  2. ASP.NET浏览器跨域
  3. Python笔记-对字符串进行URL编码及解码
  4. Linux 下进入含空格的目录(以及文件夹名开头为`(`)
  5. vasp软件全名是什么_vasp软件主要功能
  6. SOEM Ethercat在TI DSP RTOS上的移植
  7. 太极root权限_太极iOS 8.4完美越狱曝安全隐患:Root权限易获取
  8. java防止sql注入的几个途径_Java防止SQL注入的几个途径
  9. python导入鸢尾花数据集_python 鸢尾花数据集报表展示
  10. Android--NFC读写
  11. eclipse集成阿里代码规范工具p3c
  12. 56ip数字标牌软件
  13. 很强大的上网行为管理终端软件-云子可信-一键禁止访问视频网站
  14. 超细节的对比学习和SimCSE知识点
  15. linux修改BCD文件,关于BCDEdit 命令的使用
  16. 如何 拆 贴片电容 而不是把焊盘给搞坏
  17. Openwrt switch vlan配置
  18. Server Error in ‘/‘ Application.问题解决
  19. php快手开发平台api签名
  20. php使用microtime(true)查看代码执行时间

热门文章

  1. 恭喜马斯克、纳德拉当选美国工程院院士,张宏江、方岱宁入选外籍院士
  2. java.lang.RuntimeException
  3. 怎样搭建serveru ftp个人服务器
  4. Xcode5 创建模板和UIView 关联XIB
  5. 利用C++的多态写一个电脑组装的具体实现
  6. 最网最全python框架--scrapy(体系学习,爬取全站校花图片),学完显著提高爬虫能力(附源代码),突破各种反爬
  7. 解决 No module named 'tensorflow_serving' 问题
  8. 硬盘分区大学计算机,电脑硬盘容量要怎么选?又要怎么硬盘合理分区?今天我再说一次!...
  9. build Variants创建不同配置的app(图文详解)
  10. java内存泄露 垃圾回收_Java中内存泄露及垃圾回收机制