Java gmail api连接到g套件帐户并发送电子邮件

Java gmail api连接到g套件帐户并发送电子邮件,java,gmail-api,google-api-java-client,Java,Gmail Api,Google Api Java Client,我正在尝试验证一个服务帐户到谷歌发送电子邮件从服务器应用程序 这是由 private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); private static HttpTransport HTTP_TRANSPORT; private static final List<String> SCOPES = Arrays.asList(GmailScopes.

我正在尝试验证一个服务帐户到谷歌发送电子邮件从服务器应用程序

这是由

private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();

private static HttpTransport HTTP_TRANSPORT;

private static final List<String> SCOPES =
        Arrays.asList(GmailScopes.GMAIL_LABELS, GmailScopes.GMAIL_SEND);

        return new  GoogleCredential.Builder()
            .setTransport(HTTP_TRANSPORT)
            .setJsonFactory(JSON_FACTORY)
            .setServiceAccountId("xxxxxxxxxxxxxx.iam.gserviceaccount.com")
            .setServiceAccountScopes(SCOPES)
            .setServiceAccountPrivateKeyFromP12File(new File("C:/temp/google/secret.p12"))
            .build();
在我的服务帐户上,我启用了“启用G套件域范围的委派”选项


以上是尝试和验证的正确方法,还是我错过了一个步骤

您是否授予服务帐户访问域帐户用户电子邮件的权限?是的,服务帐户客户端id已为电子邮件启用(读/写/发送),使用json文件返回GoogleCredential时也会得到相同的400响应;基于此,用户需要授予您的应用程序访问权限以代表他们行事。对于,它表示查询无效。例如,缺少父ID或请求的维度或度量组合无效。你也可以检查一下,看看是否有帮助。
com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad     Request
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bad Request",
"reason" : "failedPrecondition"
 } ],
"message" : "Bad Request"
}