我正在尝试借助 Google Apps 帐户自动发送邮件
凭据和应用程序设置(安全性、范围)似乎没问题(使用相同的服务和相同的凭据,我可以毫无问题地获取我的收件箱消息。)
我的应用程序已在管理员谷歌控制台上获得授权,具有正确的凭据“p12 密钥”和范围“ https://mail.google.com/ ”
所以我的php代码看起来像
$credentials = new \Google_Auth_AssertionCredentials(
$serviceEmail,
array('https://mail.google.com/'),
file_get_contents($keyPath)
);
$client = new \Google_Client();
$client->setAssertionCredentials($credentials);
$gmailClient = new \Google_Service_Gmail($client);
$mail = new \PHPMailer();
$mail->CharSet = "UTF-8";
$mail->Encoding = 'base64';
$mail->AddAddress("my.mail@gmail.com");
$mail->Subject = 'my subject';
$mail->Body = 'my body';
$mail->preSend();
$mime = $mail->getSentMIMEMessage();
$m = new \Google_Service_Gmail_Message();
$m->setRaw(\Google_Utils::urlSafeB64Encode($mime));
try {
$message = $gmailClient->users_messages->send('me', $m);
return $message;
} catch (\Exception $e) {
return $e->getMessage();
}
不幸的是,它给了我一个无益的信息:(
{ "error": { "errors": [ { "domain": "global", "reason": "failedPrecondition", "message": "Bad Request" } ], "code": 400, "message": "Bad Request" } }
缺少什么前提条件?有没有办法通过管理面板上的高级日志或类似的东西知道
我还关注了这个很好的链接: Gmail REST API:400 Bad Request + Failed Precondition
提前致谢