Administra alias

Los alias "enviar como" representan las direcciones de correo electrónico que puede enviar un correo electrónico. Cada cuenta siempre tiene, al menos, un alias para representar a la dirección de correo electrónico principal de la cuenta.

Los alias de envío como corresponde al "Enviar correo electrónico como" en la sección interfaz web.

Los alias también se usan para administrar firmas para una cuenta. Conocimientos básicos de alias de envío para poder cambiar las firmas de los correos electrónicos. En el video anterior, se muestra cómo realizar un bucle a través de los alias de envío y modificar el firma para la dirección de correo electrónico principal de un usuario.

Para obtener información sobre cómo crear, lista, get, Actualizar, o borrar alias, consulta la SendAs.

Crea y verifica alias

Debes crear alias antes de usarlos. En algunos casos, los usuarios también deben verificar la propiedad de los alias.

Si Gmail requiere la verificación del usuario para un alias, el alias se devuelve con el el estado pending. Se envía automáticamente un mensaje de verificación al dirección de correo electrónico de destino. El propietario de la dirección de correo electrónico debe completar la verificación. proceso antes de que se pueda usar.

Los alias que no requieren verificación tienen el estado de verificación accepted.

Usa el método verify para volver a enviar la solicitud de verificación si es necesario.

Configuración de SMTP

Los alias para direcciones externas deben enviar correos electrónicos a través de un SMTP remoto de envío de correo electrónico (MSA, por sus siglas en inglés). Para configurar el MSA de SMTP para un alias, usa el campo smtpMsa para proporcionar los detalles de la conexión.

Administra firmas

También puedes configurar firmas de correo electrónico para cada alias. Por ejemplo, para configurar el firma para la dirección principal del usuario:

Java

gmail/snippets/src/main/java/UpdateSignature.java
import com.google.api.client.googleapis.json.GoogleJsonError;
import com.google.api.client.googleapis.json.GoogleJsonResponseException;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.gmail.Gmail;
import com.google.api.services.gmail.GmailScopes;
import com.google.api.services.gmail.model.ListSendAsResponse;
import com.google.api.services.gmail.model.SendAs;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;

/* Class to demonstrate the use of Gmail Update Signature API */
public class UpdateSignature {
  /**
   * Update the gmail signature.
   *
   * @return the updated signature id , {@code null} otherwise.
   * @throws IOException - if service account credentials file not found.
   */
  public static String updateGmailSignature() throws IOException {
        /* Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
            guides on implementing OAuth2 for your application. */
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(GmailScopes.GMAIL_SETTINGS_BASIC);
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credentials);

    // Create the gmail API client
    Gmail service = new Gmail.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Gmail samples")
        .build();

    try {
      SendAs primaryAlias = null;
      ListSendAsResponse aliases = service.users().settings().sendAs().list("me").execute();
      for (SendAs alias : aliases.getSendAs()) {
        if (alias.getIsPrimary()) {
          primaryAlias = alias;
          break;
        }
      }
      // Updating a new signature
      SendAs aliasSettings = new SendAs().setSignature("Automated Signature");
      SendAs result = service.users().settings().sendAs().patch(
              "me",
              primaryAlias.getSendAsEmail(),
              aliasSettings)
          .execute();
      //Prints the updated signature
      System.out.println("Updated signature - " + result.getSignature());
      return result.getSignature();
    } catch (GoogleJsonResponseException e) {
      // TODO(developer) - handle error appropriately
      GoogleJsonError error = e.getDetails();
      if (error.getCode() == 403) {
        System.err.println("Unable to update signature: " + e.getDetails());
      } else {
        throw e;
      }
    }
    return null;
  }
}

Python

gmail/snippet/settingsfragments/update_signature.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def update_signature():
  """Create and update signature in gmail.
  Returns:Draft object, including updated signature.

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create gmail api client
    service = build("gmail", "v1", credentials=creds)

    primary_alias = None

    # pylint: disable=E1101
    aliases = service.users().settings().sendAs().list(userId="me").execute()
    for alias in aliases.get("sendAs"):
      if alias.get("isPrimary"):
        primary_alias = alias
        break

    send_as_configuration = {
        "displayName": primary_alias.get("sendAsEmail"),
        "signature": "Automated Signature",
    }

    # pylint: disable=E1101
    result = (
        service.users()
        .settings()
        .sendAs()
        .patch(
            userId="me",
            sendAsEmail=primary_alias.get("sendAsEmail"),
            body=send_as_configuration,
        )
        .execute()
    )
    print(f'Updated signature for: {result.get("displayName")}')

  except HttpError as error:
    print(f"An error occurred: {error}")
    result = None

  return result.get("signature")


if __name__ == "__main__":
  update_signature()