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

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

عند تشغيل إجراء ينشئ الرسائل، تنفِّذ 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(). يمكنك إنشاء مسودات الردود كردود فردية أو رسائل "الرد على الكل".

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

تبدأ مسودة مستقلة سلسلة محادثات جديدة ولا تردّ على أي رسالة حالية. يمكنك إنشاء مسودة مستقلّة باستخدام إحدى وظائف خدمة 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();
  }