إنشاء مسودات الرسائل

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

في Google Workspace الإضافة، يمكنك إنشاء أدوات تم ربطها بالإجراءات. يمكنك استخدام إجراء لإنشاء مسودات رسائل إلكترونية جديدة، وملئها اختياريًا باستخدام المعلومات التي تم إدخالها في واجهة مستخدم الإضافة أو المعلومات من رسالة مفتوحة. على سبيل المثال، يمكنك إضافة زر في واجهة مستخدم رسالة add-on's لإنشاء رد على الرسالة المفتوحة حاليًا والتي تم ملؤها مسبقًا بمعلومات من الإضافة.

عند تنفيذ إجراء ينشئ رسائل، ينفِّذ Gmail دالة معاودة الاتصال لإنشاء المسودة وعرضها. يعرض Gmail بعد ذلك هذه المسودة في واجهة المستخدم التابعة له في نافذة إنشاء رسالة إلكترونية عادية، وبعد ذلك يمكن للمستخدم تعديلها وإرسالها حسب الحاجة.

ضبط إجراء لإنشاء مسودة رسالة

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

  1. تأكّد من أن البيان يتضمّن نطاق action.compose:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

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

  2. يمكنك إنشاء كائن Action وربطه بوظيفة معاودة الاتصال التي تحدّدها.

  3. استدعِ الأداة setComposeAction() وظيفة يد الأداة، وأدخِل الكائن Action وحدِّد ComposeEmailType.

  4. تنفيذ دالة معاودة الاتصال التي تنفّذ إجراء إنشاء المسودة. ويتم تقديم هذه الدالة كائن حدث كوسيطة. يجب أن تنفّذ دالة رد الاتصال ما يلي:

    1. إنشاء كائن GmailDraft.
    2. ويمكنك إنشاء كائن ComposeActionResponse باستخدام الفئة ComposeActionResponseBuilder والكائن GmailDraft.
    3. أرجِع ComposeActionResponse التي تم إنشاؤها.

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

يمكنك إنشاء المسودة كرسالة مستقلة جديدة أو الرد على رسالة حالية. تتحكّم هذه السياسة في تعداد ComposeEmailType الذي تم تقديمه إلى setComposeAction(). يمكنك إنشاء مسودات الردود كردود فردية أو 'reply-all' messages.

مسودات مستقلة

تؤدي المسودة المستقلة إلى بدء سلسلة محادثات جديدة وليست ردًا على أي رسالة حالية. يمكنك إنشاء مسودة مستقلة باستخدام إحدى وظائف خدمة Gmail التالية:

مسودات الردود

مسودة الرد هي جزء من سلسلة رسائل حالية. مسودات الردود هي إما ردود واحدة يتم إرسالها إلى مُرسِل الرسالة فقط أو & يمكنك إنشاء مسودة رد باستخدام إحدى وظائف خدمة Gmail هذه:

مثال

ويوضّح مقتطف الرمز التالي كيفية تخصيص إجراء يؤدي إلى إنشاء مسودة رد على زر.

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(
          composeAction,
          CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...

  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }