إدارة إعادة التوجيه

يمكنك استخدام الإعدادات لضبط إعادة التوجيه في حساب. لاستخدام عنوان بريد إلكتروني لإعادة التوجيه، يجب أن يلبّي العنوان أحد المعايير التالية:

  • تم إثبات ملكية عنوان البريد الإلكتروني. لمزيد من المعلومات، راجِع إنشاء عناوين إعادة التوجيه والتحقق منها.
  • ينتمي عنوان البريد الإلكتروني إلى النطاق نفسه مثل المُرسِل.
  • ينتمي عنوان البريد الإلكتروني إلى نطاق فرعي ضمن نفس نطاق المُرسِل.
  • ينتمي عنوان البريد الإلكتروني إلى اسم نطاق مستعار تم إعداده كجزء من حساب Google Workspace نفسه.

وإذا لم يتقيّد عنوان البريد الإلكتروني لإعادة التوجيه بإحدى هذه القواعد، سيتعذّر إتمام عملية إعداد إعادة التوجيه باستخدام واجهة برمجة التطبيقات.

للحصول على معلومات عن كيفية إنشاء عناوين إعادة التوجيه أو إدراجها أو الحصول عليها أو حذفها يُرجى الاطّلاع على مرجع عناوين إعادة التوجيه.

للحصول على معلومات حول كيفية الحصول على إعدادات إعادة التوجيه أو تعديلها، يمكنك الاطّلاع على مرجع الإعدادات.

إنشاء عناوين إعادة التوجيه والتحقق منها

يجب إنشاء عناوين إعادة التوجيه قبل الاستخدام. في بعض الحالات، على المستخدمين أيضًا إثبات ملكية العنوان.

إذا كان Gmail يتطلب التحقق من المستخدم لعنوان إعادة التوجيه، يتم عرض العنوان مع الحالة pending. يتم إرسال رسالة تحقق تلقائيًا إلى عنوان البريد الإلكتروني المستهدف. يجب على مالك عنوان البريد الإلكتروني إكمال عملية إثبات الملكية قبل استخدامه.

تكون حالة إثبات ملكية عناوين إعادة التوجيه التي لا تتطلب إثبات الملكية accepted.

تفعيل إعادة التوجيه التلقائي

عليك استدعاء الطريقة updateAutoForwarding لتفعيل إعادة التوجيه التلقائي في أحد الحسابات. تتطلب المكالمة إضافة عنوان إعادة توجيه مسجَّل وتم إثبات ملكيته، بالإضافة إلى اتخاذ إجراء بشأن الرسائل المُعاد توجيهها.

على سبيل المثال، لتفعيل إعادة التوجيه التلقائي ونقل الرسائل المُعاد توجيهها إلى المهملات:

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/settingssnippet/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.

إعادة توجيه رسائل محدّدة

تعمل إعادة التوجيه التلقائي على إرسال جميع الرسائل المُستلَمة إلى الحساب المستهدف. لإعادة توجيه الرسائل بشكل انتقائي، استخدِم الفلاتر لإنشاء قواعد يتم إعادة توجيهها استجابةً لسمات الرسالة أو محتواها.