メール設定 — Nextcloud SMTP (Gmail) + ホスト msmtp

// MAIL — 最終更新: 2026-08-26 / R640 自前メールサーバの名乗りドメインを追記
【2026-08-26 現況】このページの Nextcloud SMTP / msmtp 設定は maguro 上のもので、現在停止している。 maguro 本体 (192.168.10.31) は応答せず IPMI (192.168.10.30) のみ生存のため、 Nextcloud とその SMTP 送信は動作していない。 以下は復旧時の参照用。

一方 R640 の自前メールサーバ (postfix / dovecot / opendkim) は active で稼働している。 ただし二重NAT のため外部からの着信 (25/465/587/143/993/110/995) は届かない。
R640 自前メールサーバの名乗りドメイン (2026-08-26 追記)
katuo-solutions.com は台帳に未記載だったが、 R640 メールサーバの中核ドメインである。 実機の /etc/postfix/main.cf で以下のように使われている。
項目値備考
myhostnamemail.katuo-solutions.compostfix が SMTP で名乗るホスト名 (HELO/EHLO)。 全ドメイン共通の名乗りに統一する設計 (2026-05-16 の「案③ 名乗り統一」)
smtpd_tls_cert_file/etc/letsencrypt/live/mail.katuo-solutions.com/fullchain.pemSMTP の TLS 証明書もこのドメイン。 LE 証明書は取得済み
mydestinationlocalhost—
virtual_mailbox_domains/etc/postfix/virtual_domains実際の受信ドメインはこのファイルで管理
nginxsites-enabled/mail-katuo-solutions.com:80 で /var/www/letsencrypt を配信 (ACME challenge 用)
要対応 — DNS がダミー値のまま。 2026-08-26 に確認したところ、
  • katuo-solutions.com の A レコードが 192.0.2.1 — これは RFC 5737 のドキュメント用予約アドレスで、 実在するホストではない
  • mail.katuo-solutions.com の A レコードが 192.168.10.21 — プライベートIPが公開DNSに載っている
  • MX レコードは未設定
  • NS は Cloudflare (grannbo/miles.ns.cloudflare.com) でドメイン自体は実在
送信側が名乗る mail.katuo-solutions.com を受信側サーバが正引きしても実際の送信元IPと一致しないため、 SPF / 逆引き整合性の評価で不利になり、 迷惑メール判定されやすい。 移転して固定IP回線を再契約する際に、 A レコードを実際のグローバルIPへ、 PTR (逆引き) と併せて整備する必要がある。 ※ OCN IP1 プランでは PTR の個別変更が不可 (2026-05-19 に申請却下済) のため、 smart relay (Amazon SES 等) か IP8 アップグレードの検討が前提となる。

運用中 Nextcloud から SMTP送信 + maguro ホスト側 msmtp 兼用

概要

maguro 上の Nextcloud Docker コンテナに Gmail SMTP を設定し、 システムメール送信を有効化。 ホスト側にも msmtp を導入してスクリプト/監視通知の補助に。

項目内容
NC終端ホストmaguro (旧 R640 からの移植は Phase 2 / 2026-05-14 完了)
コンテナcompose-app-1 (compose /opt/nextcloud/compose/)
初期設定日2026-03-31 (R640時代) → 2026-05-14 maguro 移植時に再投入
送信元neo.wan.chance@gmail.com
Telegram通知の併用: 監視系 (supermicro-watch / mdadm-watch / raid-watch / cert-watch / wp-katuocloud-db-backup) は SMTP ではなく Telegram Bot API で送る方針。 メールは Nextcloud の利用者宛通知 + 緊急時の二次経路として運用。
Nextcloud SMTP 設定値
項目値
mail_smtpmodesmtp
mail_smtphostsmtp.gmail.com
mail_smtpport587
mail_smtpsecuretls
mail_smtpauth1
mail_smtpnameneo.wan.chance@gmail.com
mail_smtppasswordGoogle アプリパスワード (16文字)
mail_from_addressneo.wan.chance
mail_domaingmail.com
設定コマンド (再適用用)
# maguro Docker内 occ で設定 (www-data ユーザで実行)
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtpmode --value="smtp"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtphost --value="smtp.gmail.com"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtpport --value="587"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtpsecure --value="tls"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtpauth --value="1"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtpname --value="neo.wan.chance@gmail.com"
docker exec -u www-data compose-app-1 php occ config:system:set mail_smtppassword --value="(アプリパスワード)"
docker exec -u www-data compose-app-1 php occ config:system:set mail_from_address --value="neo.wan.chance"
docker exec -u www-data compose-app-1 php occ config:system:set mail_domain --value="gmail.com"

# 確認
docker exec -u www-data compose-app-1 php occ config:system:get mail_smtpname
docker exec -u www-data compose-app-1 php occ config:system:get mail_from_address
ホスト側 msmtp (maguro)
// インストール
apt install msmtp msmtp-mta mailutils -y
// /etc/msmtprc
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account        gmail
host           smtp.gmail.com
port           587
from           neo.wan.chance@gmail.com
user           neo.wan.chance@gmail.com
password       (アプリパスワード)

account default : gmail
chmod 600 /etc/msmtprc
chown root:root /etc/msmtprc
// テスト送信
echo "test from maguro" | mail -s "テスト" neo.wan.chance@gmail.com
動作確認
項目結果
ホスト側 msmtpOK mail コマンドで送信成功
Nextcloud 管理画面「テストメール送信」OK admin 宛に着信確認
顧客向け通知 (パスワード再発行等)OK NC組込テンプレで送信
アプリパスワード管理
注意: アプリパスワードは Google アカウント (neo.wan.chance@gmail.com) で管理。 不要になった場合は即時失効。 漏洩疑惑時は迷わず再発行。

管理 URL: https://myaccount.google.com/apppasswords

再発行した場合は以下 2 箇所を同時更新:

  1. maguro /etc/msmtprc の password 行
  2. NC: docker exec -u www-data compose-app-1 php occ config:system:set mail_smtppassword --value="..."
将来課題
  • ! 独自ドメイン送信 (例: noreply@katuocloud.com / noreply@k2-o.net) への切替検討。 Gmail SMTP の “送信元アドレス” は登録済アドレスに限定されるため、 SPF/DKIM/DMARC 設定込みの自前 MTA か、 SendGrid/Postmark 等の SaaS を検討。
  • ! 顧客通知のテンプレ整理 (現状は NC 標準テンプレ任せ)
  • ✓ Telegram 通知系は別経路で運用済