STARTTLSでSMTP認証 Gmailをメーラーとして使う

STARTTLSでSMTP認証を利用しているだろうか?Gmailはメーラーとしても利用することができる。また、STARTTLSでSMTP認証が可能であれば、送信サーバをGmailではなく作成したメールサーバ(Postfix)に任せることもできる。ただし、検証は2025年7月現在のため、いつまでこの設定が利用できるかはわからない。

関連記事:AlamaLinux9のPostfixにDKIM導入SASLユーザの追加
メール送信のガイドライン

STARTTLSでSMTP認証とは?

✅ STARTTLSとは?

  • SMTP通信において、プレーンテキスト接続をTLS(暗号化)に昇格させる拡張コマンド
  • ポート:通常587(submission)または25番ポート
  • SMTPセッションの中で STARTTLS を送って TLS 暗号化を開始

✅ SMTP認証(AUTH)とは?

  • メール送信者が正当なユーザーであることを確認するための認証
  • コマンド例:AUTH PLAIN, AUTH LOGIN, AUTH CRAM-MD5 など
  • 暗号化されていない接続では危険なので、TLSが始まってから認証を行う

📥 典型的な通信の流れ(587ポート)

markdownコピーする編集する1. クライアント: 接続 (587/tcp)
2. サーバ: EHLO に応答(STARTTLS をサポート表明)
3. クライアント: STARTTLS 要求
4. TLS ハンドシェイク(ここから通信は暗号化)
5. クライアント: EHLO(再送)
6. クライアント: AUTH PLAIN または LOGIN(認証情報を暗号化して送信)
7. サーバ: 認証成功(235)
8. 通常のSMTP処理へ(MAIL FROM, RCPT TO, DATA...)

STARTTLS SMTP認証をするためのSMTPサーバの構築

名前のとおりTLSなので、Let's Encrypt の Certbotを利用することにする。また、構築するための構成・仕様は次のとおりとする。

メーラー:Gmail
メールアドレス:ispace@starttls.aquila.jp
ドメイン:aq3starttls.aquila.jp
SMPT認証方式:STARTTLS (PLAIN LOGIN)

SMPPポート:587
POP3ユーザ名:ispace
POP3パスワード:PASSWORD
POP3ポート:110番

dnf install certbot
dnf install postfix dovecot

certbot certonly --standalone \
-d aq3starttls.aquila.jp \
-m certbot@aq3starttls.aquila.jp \
--agree-tos -n

vi /etc/aliases
certbot: root
newaliases

vi /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

AlmaLinux9であればデフォルトのままでOK

cd /etc/postfix/
cp main.cf main.cf.org

vi main.cf
myhostname = aq3starttls.aquila.jp
mydomain = aq3starttls.aquila.jp
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $mydomain, $myhostname, localhost.$mydomain, localhost
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
smtpd_banner = $myhostname ESMTP unknown

smtpd_tls_cert_file = /etc/letsencrypt/live/aq3starttls.aquila.jp/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/aq3starttls.aquila.jp/privkey.pem
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes

cp master.cf master.cf.org
vi master.cf
submission inet n - n - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_tls_auth_only=yes
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

systemctl restart postfix

STARTTLSの動作確認

printf '\0ispace@aq3starttls.aquila.jp\0PASSWD' | base64
XXXXZUBhcTNzdGFydHRscy5hcXVpbGEuanDDQW1lbm9oaTY3JA==

①base64で暗号化しておく

openssl s_client -connect aq3starttls.aquila.jp:587 -starttls smtp
    Start Time: 1753579755
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
AUTH PLAIN XXXXcGFjZUBhcTNzdGFydHRscy5hcXVpbGEuanDDQW1lbm9oaTY3JA==
235 2.7.0 Authentication successful

② 1のパスワードを利用する

これで、PostfixでSTARTTLSの認証が成功したことが分かる

Gmailをメーラーとして使うための設定

特別な設定は不要なので、DovecotなどでPOP3あるいはPOP3Sの設定を行おう。POP3も利用可能なのでセキュリティ的によろしくないが、最低限の受信設定を行う。

cd /etc/dovecot/conf.d/

vi 10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login

vi 10-mail.conf
mail_location = maildir:~/Maildir

vi 10-master.conf
service pop3-login {
  inet_listener pop3 {
    port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}

vi 10-ssl.conf
ssl = no

systemctl start dovecot
systemctl enable dovecot

SMTP認証をcyrus-saslを利用する場合

SMTP認証をUNIXログインを使わずSASL2で共通パスワードを利用する

vi /etc/sasl2/smtpd.conf
#pwcheck_method: saslauthd
#mech_list: plain login
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain

saslpasswd2 -c -u aq3starttls.aquila.jp smtpauth
chgrp postfix /etc/sasl2/sasldb2
chmod 640 /etc/sasl2/sasldb2

systemctl restart saslauthd

STARTTLSを利用してGmailをメーラーとして使う

  1. Gmailにログイン@gmail.com でも @yourdomain.com でも可)
  2. 右上の「⚙️ 設定」 → 「すべての設定を表示」
  3. 「アカウントとインポート」タブを開く
  4. 「名前」→ 「他のメールアドレスを追加」 をクリック
  5. 以下のように入力:
項目入力内容
名前任意(例:送信者名)
メールアドレス例:ispace@aq3starttls.aquila.jp
ユーザー名 / パスワードispace / PASSWORD
SMTP サーバー例:aq3starttls.aquila.jp
ポート587
ユーザー名smtpauth / PASSWORD
セキュリティ方式TLSを使用する(推奨) を選択

STARTTLSでSMTP認証

STARTTLS SMTP認証 POP3

STARTTLS SMTP認証メルアド

STARTTLSでSMTP認証 送信

STARTTLS SMTP認証追加

STARTTLS SMTP認証 Gmail STARTTLS

STARTTLS SMTP認証終了

STARTTLS SMTP認証の認証

Gmailに届いたメールをクリックしてGmailの認証を受けよう。