Gmail API PHP 客户端库或 api - 如何发送 gmail 草稿?
Gmail API PHP Client Library or api - How do send gmail draft?
我收到了按预定时间发送草稿电子邮件 (Gmail) 的要求。
我试过下面的代码。
$access_token = 'ya29.DxswidlwadllsidVeg5B67CdpLN6QR0d1nCuQmg9GaMT9iq8-zIA8O29yR9rEMM';
//the access token is subject to change every hour
$header = array('Content-Type: message/rfc822', "Authorization: Bearer $access_token");
$to = '125699645855239833'; // this is a draft id.
$line = "\r\n";
$raw='';
$url = 'https://www.googleapis.com/upload/gmail/v1/users/me/drafts?fields=id&key=XsqwwosqldwwdssaOLwotWD6seRloXZM';
$raw .= "id: $to ".$line.$line;
$method_type = 1; // set as post method
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HEADER, 0);
if( $header !== 0 ){
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
if( $method_type == 1 or $method_type == 0 ){
curl_setopt($curl, CURLOPT_POST, $method_type);
}else{
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
}
if( $data !== 0 ){
curl_setopt($curl, CURLOPT_POSTFIELDS, $raw);
}
$response = curl_exec($curl);
$json = json_decode($response, true);
print_r($json);
curl_close($curl);
我在 curl 发布后得到如下结果
数组 ( [id] => r-5083530165761240787 ) 但未设置草稿(电子邮件)。
您需要进行以下两项更改
更改 1:在第 3 行,您需要替换
Content-Type: message/rfc822 to Content-Type: application/json
更改 2:在第 38 行,您需要替换
$raw .= "id: $to ".$line.$line; to $raw = '{ "id": "'.$t.'" }'.$line.$line;
说明:数据必须以原始格式传递,内容类型为 json。
发送草稿时,您可以选择按原样发送邮件或与更新后的邮件一起发送。如果您要使用新消息更新草稿内容,请在 drafts.send 请求的正文中提供草稿资源;设置要发送的草稿draft.id;并将 draft.message.raw 字段设置为编码为 base64url 编码字符串的新 MIME 消息。有关详细信息,请参阅 drafts.send。
我收到了按预定时间发送草稿电子邮件 (Gmail) 的要求。 我试过下面的代码。
$access_token = 'ya29.DxswidlwadllsidVeg5B67CdpLN6QR0d1nCuQmg9GaMT9iq8-zIA8O29yR9rEMM';
//the access token is subject to change every hour
$header = array('Content-Type: message/rfc822', "Authorization: Bearer $access_token");
$to = '125699645855239833'; // this is a draft id.
$line = "\r\n";
$raw='';
$url = 'https://www.googleapis.com/upload/gmail/v1/users/me/drafts?fields=id&key=XsqwwosqldwwdssaOLwotWD6seRloXZM';
$raw .= "id: $to ".$line.$line;
$method_type = 1; // set as post method
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_HEADER, 0);
if( $header !== 0 ){
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
}
if( $method_type == 1 or $method_type == 0 ){
curl_setopt($curl, CURLOPT_POST, $method_type);
}else{
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
}
if( $data !== 0 ){
curl_setopt($curl, CURLOPT_POSTFIELDS, $raw);
}
$response = curl_exec($curl);
$json = json_decode($response, true);
print_r($json);
curl_close($curl);
我在 curl 发布后得到如下结果
数组 ( [id] => r-5083530165761240787 ) 但未设置草稿(电子邮件)。
您需要进行以下两项更改 更改 1:在第 3 行,您需要替换
Content-Type: message/rfc822 to Content-Type: application/json
更改 2:在第 38 行,您需要替换
$raw .= "id: $to ".$line.$line; to $raw = '{ "id": "'.$t.'" }'.$line.$line;
说明:数据必须以原始格式传递,内容类型为 json。
发送草稿时,您可以选择按原样发送邮件或与更新后的邮件一起发送。如果您要使用新消息更新草稿内容,请在 drafts.send 请求的正文中提供草稿资源;设置要发送的草稿draft.id;并将 draft.message.raw 字段设置为编码为 base64url 编码字符串的新 MIME 消息。有关详细信息,请参阅 drafts.send。