【发布时间】:2020-08-22 08:16:16
【问题描述】:
$client->setAccessToken($accessToken);
$service = new Google_Service_Gmail($client);
$email = createMessage("test email");
sendMessage($service,"me",$email);
function createMessage($email) {
$to ="email@addrress.com";
$strSubject = 'TEST THREAD123125';
$strRawMessage = "From: apitest@gmail.com\r\n";
$strRawMessage .= "To: ".$to." \r\n";
$strRawMessage .= "Cc:" . $to . "\r\n";
$strRawMessage .= 'Subject: =?utf-8?B?' . base64_encode($strSubject) . "?=\r\n";
$strRawMessage .= "MIME-Version: 1.0\r\n";
$strRawMessage .= "Content-Type: text/html; charset=utf-8\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= "this <b>is a test message!\r\n";
$mime = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
$message = new \Google_Service_Gmail_Message();
$message->setRaw($mime);
return $message;
}
function sendMessage($service, $userId, $message) {
try {
$message = $service->users_messages->send($userId, $message);
print 'Message with ID: ' . $message->getId() . ' sent.';
return $message;
} catch (Exception $e) {
print 'An error occurred: ' . $e->getMessage();
}
}
我正在尝试根据https://developers.google.com/gmail/api/v1/reference/users/messages/send 上的文档使用此功能
由于我使用了 gmail 身份验证,$userid 的默认值为“me”。是否有可能将“我”的值更改为另一封电子邮件(我以前在凭据.json 上使用的电子邮件)。
【问题讨论】:
-
您好@Chillax,您将
me的值更改为您在credentials.json上使用的值是什么意思?您能否提供更多有关这方面的信息以及您想要实现的具体目标? -
-@ale13 我使用 apitest@gmail.com 创建了一个 API,用于登录我的主电子邮件地址 (main@gmail.com),然后我尝试使用 apitest@gmail.com 发送电子邮件,如果我将 $userid 参数上的“我”更改为 apitest@gmail.com,它表示委派被拒绝。但是当我将其更改为“我”时,它可以发送电子邮件,但使用我曾经记录的主电子邮件添加
-
@ale13 我添加了用于发送电子邮件的代码
-
您为哪个帐户获得了 Gmail API 的
credentials.json? @Chillax