Servizio di migrazione dei gruppi SDK Admin

Script per eseguire la migrazione delle email agli archivi delle discussioni di Google Gruppi.

Il servizio di migrazione dei gruppi dell'SDK Admin ti consente di utilizzare l'API Groups Migration dell'SDK Admin in Google Apps Script. Questa API consente agli amministratori dei domini Google Workspace (inclusi i rivenditori) di eseguire la migrazione delle email dalle cartelle pubbliche e dalle liste di distribuzione agli archivi delle discussioni di Google Gruppi.

Si tratta di un servizio avanzato che deve essere abilitato prima dell'uso.

Riferimento

Per informazioni dettagliate su questo servizio, consulta la documentazione di riferimento per l'API Groups Migration di SDK Admin. Come tutti i servizi avanzati in Apps Script, il servizio di migrazione dei gruppi dell'SDK Admin utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per saperne di più, consulta la sezione Come vengono determinate le firme dei metodi.

Per segnalare problemi e trovare altro supporto, consulta la guida all'assistenza per la migrazione di Admin SDK Groups.

Codice di esempio

Il seguente codice di esempio utilizza la versione 1 dell'API.

Eseguire la migrazione delle email da Gmail a un gruppo Google

Questo esempio recupera tre messaggi formattati RFC 822 da ciascuna delle ultime tre conversazioni nella Posta in arrivo di Gmail dell'utente, crea un blob dal contenuto email (inclusi gli allegati) e lo inserisce in un gruppo Google nel dominio.

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