Wallogit.com
2017 © Pedro Peláez
新版QQ企业邮箱SDK
新版 QQ 企业邮箱接口 SDK,接口文档 https://exmail.qq.com/qy_mng_logic/doc#10001, (*1)
composer require leo108/qq-exmail -vvv, (*2)
$config = [
'corp_id' => 'CORP_ID',
'corp_secrets' => [
'contact' => '通讯录管理 Secret',
'unique_login' => '单点登录 Secret',
'mail_notice' => '新邮件提醒 Secret',
'function_setting' => '功能设置 Secret',
'system_log' => '日志查询 Secret'
],
'log' => [
'format' => '{method} {url} {code} {res_header_Content-Length}',
'hide_access_token' => true,
],
];
$exmail = new Leo108\QQExmail\QQExmail($config);
// 创建一个新用户, 更多参数请参考 API 文档
$exmail->user->create([
'userid' => 'leo108@exmail.com',
'name' => 'leo108',
'department' => [1],
'password' => 'secret',
'gender' => Leo108\QQExmail\Contact\User::GENDER_MALE, // 如果你不想踩坑,还是乖乖用我提供的常量吧 :)
]);
public function __construct(
array $config = [],
Psr\SimpleCache\CacheInterface $cache = null,
GuzzleHttp\ClientInterface $httpClient = null,
Psr\Log\LoggerInterface $logger = null
)
null。corp_id 可以在企业邮箱的"工具箱"->"应用中心"页面最下方找到。corp_secrets 从"应用中心"页面进入各个应用,可以找到对应的 secret。对于用不到的应用,可以不配置对应的 secret。log.format 定义日志格式,各个字段可以参考 https://github.com/guzzle/guzzle/blob/master/src/MessageFormatter.phplog.hide_access_token 如果设定为 true 则会隐藏日志中 access token 的值,避免 token 泄露。本项目中所有的异常均继承自 Leo108\QQExmail\Core\Exceptions\QQExmailException, (*3)
Leo108\QQExmail\Core\Exceptions\GetAccessTokenException 使用 corp id 和 corp secret 换取 access token 失败Leo108\QQExmail\Core\Exceptions\MissingSecretException 使用应用却没有配置该应用的 secretLeo108\QQExmail\Core\Exceptions\InvalidArgumentException 初始化时传入的配置有误Leo108\QQExmail\Core\Exceptions\ApiException 当 API 接口返回的 errcode 字段不为 0 时抛出创建部门 https://exmail.qq.com/qy_mng_logic/doc#10008, (*4)
$exmail->department->create([
'name' => '技术部',
'parentid' => 1,
]);
更新部门 https://exmail.qq.com/qy_mng_logic/doc#10009, (*5)
$exmail->department->update($departmentId, [
'name' => '技术部',
'parentid' => 1,
'order' => 100
]);
删除部门 https://exmail.qq.com/qy_mng_logic/doc#10010, (*6)
$exmail->department->delete($departmentId);
获取部门列表 https://exmail.qq.com/qy_mng_logic/doc#10011, (*7)
// 获取全部部门 $exmail->department->departmentList(); // 获取 $departmentId 部门及其子部门 $exmail->department->departmentList($departmentId);
查找部门 https://exmail.qq.com/qy_mng_logic/doc#10012, (*8)
$exmail->department->search('关键词', true); // 第二个参数为 true 时则为模糊搜索
创建成员 https://exmail.qq.com/qy_mng_logic/doc#10014, (*9)
$exmail->user->create([
'userid' => 'leo108@exmail.com',
'name' => 'leo108',
'department' => [1],
'password' => 'secret',
'gender' => Leo108\QQExmail\Contact\User::GENDER_MALE,
]);
更新成员 https://exmail.qq.com/qy_mng_logic/doc#10015, (*10)
$exmail->user->update('leo108@exmail.com', [
'name' => 'Leo Chen',
]);
删除成员 https://exmail.qq.com/qy_mng_logic/doc#10016, (*11)
$exmail->user->delete('leo108@exmail.com');
获取成员 https://exmail.qq.com/qy_mng_logic/doc#10017, (*12)
$exmail->user->get('leo108@exmail.com');
获取部门成员 https://exmail.qq.com/qy_mng_logic/doc#10018, (*13)
$exmail->user->simpleList($departmentId, true); // 第二个参数为 true 时递归获取子部门成员
获取部门成员(详情) https://exmail.qq.com/qy_mng_logic/doc#10019, (*14)
$exmail->user->userList($departmentId, true); // 第二个参数为 true 时递归获取子部门成员
批量检查帐号 https://exmail.qq.com/qy_mng_logic/doc#10020, (*15)
$exmail->user->batchCheck(['leo108@exmail.com', 'test@exmail.com']);
创建邮件群组 https://exmail.qq.com/qy_mng_logic/doc#10022, (*16)
$exmail->group->create([
'groupid' => 'group_name@exmail.com',
'groupname' => '测试邮件群组',
'userlist' => ['leo108@exmail.com', 'test@exmail.com'],
'allow_type' => Leo108\QQExmail\Contact\Group::ALLOW_TYPE_ALL,
]);
更新邮件群组 https://exmail.qq.com/qy_mng_logic/doc#10023, (*17)
$exmail->group->update('group_name@exmail.com', [
'groupname' => '技术部邮件组',
]);
删除邮件群组 https://exmail.qq.com/qy_mng_logic/doc#10024, (*18)
$exmail->group->delete('group_name@exmail.com');
获取邮件群组信息 https://exmail.qq.com/qy_mng_logic/doc#10025, (*19)
$exmail->group->get('group_name@exmail.com');
获取功能属性 https://exmail.qq.com/qy_mng_logic/doc#10047, (*20)
$exmail->userOption->get('leo108@exmail.com', [
Leo108\QQExmail\FunctionSetting\UserOption::TYPE_FORCE_SSL,
Leo108\QQExmail\FunctionSetting\UserOption::TYPE_IMAP_SMTP,
Leo108\QQExmail\FunctionSetting\UserOption::TYPE_POP_SMTP,
Leo108\QQExmail\FunctionSetting\UserOption::TYPE_ENABLE_SSL,
]);
更改功能属性 https://exmail.qq.com/qy_mng_logic/doc#10048, (*21)
$exmail->userOption->update('leo108@exmail.com', [
['type' => Leo108\QQExmail\FunctionSetting\UserOption::TYPE_FORCE_SSL, 'value' => '1'],
['type' => Leo108\QQExmail\FunctionSetting\UserOption::TYPE_IMAP_SMTP, 'value' => '1'],
['type' => Leo108\QQExmail\FunctionSetting\UserOption::TYPE_POP_SMTP, 'value' => '1'],
['type' => Leo108\QQExmail\FunctionSetting\UserOption::TYPE_ENABLE_SSL, 'value' => '1'],
]);
查询邮件概况 https://exmail.qq.com/qy_mng_logic/doc#10027, (*22)
$exmail->log->mailStatus('exmail.com', '2016-10-01', '2016-10-07');
查询邮件 https://exmail.qq.com/qy_mng_logic/doc#10028, (*23)
$exmail->log->mail(Leo108\QQExmail\SystemLog\Log::MAIL_TYPE_RECEIVE_AND_SEND, '2016-10-01', '2016-10-07', [
'userid' => 'leo108@exmail.com',
'subject' => '查询关键词'
]);
查询成员登录 https://exmail.qq.com/qy_mng_logic/doc#10029, (*24)
$exmail->log->login('leo108@exmail.com', '2016-10-01', '2016-10-07');
查询批量任务 https://exmail.qq.com/qy_mng_logic/doc#10030, (*25)
$exmail->log->batchJob('2016-10-01', '2016-10-07');
查询操作记录 https://exmail.qq.com/qy_mng_logic/doc#10031, (*26)
$exmail->log->operation(Leo108\QQExmail\SystemLog\Log::OPERATION_TYPE_ALL, '2016-10-01', '2016-10-07');
获取邮件未读数 https://exmail.qq.com/qy_mng_logic/doc#10033, (*27)
$exmail->mail->newAccount('leo108@exmail.com', '2016-10-01', '2016-10-07');
获取邮件未读数(回调模式)尚未实现, (*28)
获取登录企业邮的url https://exmail.qq.com/qy_mng_logic/doc#10036, (*29)
$exmail->uniqueLogin->getLoginUrl('leo108@exmail.com');
本项目是基于我的另外一个开源项目 php_sdk_skeleton 开发的。 通过 php_sdk_skeleton 可以快速构建基于 Http API 的 SDK。, (*30)
MIT., (*31)