|
@@ -0,0 +1,495 @@
|
|
|
+<?php
|
|
|
+namespace app\api\controller\v1;
|
|
|
+
|
|
|
+use app\api\controller\Base;
|
|
|
+use app\hander\HelpHander;
|
|
|
+use PHPMailer\PHPMailer\Exception;
|
|
|
+use PHPMailer\PHPMailer\PHPMailer;
|
|
|
+use think\Db;
|
|
|
+use tools\Oaimap;
|
|
|
+
|
|
|
+class Email extends Base
|
|
|
+{
|
|
|
+
|
|
|
+ // 新增
|
|
|
+ public function save(){
|
|
|
+ model('Email')->add();
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 编辑
|
|
|
+ public function update(){
|
|
|
+ model('Email')->edit();
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 列表
|
|
|
+ public function list(){
|
|
|
+ $page = input('page/d',1);
|
|
|
+ $size = input('size/d',10);
|
|
|
+ $title = input('title','','trim');
|
|
|
+ $status = input('status/d',0);
|
|
|
+ $ret = model('Email')->lists($page,$size,$title,$status,$this->orgId);
|
|
|
+ HelpHander::success($ret);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function login(){
|
|
|
+ $email = Db::name('user_email')->where('active',1)->where('user_id',$this->userId)->value('email');
|
|
|
+ if(!$email){
|
|
|
+ HelpHander::error('未设置邮箱账号或邮箱账号被禁用,请联系管理员');
|
|
|
+ }
|
|
|
+ $res = model('Email')->login($email);
|
|
|
+
|
|
|
+ HelpHander::success(['url'=>$res]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function loginIpmc(){
|
|
|
+ $email = 'ipmc@dr-ipmc.org.cn';
|
|
|
+ $res = model('Email')->login($email);
|
|
|
+
|
|
|
+ HelpHander::success(['url'=>$res]);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 新消息数量
|
|
|
+ public function newMessage(){
|
|
|
+ $email = Db::name('user_email')->where('active',1)->where('user_id',$this->userId)->value('email');
|
|
|
+ if(!$email){
|
|
|
+ HelpHander::success([
|
|
|
+ "count" => 0,
|
|
|
+ "unseenCount" => 0,
|
|
|
+ "uidNext" => 0,
|
|
|
+ "newMessage" => []
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ $res = model('Email')->newMessage($email);
|
|
|
+
|
|
|
+ HelpHander::success($res);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 删除
|
|
|
+ public function del(){
|
|
|
+ $id = input('id/d',0);
|
|
|
+ model('Email')->del($id);
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 批量更新通讯录
|
|
|
+ public function batchTel(){
|
|
|
+ set_time_limit(0);
|
|
|
+ ini_set("memory_limit","2048M");
|
|
|
+
|
|
|
+ model('Email')->batchTel();
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取文件夹列表
|
|
|
+ public function getFolders(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/getFolders';
|
|
|
+ $ret = curl_post($url,['token' => $uemail['token']]);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取邮件列表
|
|
|
+ public function getMessages(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'page' => input('page/d',1),
|
|
|
+ 'size' => input('size/d',10),
|
|
|
+ 'keyword' => input('keyword','','trim'),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/getMessages';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ private function checkEmail(){
|
|
|
+ $uemail = Db::name('user_email')->where('user_id',$this->userId)->find();
|
|
|
+ if(!$uemail){
|
|
|
+ HelpHander::error('改用户未设置邮箱');
|
|
|
+ }
|
|
|
+ $uemail['password'] = think_decrypt($uemail['password']);
|
|
|
+ $uemail['name'] = Db::name('user_info')->where('user_id',$this->userId)->value('name');
|
|
|
+
|
|
|
+ $token = think_encrypt(json_encode(['email'=>$uemail['email'],'password'=>$uemail['password']]),'',20);
|
|
|
+ $uemail['token'] = $token;
|
|
|
+ return $uemail;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 发送邮件
|
|
|
+ public function send(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'subject' => input('subject','','trim'),
|
|
|
+ 'body' => input('body','','trim'),
|
|
|
+ 'to' => input('to','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'cc' => input('cc','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'bcc' => input('bcc','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'attachment' => input('attachment','','trim'),
|
|
|
+ 'bookTime' => input('bookTime','','trim'),
|
|
|
+ 'priority' => input('priority/d',0),
|
|
|
+ 'dnt' => input('dnt/d',0), // 0=不回复 1=回复
|
|
|
+ 'messageFolder' => input('messageFolder','','trim'),// 编辑草稿箱时填写
|
|
|
+ 'messageUid' => input('messageUid','','trim'), // 编辑草稿箱uid
|
|
|
+ 'draftInfo' => input('draftInfo','','trim'), // draftInfo,有值时传,回复、转发 {"type":"reply","uid":1,"folder":"INBOX"}
|
|
|
+ 'inReplyTo' => input('inReplyTo','','trim'), // 回复、转发,messageId
|
|
|
+ 'references' => input('references','','trim'),// 回复、转发,messageId
|
|
|
+ 'dsn' => input('dsn/d',0),// 0=发送成功不回复 1=发送成功回复
|
|
|
+ ];
|
|
|
+ $data['fromName'] = $uemail['name'];
|
|
|
+ $data['fromEmail'] = $uemail['email'];
|
|
|
+ if($data['bookTime'] && strtotime($data['bookTime']) <= time()){
|
|
|
+ HelpHander::error('定时时间不能小于当前时间');
|
|
|
+ }
|
|
|
+ if(!$data['subject']){
|
|
|
+ HelpHander::error('未填写主题');
|
|
|
+ }
|
|
|
+ if(!$data['to']){
|
|
|
+ HelpHander::error('未填写收件人');
|
|
|
+ }
|
|
|
+
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/sendMessage';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'发送成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存草稿箱
|
|
|
+ public function saveMessage(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'subject' => input('subject','','trim'),
|
|
|
+ 'plain' => input('plain','','trim'),
|
|
|
+ 'body' => input('body','','trim'),
|
|
|
+ 'to' => input('to','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'cc' => input('cc','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'bcc' => input('bcc','','trim'), // [{"email":"hzd@dr-ipmc.org.cn","name":"hzd"}]
|
|
|
+ 'attachment' => input('attachment','','trim'),
|
|
|
+ 'bookTime' => input('bookTime','','trim'),
|
|
|
+ 'priority' => input('priority/d',0),
|
|
|
+ 'dnt' => input('dnt/d',0), // 0=不回复 1=回复
|
|
|
+ 'messageFolder' => input('messageFolder','','trim'),// 编辑草稿箱时填写
|
|
|
+ 'messageUid' => input('messageUid','','trim'), // 编辑草稿箱uid
|
|
|
+ 'draftInfo' => input('draftInfo','','trim'), // draftInfo,有值时传,回复、转发 (type-uid-folder reply-1-INBOX)
|
|
|
+ 'inReplyTo' => input('inReplyTo','','trim'), // 回复、转发,messageId
|
|
|
+ 'references' => input('references','','trim'),// 回复、转发,messageId
|
|
|
+ 'dsn' => input('dsn/d',0),// 0=发送成功不回复 1=发送成功回复
|
|
|
+ ];
|
|
|
+
|
|
|
+ $data['fromName'] = $uemail['name'];
|
|
|
+ $data['fromEmail'] = $uemail['email'];
|
|
|
+
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/saveMessage';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function messageSetSeen(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'setAction' => input('setAction/d',0),
|
|
|
+ 'uids' => input('uids','','trim'),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/messageSetSeen';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function messageSetSeenToAll(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'setAction' => input('setAction/d',0),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/messageSetSeenToAll';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function messageSetFlagged(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'setAction' => input('setAction/d',0),
|
|
|
+ 'uids' => input('uids','','trim'),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/messageSetFlagged';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function messageDelete(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'uids' => input('uids','','trim'),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/messageDelete';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function messageMove(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'uids' => input('uids','','trim'),
|
|
|
+ 'fromFolder' => input('fromFolder','INBOX','trim'), // 默认是收件箱
|
|
|
+ 'toFolder' => input('toFolder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/messageMove';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function folderClear(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'folder' => input('folder','INBOX','trim'), // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/folderClear';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success([],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ //最近联系人
|
|
|
+ public function recent(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/recent';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data'],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ //企业通讯录
|
|
|
+ public function addressBook(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/addressBook';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data'],'操作成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function createEml($data,$from){
|
|
|
+ $date = date('D, d M Y H:i:s');
|
|
|
+ $data['date'] = $date;
|
|
|
+ $altbody = strip_tags($data['body']);
|
|
|
+ $messageId = md5(json_encode($data));
|
|
|
+ $partend = get_rand_num().'.'.time();
|
|
|
+ $part1 = '1_'.$partend;
|
|
|
+ $emlstr = "Mime-Version: 1.0".PHP_EOL;
|
|
|
+ $emlstr .= "Date: ".$date.' +0800'.PHP_EOL;
|
|
|
+ $emlstr .= "Content-Type: multipart/mixed;".PHP_EOL;
|
|
|
+ $emlstr .= " boundary=\"--=_Part_{$part1}\"".PHP_EOL;
|
|
|
+ $emlstr .= "Message-ID: <{$messageId}@localhost>".PHP_EOL;
|
|
|
+ $emlstr .= "X-Mailer: Postfix".PHP_EOL;
|
|
|
+ if($data['book_time']){
|
|
|
+ $emlstr .= "TimedSendDate: 1".PHP_EOL;
|
|
|
+ }
|
|
|
+ $emlstr .= 'From: "=?utf-8?B?'.base64_encode($from['name']).'?=" <'.$from['email'].'>'.PHP_EOL;
|
|
|
+ $tos = json_decode($data['to'],true);
|
|
|
+ $tostr = [];
|
|
|
+ foreach ($tos as $k=>$v){
|
|
|
+ $str = '';
|
|
|
+ if($v['name']){
|
|
|
+ $str .= '"=?utf-8?B?'.base64_encode($v['name']).'?=" <'.$v['email'].'>';
|
|
|
+ }else{
|
|
|
+ $str .= '<'.$v['email'].'>';
|
|
|
+ }
|
|
|
+ $tostr[] = $str;
|
|
|
+ }
|
|
|
+ $emlstr .= 'To: '.implode(',',$tostr).PHP_EOL;
|
|
|
+ $ccs = json_decode($data['cc'],true);
|
|
|
+ if($ccs){
|
|
|
+ $ccstr = [];
|
|
|
+ foreach ($ccs as $k=>$v){
|
|
|
+ $str = '';
|
|
|
+ if($v['name']){
|
|
|
+ $str .= '"=?utf-8?B?'.base64_encode($v['name']).'?=" <'.$v['email'].'>';
|
|
|
+ }else{
|
|
|
+ $str .= '<'.$v['email'].'>';
|
|
|
+ }
|
|
|
+ $ccstr[] = $str;
|
|
|
+ }
|
|
|
+ $emlstr .= 'Cc: '.implode(',',$ccstr).PHP_EOL;
|
|
|
+ }
|
|
|
+ $bccs = json_decode($data['bcc'],true);
|
|
|
+ if($bccs){
|
|
|
+ $bccstr = [];
|
|
|
+ foreach ($bccs as $k=>$v){
|
|
|
+ $str = '';
|
|
|
+ if($v['name']){
|
|
|
+ $str .= '"=?utf-8?B?'.base64_encode($v['name']).'?=" <'.$v['email'].'>';
|
|
|
+ }else{
|
|
|
+ $str .= '<'.$v['email'].'>';
|
|
|
+ }
|
|
|
+ $bccstr[] = $str;
|
|
|
+ }
|
|
|
+ $emlstr .= 'Bcc: '.implode(',',$bccstr).PHP_EOL;
|
|
|
+ }
|
|
|
+ if($data['dnt'] == 1){
|
|
|
+ $emlstr .= 'Disposition-Notification-To: '.$from['name'].PHP_EOL;
|
|
|
+ $emlstr .= 'X-Confirm-Reading-To: '.$from['name'].PHP_EOL;
|
|
|
+ }
|
|
|
+ if($data['priority'] == 1){
|
|
|
+ $emlstr .= 'X-Priority: 1 (Highest)'.PHP_EOL;
|
|
|
+ }
|
|
|
+ $emlstr .= 'Subject: =?utf-8?B?'.base64_encode($data['subject']).'?='.PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.'----=_Part_'.$part1.PHP_EOL;
|
|
|
+
|
|
|
+ $part2 = '2_'.$partend;
|
|
|
+ $emlstr .= "Content-Type: multipart/alternative;".PHP_EOL;
|
|
|
+ $emlstr .= " boundary=\"--=_Part_{$part2}".PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.'----=_Part_'.$part2.PHP_EOL;
|
|
|
+ $emlstr .= 'Content-Type: text/plain; charset="utf-8"'.PHP_EOL;
|
|
|
+ $emlstr .= 'Content-Transfer-Encoding: quoted-printable'.PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.quoted_printable_encode($altbody).PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.'----=_Part_'.$part2.PHP_EOL;
|
|
|
+
|
|
|
+ $emlstr .= 'Content-Type: text/html; charset="utf-8"'.PHP_EOL;
|
|
|
+ $emlstr .= 'Content-Transfer-Encoding: quoted-printable'.PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.quoted_printable_encode($data['body']).PHP_EOL;
|
|
|
+ $emlstr .= PHP_EOL.'----=_Part_'.$part2.'--'.PHP_EOL;
|
|
|
+
|
|
|
+ // 附件
|
|
|
+// $emlstr .= PHP_EOL.'----=_Part_'.$part1.PHP_EOL;
|
|
|
+// $emlstr .= 'Content-Type: image/png; name="favicon.png"'.PHP_EOL;
|
|
|
+// $emlstr .= 'Content-Disposition: attachment; filename="favicon.png"'.PHP_EOL;
|
|
|
+// $emlstr .= 'Content-Transfer-Encoding: base64'.PHP_EOL;
|
|
|
+// $emlstr .= PHP_EOL.base64_encode(file_get_contents('./favicon.png')).PHP_EOL;
|
|
|
+// $emlstr .= PHP_EOL.'----=_Part_'.$part1.'--'.PHP_EOL;
|
|
|
+
|
|
|
+
|
|
|
+ file_put_contents('./email/'.date('Ymd_').$messageId.'.eml', $emlstr);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取邮件
|
|
|
+ public function getMessageByUid(){
|
|
|
+ $uemail = $this->checkEmail();
|
|
|
+ $data = [
|
|
|
+ 'token' => $uemail['token'],
|
|
|
+ 'uid' => input('uid','','trim'),
|
|
|
+ 'folder' => input('folder','INBOX','trim') // 默认是收件箱
|
|
|
+ ];
|
|
|
+ $config = config('app.email');
|
|
|
+ $url = $config['host2'].'Email/getMessageByUid';
|
|
|
+ $ret = curl_post($url,$data);
|
|
|
+ if(!$ret){
|
|
|
+ HelpHander::error('数据获取失败');
|
|
|
+ }
|
|
|
+ $ret = json_decode($ret,true);
|
|
|
+ if($ret['code'] != 0){
|
|
|
+ HelpHander::error($ret['message']);
|
|
|
+ }
|
|
|
+ HelpHander::success($ret['data']);
|
|
|
+ }
|
|
|
+}
|