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

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

  • Адрес электронной почты подтверждён. Подробнее см. в разделе «Создание и проверка адресов пересылки».
  • Адрес электронной почты принадлежит тому же домену, что и отправитель.
  • Адрес электронной почты принадлежит поддомену в том же домене, что и отправитель.
  • Адрес электронной почты принадлежит псевдониму домена, настроенному как часть той же учетной записи 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": "[email protected]"}      # 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 .

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

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