2016-09-05 6 views
0

私は内部アプリケーションのGmail APIを使用しています。 adminアカウントを使用しているすべてのユーザーの受信メールと送信メールの電子メール転送を設定する必要があります。私はYiiでGoogle PHP APIクライアントライブラリを使用しています。GMail API(PHP)を使用しているすべてのユーザーの転送先アドレスを設定する

この記事は次のとおりです。 ​​

以下は私がやろうとしていることです。

define('JSON_FILE', '/path/to/json/file'); 
$user_to_impersonate = '<My domain wide authorized admin email address>'; 
$scopes = [ \Google_Service_Gmail::GMAIL_SETTINGS_SHARING,\Google_Service_Gmail::MAIL_GOOGLE_COM]; 
$google_client = new \Google_Client(); 
$google_client->setAuthConfig(CLIENT_SECRET_PATH); 
$google_client->setScopes($scopes); 
$google_client->setSubject($user_to_impersonate); 
$google_client->setIncludeGrantedScopes(true); 

// setup the forwarding address 
$service = new \Google_Service_Gmail($google_client); 
$f = new \Google_Service_Gmail_AutoForwarding(); 
$f->setEnabled(TRUE); 
$f->setEmailAddress('<my forwarding email address>'); 
$f->setDisposition("leaveInInbox"); 

$service->users_settings->updateAutoForwarding('me',$f) 

私は何かが正しい:)ではないことを知っている

Unrecognized forwarding address 

、次のエラーを取得します。誰かが私にこの問題を解決するための専門家の回答を知らせてもらえますか?私は使用している電子メールアドレスの転送を設定しようとしていますが、ではなく、すべてのユーザーに対してです。しかし、私は組織のGmailアカウント内のすべてのメールに同じメールアドレスを設定したいと思います。

ありがとうございます!

答えて

0

フォーマットエラーの可能性がありますが、発生したエラーの原因となる可能性があるため、「\」文字は削除してください。

管理者アカウントとの間で電子メールを転送する場合は、ユーザーのリスト(すべて)にForwardingAddresses APIを使用できます。

メッセージは登録済みの確認済みのメールアドレスにのみ転送できることに注意してください。これが原因でエラーが発生する可能性があります。 updateAutoForwardingに電話をかける前にforwardingAddressを作成してください

ハッピーコーディング!

1

確認済みの転送先アドレスをまだ作成していないため、failedPrecondition: Unrecognized forwarding addressというエラーが表示されます。最初にthis APIを使用して転送先住所を作成する必要があります。その後、電子メールを転送する前に、電子メールアドレスを確認する必要があります。

このアプローチの問題点は、この許可スコープgmail.settings.sharingが必要であり、ドメインワイドオーソリティオーソリゼーションが必要であることです。 See how to set it up here。この委任を設定しないと、転送先アドレスを作成しようとするとこのエラーが発生します:forbidden: Access restricted to service accounts that have been delegated domain-wide authority

ですから、2つのステップを実行する必要があります

  1. 権限
  2. のセットアップドメインの代表団はそれを

を使用する前に、(API経由で)転送アドレスを作成しますが、この情報がお役に立てば幸いです。

関連する問題