Yönlendirmeyi Yönetme

Bir hesap için yönlendirmeyi yapılandırmak üzere Ayarlar'ı kullanabilirsiniz. Yönlendirme e-posta adresi olarak kullanılabilmesi için bir adresin aşağıdaki ölçütlerden birini karşılaması gerekir:

  • E-posta adresi doğrulandı. Daha fazla bilgi için Yönlendirme adresleri oluşturma ve doğrulama sayfasına bakın.
  • E-posta adresi, gönderenle aynı alana ait.
  • E-posta adresi, gönderenle aynı alanda bulunan bir alt alan adına aittir.
  • E-posta adresi, aynı Google Workspace hesabı kapsamında yapılandırılmış bir alan takma adına aittir.

Yönlendirme e-posta adresi bu kurallardan birine uymuyorsa API'yi kullanarak yönlendirme ayarlama işlemi başarısız olur.

Yönlendirme adresleri oluşturma, listeleme, alma veya silme hakkında bilgi için YönlendirmeAdresleri referansı sayfasına bakın.

Yönlendirme ayarlarını alma veya güncelleme hakkında bilgi için Ayarlar referansı bölümüne bakın

Yönlendirme adresleri oluşturma ve doğrulama

Kullanmadan önce yönlendirme adresleri oluşturmanız gerekir. Bazı durumlarda, kullanıcıların adresin sahipliğini de doğrulaması gerekir.

Gmail, bir yönlendirme adresi için kullanıcı doğrulamasını zorunlu kılıyorsa adres pending durumuyla döndürülür. Hedef e-posta adresine otomatik olarak bir doğrulama mesajı gönderilir. E-posta adresinin kullanılabilmesi için bu adresin sahibi, doğrulama işlemini tamamlamalıdır.

Doğrulama gerektirmeyen yönlendirme adreslerinin doğrulama durumu accepted.

Otomatik yönlendirmeyi etkinleştirme

Bir hesap için otomatik yönlendirmeyi etkinleştirmek üzere updateAutoForwarding yöntemini çağırın. Çağrı, hem kayıtlı hem de doğrulanmış bir yönlendirme adresinin yanı sıra yönlendirilen iletilerle ilgili bir işlem yapılmasını gerektirir.

Örneğin, otomatik yönlendirmeyi etkinleştirmek ve yönlendirilen iletileri çöp kutusuna taşımak için:

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 snippet'leri/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()

Otomatik yönlendirmeyi devre dışı bırakmak için updateAutoForwarding çağrısı yapın ve enabled özelliğini false olarak ayarlayın.

Belirli iletileri yönlendirme

Otomatik yönlendirme, alınan tüm iletileri hedef hesaba gönderir. Mesajları seçerek yönlendirmek için, ileti özelliklerine veya içeriğine göre yönlendirme yapan kurallar oluşturmak üzere filtreleri kullanın.