私はさくらのメールボックスを使って独自ドメインでメールが送信できるようにしているのですが、GitLabをセルフホスティングした時に、SMTPサーバの設定をさくらのメールボックスの場合どのようにすれば良かったのかを迷っていたためここにメモをしておきます。
前提
- 送信したいメールのドメイン(gitlab@example.comなど)からメールが送信できることを確認している。
- サーバ上でGitlabが使える状態になっている。
準備(事前に確認しておくこと)
①SMTP(送信)サーバの名前
SMTPサーバ名はさくらのレンタルサーバのサーバーコントロールパネルの画面右上のところから確認することができます。

赤枠で囲った初期ドメインがSMTPサーバ名となるのでメモしておきます。
② 使用するメールアドレス
③ 使用するメールアドレスのパスワード
設定
SMTPサーバの設定はgitlab.rbを編集することで行えるので、そのファイルのディレクトリまで移動します。
私の場合はdockerでGitlabをインストールしましたが、dockerの場合は、
docker container ls
と入力して、GitLabコンテナのIDを確認した後に、
docker container <GitLabコンテナのID> -it /bin/bash
で、GitLabコンテナの中に入ります。そして、
vi /etc/gitlab/gitlab.rb
でSMTPサーバの設定を記入します。(慣れていない人のために説明を加えると、viの場合は、「i」と入力してファイルを変更した後、エスケープキーを押した後で「:wq」と入力し編集内容を保存します。)
以下の2つの方法のどちらかで設定を行なってください。
メールアドレスとパスワードを直接ファイルに書き込む方法
このgitlab.rbファイルに次の内容を追加してください。一番上の部分に追加しても、ファイル内を移動してコメントアウトされているSMTPサーバの設定部分を編集してもどちらでもいいです。
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "example.sakura.ne.jp" #準備①の初期ドメイン
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "gitlab@example.com" #準備②のメールアドレス
gitlab_rails['smtp_password'] = "************" #準備③のパスワード
gitlab_rails['smtp_domain'] = "example.sakura.ne.jp" #準備①の初期ドメイン
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "gitlab@example.com" #準備②のメールアドレス
そしてファイルを保存した後に、以下のコマンドで編集内容を反映させます。
gitlab-ctl reconfigure
メールアドレスとパスワードを暗号化されたファイルに追加する方法
このgitlab.rbファイルに次の内容を追加してください。一番上の部分に追加しても、ファイル内を移動してコメントアウトされているSMTPサーバの設定部分を編集してもいいです。
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "example.sakura.ne.jp" #準備①の初期ドメイン
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_domain'] = "example.sakura.ne.jp" #準備①の初期ドメイン
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = "gitlab@example.com" #準備②のメールアドレス
ファイルを編集・保存した後、以下のコマンドで暗号化されたファイル内にメールアドレスとパスワードを書き込みます。(コマンド入力後、編集できるようになるまで少し待ちます)
gitlab-rake gitlab:smtp:secret:edit
「i」と入力をした後に、ファイルを以下のように編集します。
user_name: 'gitlab@example.com' #準備②のメールアドレス
password: 'gitlabpassword' #準備③のパスワード
入力したら、エスケープキーを押し、「:wq」で編集内容を保存します。
そしてファイルを保存した後に、以下のコマンドで編集内容を反映させます。
gitlab-ctl reconfigure
メール送信の確認
ここまで設定をしたら、実際にメールが送信できるのかを確認します。
以下のコマンドでGitLabのRailsコンソールを起動します。
gitlab-rails console
その後に、以下のコマンドで送信したいメールアドレス(ここではtarget@example.com)にメールを送信します。
irb(main):001:0> Notify.test_email('target@example.com', 'SMTPテストメール', 'このメールはGitLabのテストメールです').deliver_now
コマンドを実行した後に以下のように表示されていれば成功です。
=> #<Mail::Message:529840, Multipart: false, Headers: <Date: Tue, 06 May 2025 10:25:19 +0000>, <From: GitLab <gitlab@example.com>>, <Reply-To: GitLab <noreply@gitlab@example.com>>, <To: target@example.com>, <Message-ID: <681a37efe172_206d630ac63854@gitlab@example.com.mail>>, <Subject: SMTPテストメール>, <Mime-Version: 1.0>, <Content-Type: text/html; charset=UTF-8>, <Content-Transfer-Encoding: 7bit>, <Auto-Submitted: auto-generated>, <X-Auto-Response-Suppress: All>>