setRaw($mime); 返回$message; } 函数sendMessage($service、$userId、$message){ 试一试{ $message=$service->users\u messages->send($userId,$message); 打印“ID为的邮件”。$Message->getId()。“已发送”; 返回$message; }捕获(例外$e){ 打印“出现错误:”。$e->getMessage(); } },php,gmail,gmail-api,Php,Gmail,Gmail Api" /> setRaw($mime); 返回$message; } 函数sendMessage($service、$userId、$message){ 试一试{ $message=$service->users\u messages->send($userId,$message); 打印“ID为的邮件”。$Message->getId()。“已发送”; 返回$message; }捕获(例外$e){ 打印“出现错误:”。$e->getMessage(); } },php,gmail,gmail-api,Php,Gmail,Gmail Api" />

Php Gmail API使用其他凭据发送电子邮件 $client->setAccessToken($accessToken); $service=新的Google\u服务\u Gmail($client); $email=createMessage(“测试电子邮件”); sendMessage($service,“me”,$email); 函数createMessage($email){ $to=”email@addrress.com"; $strSubject='testthread123125'; $strRawMessage=“发件人:apitest@gmail.com\r\n“; $strRawMessage.=“至:”.$To.“\r\n”; $strRawMessage.=“抄送:”.$to.\r\n”; $strRawMessage.='Subject:=?utf-8?B?'。base64_编码($strSubject)。“?=\r\n”; $strRawMessage.=“MIME版本:1.0\r\n”; $strRawMessage.=“内容类型:text/html;字符集=utf-8\r\n”; $strRawMessage.='内容传输编码:带引号的可打印'。“\r\n\r\n”; $strRawMessage.=“这是一条测试消息!\r\n”; $mime=rtrim(strtr(base64_编码($strRawMessage),“+/”、“-”、“=”); $message=new\Google\u Service\u Gmail\u message(); $message->setRaw($mime); 返回$message; } 函数sendMessage($service、$userId、$message){ 试一试{ $message=$service->users\u messages->send($userId,$message); 打印“ID为的邮件”。$Message->getId()。“已发送”; 返回$message; }捕获(例外$e){ 打印“出现错误:”。$e->getMessage(); } }

Php Gmail API使用其他凭据发送电子邮件 $client->setAccessToken($accessToken); $service=新的Google\u服务\u Gmail($client); $email=createMessage(“测试电子邮件”); sendMessage($service,“me”,$email); 函数createMessage($email){ $to=”email@addrress.com"; $strSubject='testthread123125'; $strRawMessage=“发件人:apitest@gmail.com\r\n“; $strRawMessage.=“至:”.$To.“\r\n”; $strRawMessage.=“抄送:”.$to.\r\n”; $strRawMessage.='Subject:=?utf-8?B?'。base64_编码($strSubject)。“?=\r\n”; $strRawMessage.=“MIME版本:1.0\r\n”; $strRawMessage.=“内容类型:text/html;字符集=utf-8\r\n”; $strRawMessage.='内容传输编码:带引号的可打印'。“\r\n\r\n”; $strRawMessage.=“这是一条测试消息!\r\n”; $mime=rtrim(strtr(base64_编码($strRawMessage),“+/”、“-”、“=”); $message=new\Google\u Service\u Gmail\u message(); $message->setRaw($mime); 返回$message; } 函数sendMessage($service、$userId、$message){ 试一试{ $message=$service->users\u messages->send($userId,$message); 打印“ID为的邮件”。$Message->getId()。“已发送”; 返回$message; }捕获(例外$e){ 打印“出现错误:”。$e->getMessage(); } },php,gmail,gmail-api,Php,Gmail,Gmail Api,我正在根据上的文档尝试使用此函数 由于我使用了gmail身份验证,$userid的默认值是“me”。是否有可能将“我”的值更改为另一封电子邮件(我在credentials.json上使用的电子邮件)。您收到的委派被拒绝错误消息是由于您用于请求的其他电子邮件地址在这种情况下不是授权的 当您获得访问令牌时,您是为main@gmail.com但这并不授予访问上述其他电子邮件地址的权限apitest@gmail.com 根据报告: 当用户第一次加载您的应用程序时,他们会看到一个对话框,用于授予您的应用程

我正在根据上的文档尝试使用此函数


由于我使用了gmail身份验证,$userid的默认值是“me”。是否有可能将“我”的值更改为另一封电子邮件(我在credentials.json上使用的电子邮件)。

您收到的
委派被拒绝
错误消息是由于您用于请求的其他电子邮件地址在这种情况下不是授权的

当您获得
访问令牌时,您是为
main@gmail.com
但这并不授予访问上述其他电子邮件地址的权限
apitest@gmail.com

根据报告:

当用户第一次加载您的应用程序时,他们会看到一个对话框,用于授予您的应用程序使用请求的权限范围访问其Gmail帐户的权限。在此初始授权之后,仅当应用程序的客户端ID更改或请求的作用域更改时,才会向用户显示“权限”对话框

参考文献

Hi there@Chillax,将
me
的值更改为您在
credentials.json上使用的值是什么意思?你能提供更多关于这方面的信息吗?你到底想实现什么?——@ale13我用apitest@gmail.com用于登录我的主电子邮件地址(main@gmail.com)然后我试着用apitest@gmail.com如果我将$userid参数上的“me”更改为apitest@gmail.com它说代表团否认了这一点。但当我把它改为“我”时,它可以发送电子邮件,但使用我以前使用的主电子邮件添加logged@ale13我添加了我用来发送电子邮件的代码,您从哪个帐户获得了Gmail API的
credentials.json
@Chillax如何使用存储的凭据进行授权?通过php?

$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();
  }
}