Admin SDK 群组迁移服务

借助 Admin SDK 群组迁移服务,您可以在 Apps Script 中使用 Admin SDK 的 Groups Migration API。借助此 API, 网域管理员(包括转销商)可以将电子邮件从公共文件夹和分发列表迁移到 Google 群组讨论归档。

参考

如需详细了解此服务,请参阅 Admin SDK Groups Migration API 的参考文档。与 Apps 脚本中的所有高级服务一样,Admin SDK 群组迁移服务使用的对象、方法和参数均与公共 API 相同。如需了解详情,请参阅如何确定方法签名

如需报告问题和查找其他支持,请参阅 Admin SDK 群组迁移支持指南

示例代码

以下示例代码使用该 API 的版本 1

将电子邮件从 Gmail 迁移到 Google 群组

此示例会从用户 Gmail 收件箱中的最新三个会话中分别获取三封采用 RFC 822 格式的邮件,然后根据电子邮件内容(包括附件)创建一个 Blob,并将其插入网域中的 Google 群组。

advanced/adminSDK.gs
/**
 * Gets three RFC822 formatted messages from the each of the latest three
 * threads in the user's Gmail inbox, creates a blob from the email content
 * (including attachments), and inserts it in a Google Group in the domain.
 */
function migrateMessages() {
  // TODO (developer) - Replace groupId value with yours
  const groupId = 'exampleGroup@example.com';
  const messagesToMigrate = getRecentMessagesContent();
  for (const messageContent of messagesToMigrate) {
    const contentBlob = Utilities.newBlob(messageContent, 'message/rfc822');
    AdminGroupsMigration.Archive.insert(groupId, contentBlob);
  }
}

/**
 * Gets a list of recent messages' content from the user's Gmail account.
 * By default, fetches 3 messages from the latest 3 threads.
 *
 * @return {Array} the messages' content.
 */
function getRecentMessagesContent() {
  const NUM_THREADS = 3;
  const NUM_MESSAGES = 3;
  const threads = GmailApp.getInboxThreads(0, NUM_THREADS);
  const messages = GmailApp.getMessagesForThreads(threads);
  const messagesContent = [];
  for (let i = 0; i < messages.length; i++) {
    for (let j = 0; j < NUM_MESSAGES; j++) {
      const message = messages[i][j];
      if (message) {
        messagesContent.push(message.getRawContent());
      }
    }
  }
  return messagesContent;
}