Управление переадресацией

Вы можете использовать «Настройки» , чтобы настроить переадресацию для учетной записи. Чтобы использовать адрес электронной почты для пересылки, адрес должен соответствовать одному из следующих критериев:

  • Адрес электронной почты подтвержден. Дополнительную информацию см. в разделе Создание и проверка адресов пересылки.
  • Адрес электронной почты принадлежит тому же домену, что и отправитель.
  • Адрес электронной почты принадлежит субдомену в том же домене отправителя.
  • Адрес электронной почты принадлежит псевдониму домена, настроенному как часть той же учетной записи Google Workspace.

Если адрес электронной почты для пересылки не соответствует ни одному из этих правил, настроить переадресацию с помощью API не удастся.

Сведения о том, как создавать , перечислять , получать или удалять адреса пересылки, см. в справочнике ForwardingAddresses .

Информацию о том, как получить или обновить настройки переадресации, см. в справочнике по настройкам.

Создание и проверка адресов пересылки

Перед использованием необходимо создать адреса пересылки. В некоторых случаях пользователи также должны подтвердить право собственности на адрес.

Если Gmail требует подтверждения пользователя для адреса пересылки, адрес возвращается со статусом pending . На целевой адрес электронной почты автоматически отправляется подтверждающее сообщение. Владелец адреса электронной почты должен пройти процедуру проверки, прежде чем его можно будет использовать.

Адреса пересылки, не требующие проверки, имеют статус проверки accepted .

Включение автоматической переадресации

Вызовите метод updateAutoForwarding , чтобы включить автоматическую переадресацию для учетной записи. Для вызова требуется как зарегистрированный и проверенный адрес пересылки, так и действие, которое необходимо выполнить над пересылаемыми сообщениями.

Например, чтобы включить автоматическую пересылку и переместить пересылаемые сообщения в корзину:

Джава

gmail/snippets/src/main/java/EnableForwarding.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.gmail.Gmail;
import com.google.api.services.gmail.GmailScopes;
import com.google.api.services.gmail.model.AutoForwarding;
import com.google.api.services.gmail.model.ForwardingAddress;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;

/* Class to demonstrate the use of Gmail Enable Forwarding API */
public class EnableForwarding {
  /**
   * Enable the auto-forwarding for an account.
   *
   * @param forwardingEmail - Email address of the recipient whose email will be forwarded.
   * @return forwarding id and metadata, {@code null} otherwise.
   * @throws IOException - if service account credentials file not found.
   */
  public static AutoForwarding enableAutoForwarding(String forwardingEmail) throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(GmailScopes.GMAIL_SETTINGS_SHARING);
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);

    // Create the gmail API client
    Gmail service = new Gmail.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Gmail samples")
        .build();

    try {
      // Enable auto-forwarding and move forwarded messages to the trash
      ForwardingAddress address = new ForwardingAddress()
          .setForwardingEmail(forwardingEmail);
      ForwardingAddress createAddressResult = service.users().settings().forwardingAddresses()
          .create("me", address).execute();
      if (createAddressResult.getVerificationStatus().equals("accepted")) {
        AutoForwarding autoForwarding = new AutoForwarding()
            .setEnabled(true)
            .setEmailAddress(address.getForwardingEmail())
            .setDisposition("trash");
        autoForwarding =
            service.users().settings().updateAutoForwarding("me", autoForwarding).execute();
        System.out.println(autoForwarding.toPrettyString());
        return autoForwarding;
      }
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 403) {
        System.err.println("Unable to enable forwarding: " + e.getDetails());
      } else {
        throw e;
      }
    }
    return null;
  }
}

Питон

gmail/snippet/settings snippets/enable_forwarding.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def enable_forwarding():
  """Enable email forwarding.
  Returns:Draft object, including forwarding id and result meta data.

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create gmail api client
    service = build("gmail", "v1", credentials=creds)

    address = {"forwardingEmail": "gduser1@workspacesamples.dev"}

    # pylint: disable=E1101
    result = (
        service.users()
        .settings()
        .forwardingAddresses()
        .create(userId="me", body=address)
        .execute()
    )
    if result.get("verificationStatus") == "accepted":
      body = {
          "emailAddress": result.get("forwardingEmail"),
          "enabled": True,
          "disposition": "trash",
      }
      # pylint: disable=E1101
      result = (
          service.users()
          .settings()
          .updateAutoForwarding(userId="me", body=body)
          .execute()
      )
      print(f"Forwarding is enabled : {result}")

  except HttpError as error:
    print(f"An error occurred: {error}")
    result = None

  return result


if __name__ == "__main__":
  enable_forwarding()

Чтобы отключить автопересылку, вызовите updateAutoForwarding и установите для enabled свойства значение false .

Пересылка определенных сообщений

При автопересылке все полученные сообщения отправляются на целевой аккаунт. Чтобы выборочно пересылать сообщения, используйте фильтры для создания правил, которые пересылают в ответ на атрибуты или содержимое сообщения.