You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 11用Webklex连接Office 365失败:获Token仍无法建立连接

Office 365 IMAP 连接失败(Webklex v4.1 + OAuth2)

我尝试使用Webklex库v4.1连接Office 365获取邮件,能够成功获取OAuth2认证令牌,但调用connect()建立连接时,始终收到**"connection setup failed"**错误。

获取OAuth2令牌的代码

private function getToken0Auth()
{
    try {
        $client = new \GuzzleHttp\Client();
        // 向Microsoft OAuth2端点请求令牌
        $response = $client->post('https://login.microsoftonline.com/'.env('tenant_id').'/oauth2/v2.0/token', [
            'form_params' => [
                'client_id' => env('client_id'),
                'client_secret' => env('client_secret'),
                'scope' => 'https://outlook.office365.com/.default',
                'grant_type' => 'client_credentials',
            ],
        ]);
        $body = json_decode($response->getBody());
        if (!$body->access_token) {
            return ['success' => false, 'message' => '无法生成令牌。'];
        }
        return ['success' => true, 'token' => $body->access_token];
    } catch (\Throwable $t) {
        return ['success' => false, 'message' => $t->getMessage()];
    }
}

令牌响应示例

eyJ0eXAiOiJKV1QiLCJub25jZSI6InNjUWJVeERrY3BvcjNsdVdaa080OERISDNsSDQwSmhEVk5QeXlVanBBb1EiLCJhbGciOiJSUzI1NiIsIng1dCI6Ikg5bmo1QU9Tc3dNcGhnMVNGeDdqYVYtbEI5dyIsImtpZCI6Ikg5bmo1QU9Tc3dNcGhnMVNGeDdqYVYtbEI5dyJ9.eyJhdWQiOiJodHRwczovL291dGxvb2sub2ZmaWNlMzY1LmNvbSIsImlzcyI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0L2IzNDdhMGY0LTA3MzQtNDI5Ni05NzU3LTc2NzJkOGFjYjJhNC8iLCJpYXQiOjE3MjU2NDU5ODYsIm5iZiI6MTcyNTY0NTk4NiwiZXhwIjoxNzI1NjQ5ODg2LCJhaW8iOiJFMmRnWUxnbllYVWhjbzlWUU02SGEvM0poNXMvQWdBPSIsImFwcF9kaXNwbGF5bmFtZSI6IkxhcmF2ZWwgT2ZmaWNlIDM2NSBJbnRlZ3JhdGlvbiIsImFwcGlkIjoiMzkwNjJiNjMtZGY4OC00M2ZmLWI3MTktYWQ5M2Q3MjNlNDgxIiwiYXBwaWRhY3IiOiIxIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvYjM0N2EwZjQtMDczNC00Mjk2LTk3NTctNzY3MmQ4YWNiMmE0LyIsImlkdHlwIjoiYXBwIiwib2lkIjoiZmFlZWFjYmEtZjcwZS00MmRjLThhZWYtYjdmNzFmNzBlM2ZiIiwicmgiOiIwLkFWZ0E5S0JIc3pRSGxrS1hWM1p5Mkt5eXBBSUFBQUFBQVBFUHpnQUFBQUFBQUFEeUFBQS4iLCJyb2xlcyI6WyJJTUFQLkFjY2Vzc0FzQXBwIiwiU01UUC5TZW5kQXNBcHAiXSwic2lkIjoiOWU3YjgxODctZmY5ZC00OWRiLTg1N2EtMWJiMDEyZGY4NjgwIiwic3ViIjoiZmFlZWFjYmEtZjcwZS00MmRjLThhZWYtYjdmNzFmNzBlM2ZiIiwidGlkIjoiYjM0N2EwZjQtMDczNC00Mjk2LTk3NTctNzY3MmQ4YWNiMmE0IiwidXRpIjoidWF5bHNEVkZ0VS1TN3luYUpVOEtBQSIsInZlciI6IjEuMCIsIndpZHMiOlsiMDk5N2ExZDAtMGQxZC00YWNiLWI0MDgtZDVjYTczMTIxZTkwIl0sInhtc19pZHJlbCI6IjcgMjgifQ.iZYBRa448-6E0oGNJU4FcXoeiDuhLTgDBQSMmJ-kyY1cOtsf3YHtl3b2HCYcRnanxLSa1v8WHxV2VR0KUH_FRUnDhAIVmHxztt039YvB3mk1znVXB7er6wDK_w07xRxH6ftvqo3ia8KPzXQXYGJ4iz2E8NyJYFlp8J_aj76fK2OncxHnTYe5HxyEkqWN50IKCTDoSFL_bEhmNLRhhAXm6O5od81KVC0sGz8BbhBD-QTLnoZRptb3SG1KTc0H-_uRvO8qAWYpwu3XCzNCETmiIuVVSyDUjafh6CinW8sAVm9kuBCtPpetzoYbljQlLjVyfE5Ppha8DmdFj2xtTYS4XA

连接IMAP服务器的代码

$oClient = Client::make([
    'host'          => 'outlook.office365.com',
    'port'          => 993,
    'encryption'    => 'ssl',
    'validate_cert' => false,
    'username'      => 'my-email',
    'password'      => $response['token'], // OAuth2令牌
    'protocol'      => 'imap',
    'authentication' => 'oauth', // 指定OAuth认证方式
]);
$oClient->connect();

已完成的排查步骤

  • 在Office 365中注册了应用,并授予IMAP.AccessAsApp权限
  • 已启用目标邮箱的IMAP功能
  • 应用设置为允许任意账户访问

目前已无排查思路,请求帮助。


内容的提问来源于stack exchange,提问作者Luiz Gustavo Costa Ceolin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 14:49:52