エイリアスの管理

送信元エイリアスは、アカウントでメールを送信できるメールアドレスを表します。各アカウントには、アカウントのメインのメールアドレスを表すエイリアスが少なくとも 1 つ必要です。

送信元エイリアスは、ウェブ インターフェースの「名前」機能に対応します。

エイリアスはアカウントの署名を管理するためにも使用されます。メールの署名を変更するには、送信元エイリアスに関する基本的な知識が必要です。上記の動画では、送信元エイリアスをループして、ユーザーのメインのメールアドレスの署名を変更する方法を示しています。

エイリアスの作成一覧表示get更新削除の方法については、SendAs リファレンスをご覧ください。

エイリアスの作成と確認

使用する前にエイリアスを作成する必要があります。場合によっては、ユーザーがエイリアスの所有権も確認する必要があります。

Gmail でエイリアスのユーザー確認が必要な場合、エイリアスは pending のステータスで返されます。確認メッセージが対象のメールアドレスに自動的に送信されます。メールアドレスを使用するには、そのメールアドレスの所有者が確認プロセスを完了する必要があります。

確認を必要としないエイリアスの確認ステータスは accepted です。

必要に応じて、verify メソッドを使用して確認リクエストを再送信します。

SMTP 設定

外部アドレスのエイリアスは、リモート SMTP メール送信エージェント(MSA)経由でメールを送信する必要があります。エイリアスの SMTP MSA を構成するには、smtpMsa フィールドを使用して接続の詳細を指定します。

署名の管理

エイリアスごとにメールの署名を設定することもできます。たとえば、ユーザーのメインのアドレスの署名を設定するには、次のようにします。

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/settings snippet/update_signature.py
from __future__ import print_function

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()