Migrationsdienst für Admin SDK-Gruppen

Script zum Migrieren von E-Mails in Google Groups-Diskussionsarchive.

Mit dem Admin SDK Groups Migration-Dienst können Sie die Groups Migration API des Admin SDK in Google Apps Script verwenden. Mit dieser API können Administratoren von Google Workspace-Domains (einschließlich Resellern) E-Mails aus öffentlichen Ordnern und Verteilerlisten in Google Groups-Diskussionsarchive migrieren.

Dies ist ein erweiterter Dienst, der vor der Verwendung aktiviert werden muss.

Referenz

Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation zur Admin SDK Groups Migration API. Wie alle erweiterten Dienste in Apps Script verwendet der Admin SDK Groups Migration-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter Methodensignaturen ermitteln.

Informationen zum Melden von Problemen und zu Supportoptionen finden Sie im Admin SDK Groups Migration-Supportleitfaden.

Beispielcode

Im folgenden Beispielcode wird Version 1 der API verwendet.

E‑Mails aus Gmail in eine Google-Gruppe migrieren

In diesem Beispiel werden drei RFC 822-formatierte Nachrichten aus den jeweils letzten drei Threads im Gmail-Posteingang des Nutzers abgerufen, ein Blob aus dem E-Mail-Inhalt (einschließlich Anhängen) erstellt und in eine Google-Gruppe in der Domain eingefügt.

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;
}