标签: gmail-api

gmail api 与传统 smtp

在Java世界中

想知道是否有人有关于通过 gmail api 发送电子邮件与通过 java 邮件服务配置 gmail smtp 服务配置的比较的信息。

两者的优点/缺点

批量电子邮件 一个连接可以触发 5 封单独的电子邮件吗?

gmail google-api gmail-api

4
推荐指数
1
解决办法
6243
查看次数

错误 403,元数据范围不允许格式 FULL 。Web应用程序Gmail API通过邮递员获取消息

通过邮递员点击 Gmail API 获取消息时出现禁止 403 错误,请帮助我解决此问题。错误

https://www.googleapis.com/gmail/v1/users/userId/messages 此网址用于获取邮件列表

https://www.googleapis.com/gmail/v1/users/userId/messages/id 这是为了获取特定 ID 的消息

我可以点击获取消息列表 API,但获取消息 API 对我不起作用

我通过邮递员做所有这些事情

错误信息 :

{
"error": {
    "errors": [
        {
            "domain": "global",
            "reason": "forbidden",
            "message": "Metadata scope doesn't allow format FULL"
        }
    ],
    "code": 403,
    "message": "Metadata scope doesn't allow format FULL"
}
Run Code Online (Sandbox Code Playgroud)

}

google-apis-explorer gmail-api

4
推荐指数
1
解决办法
3349
查看次数

使用 Python Google API 客户端的 GMail API:错误 400,前提条件失败

我正在尝试使用Google API Python 客户端和服务帐户身份验证来访问我们的 GSuite GMail API。根据文档,我的 MCVE 代码如下:

import os
import sys
from google.auth.transport.requests import Request
from google.oauth2.service_account import Credentials
from googleapiclient.discovery import build

email = sys.argv[1]

cred = Credentials.from_service_account_file(os.getenv('SERVICE_ACCOUNT'))
cred = cred.with_scopes(['https://www.googleapis.com/auth/gmail.labels'])
cred.refresh(Request())

gmail = build('gmail', 'v1', credentials=cred)
try:
    print(gmail.users().labels().list(userId=email).execute())
except Exception as ex:
    print('Error:', ex.content.decode('ascii'))
Run Code Online (Sandbox Code Playgroud)

输出是:

Error: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "failedPrecondition",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}
Run Code Online (Sandbox Code Playgroud)

普通嫌疑犯:

  • 服务帐户被授予域范围委派
  • 所请求的电子邮件已存在
  • 客户端范围在“管理 > 安全 …

python google-api-python-client gmail-api

4
推荐指数
1
解决办法
2200
查看次数

Google Gmail API,作为 .py 工作正常,但在作为 .exe 运行时抛出“googleapiclient.errors.UnknownApiNameOrVersion:名称:gmail 版本:v1”

该代码在 Pycharm 中完美运行,或者在运行 .py 文件时完美运行,但我需要该应用程序成为 .exe 文件才能在没有 python 的设备上运行。

我试图允许用户从 tkinter 窗口报告应用程序中的错误/提供反馈。然后反馈会通过 gmail-api 发送给我。

.exe 文件是由 pyinstaller 生成的(从虚拟环境内部运行)运行 exe 文件时,一切正常,直到:

service = build(serviceName='gmail',
                        version='v1',
                        credentials=creds,
                        discoveryServiceUrl="https://gmail.googleapis.com/$discovery/rest?version=v1")
Run Code Online (Sandbox Code Playgroud)

哪里生产

  File "googleapiclient\_helpers.py", line 134, in positional_wrapper
  File "googleapiclient\discovery.py", line 273, in build
  File "googleapiclient\discovery.py", line 387, in _retrieve_discovery_doc
googleapiclient.errors.UnknownApiNameOrVersion: name: gmail  version: v1
Run Code Online (Sandbox Code Playgroud)

单击 tkinter 按钮时执行以下代码。

gmail 代码几乎完全从 google gmail api 示例复制而来。

小代码片段:

from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
SCOPES = ['https://www.googleapis.com/auth/gmail.send']
def …
Run Code Online (Sandbox Code Playgroud)

python gmail google-api gmail-api

4
推荐指数
1
解决办法
2516
查看次数

Go gmail api 快速启动导致本地主机拒绝连接 ERR_CONNECTION_REFUSED

我正在按照go faststart gmail api中的步骤操作。

在函数上getTokenFromWeb,粘贴长网址 https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=abcdefg.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.readonly&state=state-token

或者

http://localhost:8000

结果是

无法访问该网站。本地主机拒绝连接。ERR_CONNECTION_REFUSED

无法访问网站图片

遵循相同的快速入门,但对于 python 来说可以完美地工作。

如果我通过 python 获取令牌并在 Go 快速入门中使用它,它也可以工作。所以问题就出在网络检索的令牌上。

google-api go google-oauth gmail-api google-api-go-client

4
推荐指数
1
解决办法
1155
查看次数

谷歌 Oauth2-redirect_uri_mismatch 400

你好,我正在尝试将 Google Sign In 集成到我的 python 脚本中,并且运行此错误:

\n

访问被阻止:此应用程序\xe2\x80\x99s请求无效

\n

您无法\xe2\x80\x99 登录,因为此应用发送了无效请求。您可以稍后再试,或者联系开发人员解决此问题。了解有关此错误的更多信息

\n

如果您是此应用程序的开发人员,请参阅错误详细信息

\n

错误 400:redirect_uri_mismatch

\n

我尝试运行的 python 脚本是来自 Google 来源的基本脚本:

\n
# import the required libraries\nfrom googleapiclient.discovery import build\nfrom google_auth_oauthlib.flow import InstalledAppFlow\nfrom google.auth.transport.requests import Request\nimport pickle\nimport os.path\nimport base64\nimport email\nfrom bs4 import BeautifulSoup\n\n# Define the SCOPES. If modifying it, delete the token.pickle file.\nSCOPES = ['https://www.googleapis.com/auth/gmail.readonly']\n\ndef getEmails():\n    # Variable creds will store the user access token.\n    # If no valid token found, we will create one.\n …
Run Code Online (Sandbox Code Playgroud)

python oauth-2.0 google-api-python-client gmail-api google-developers-console

4
推荐指数
1
解决办法
5503
查看次数

Gmail PHP API发送电子邮件

我正在尝试通过Gmail PHP API发送电子邮件(https://developers.google.com/gmail/api/v1/reference/users/messages/send).一切似乎都达到了我发送信息的程度.我的代码是:

private function createMessage($email) {
    $message = new Google_Service_Gmail_Message();
     $message->setRaw(strtr(base64_encode($email), '+/=', '-_,'));      // $email is a raw email data string
    return $message;
}

public function sendMessage($userID, $email) {
    try {
        $msg = $this->createMessage($email);
        $this->service->users_messages->send($userID, $msg);
    } catch (Exception $e) {
        print 'An error occurred: ' . $e->getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

代码在破线:

$this->service->users_messages->send($userID, $msg);

有错误:

An error occurred: Error calling POST https://www.googleapis.com/gmail/v1/users/myemailaddress@gmail.com/messages/send: (400) Invalid value for ByteString:
Run Code Online (Sandbox Code Playgroud)

知道这里发生了什么吗?谢谢!

php gmail-api

3
推荐指数
1
解决办法
7967
查看次数

使用gmail api发送电子邮件错误:此API不支持解析表单编码输入

我正在尝试使用gmail-api发送电子邮件,我正在读取用户的数据并将其转换为base64url字符串

我正在获取原始值,当我尝试使用post请求发送邮件时

 var ss=new Buffer(message).toString('base64')
 var rawdata = ss.replace(/\//g, '_').replace(/\+/g, '-');
 var options={"access_token":google.accessToken,'raw':rawdata};
 var res=HTTP.post('https://www.googleapis.com/gmail/v1/users/me/messages/send',{params: options});
Run Code Online (Sandbox Code Playgroud)

这是投掷错误

    {  "error": {   "errors": [    
    {     "domain": "global",     
           "reason": "parseError",     
          "message": "This API does not support parsing form-encoded input."    }   ],   

   "code": 400,   "message": "This API does not support parsing form-encoded input."  } } 
Run Code Online (Sandbox Code Playgroud)

我发送以下参数

var message = 'From: Me <ff@gmail.com>\r\n' +
        'To: Me <ss@gmail.com>\r\n' +
        'Subject: Hello\r\n'+
        'Mime-Version: 1.0\r\n'+
        'Content-Type: text/html; charset=utf-8\r\n' +
        'Content-Transfer-Encoding: quoted-printable\r\n\r\n' +
        '<html><body>' +
        '<h1>World</h1>' + …
Run Code Online (Sandbox Code Playgroud)

javascript post google-api node.js gmail-api

3
推荐指数
1
解决办法
3835
查看次数

使用Google Apps脚本的GmailApp中的250/500线程限制

GmailApp在Google Apps脚本中使用时,我注意到以下限制:

var threads = GmailApp.search("to:test@example.com");
Logger.log(threads.length);  // 250 max

var threads = GmailApp.search("label:mylabel");
Logger.log(threads.length);  // 500 max

var label = GmailApp.getUserLabelByName('mylabel');
var threads2 = label.getThreads();
Logger.log(threads2.length); // 500 max
Run Code Online (Sandbox Code Playgroud)

您如何在500或250多个线程上进行工作(例如提取电子邮件地址并将其添加到列表中)

您会通过按日期拆分来手动执行此操作吗(不是很漂亮,但可能还在工作)?

gmail google-apps-script gmail-api

3
推荐指数
1
解决办法
1123
查看次数

500 error.Internal [backend error] Google Api Push #gmail_watch

我尝试使用此处的指南获取通知. https://developers.google.com/gmail/api/guides/push#gmail_watch

Gmail服务(服务)可以获取标签,收件箱和其他API功能.

这是代码.

        var service = new GmailService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = ApplicationName,
    });
    IList<string> label = new List<string>();
    label.Add("INBOX");
    WatchRequest request2 = new WatchRequest
    {
        LabelIds = label,
        LabelFilterAction = "include",
        TopicName = "projects/******/topics/****TestTopic"
    };
    var x= service.Users.Watch(request2, "me").Execute();
Run Code Online (Sandbox Code Playgroud)

Watch抛出这个例外

Google.Apis.Requests.RequestError
Backend Error [500]
Errors [
    Message[Backend Error] Location[ - ] Reason[backendError] Domain[global]
]
Run Code Online (Sandbox Code Playgroud)

.net gmail-api

3
推荐指数
1
解决办法
594
查看次数