Zarządzanie przekazywaniem

Przekazywanie dalej na koncie możesz skonfigurować w Ustawieniach. Aby można było używać adresu e-mail do przekazywania dalej, musi on spełniać jedno z tych kryteriów:

  • Adres e-mail został zweryfikowany. Więcej informacji znajdziesz w artykule o tworzeniu i weryfikacji adresów do przekazywania dalej.
  • Adres e-mail należy do tej samej domeny co adres nadawcy.
  • Adres e-mail należy do subdomeny w tej samej domenie co adres nadawcy.
  • Adres e-mail należy do aliasu domeny skonfigurowanego na tym samym koncie Google Workspace.

Jeśli adres e-mail do przekazywania dalej nie jest zgodny z jedną z tych reguł, nie uda się skonfigurować przekazywania za pomocą interfejsu API.

Więcej informacji o tworzeniu, umieszczaniu na liście, uzyskiwaniu i usuwaniu adresów do przekazywania dalej znajdziesz w dokumentacji przekierowania.

Więcej informacji o pobieraniu i aktualizowaniu ustawień przekazywania znajdziesz w dokumentacji ustawień.

Tworzenie i weryfikowanie adresów do przekazywania dalej

Musisz utworzyć adresy do przekazywania dalej, zanim ich użyjesz. W niektórych przypadkach użytkownicy muszą również potwierdzić własność adresu.

Jeśli Gmail wymaga weryfikacji użytkownika adresu do przekazywania dalej, adres ten jest zwracany ze stanem pending. Na docelowy adres e-mail automatycznie wysyłana jest wiadomość weryfikacyjna. Właściciel adresu e-mail musi przejść proces weryfikacji, zanim będzie można go użyć.

Adresy do przekazywania dalej, które nie wymagają weryfikacji, mają stan weryfikacji accepted.

Włączanie automatycznego przekazywania dalej

Wywołaj metodę updateAutoForwarding, aby włączyć automatyczne przekazywanie na koncie. Aby zadzwonić, musisz podać zarejestrowany i zweryfikowany adres do przekazywania dalej, a także podjąć działanie w odniesieniu do przekierowywanych wiadomości.

Aby na przykład włączyć automatyczne przekazywanie dalej i przenieść przekierowane wiadomości do kosza:

Java

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;
  }
}

Python

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()

Aby wyłączyć automatyczne przekazywanie dalej, wywołaj updateAutoForwarding i ustaw właściwość enabled na false.

Przekazywanie określonych wiadomości

Funkcja automatycznego przekazywania dalej wysyła wszystkie odebrane wiadomości na konto docelowe. Aby selektywnie przekazywać wiadomości, użyj filtrów i utwórz reguły, które przekazują wiadomości w odpowiedzi na atrybuty lub zawartość wiadomości.