macOS で Postfix(SMTPメールサーバー)を起動するまで

サーバーアプリケーションでメール送信機能を実装したいため、ChatGPTに相談しながら色々考えました。

  1. SendGrid
  2. Mailgun
  3. Amazon SES (Simple Email Service)
  4. SMTPサーバー (例: Postfix, Exim)

SendGrid のサービスを使えばSMTPサーバーを自前で用意する必要がなくなります。料金も比較的安いと思いますし、開発コストを抑えたい場合は、このようなサービスを利用するのもありかと思います。

今回はSMTPサーバーを実装する方向で、開発環境でテストしてみました。なんとmacOSには、標準でPostfixがインストールされていました。この記事では、macOSにPostfixをインストールして設定する手順を示します。

Postfixのインストール

macOSにはPostfixがデフォルトでインストールされていますが、必要に応じて最新バージョンをインストールすることも可能です。

Postfixの有効化と設定ファイルの編集

/etc/postfix/main.cf を編集して、基本設定を行います。
sh
sudo nano /etc/postfix/main.cf

以下の設定を変更または追加します。

sh
# サーバー情報
myhostname = localhost
mydomain = local
myorigin = $myhostname

# メールの受信を許可するドメイン
mydestination = $myhostname, localhost.$mydomain, localhost

# ネットワーク設定
mynetworks = 127.0.0.0/8

# メールボックスの設定
home_mailbox = Maildir/

# SMTP接続の設定
inet_interfaces = loopback-only

Postfixの起動と確認

Postfixを起動して、動作を確認します。

sh
sudo postfix start

メールキューの状態を確認するには、以下のコマンドを使用します。

sh
postqueue -p

メールの送信テスト

以下のコマンドを使用して、ローカルユーザーにメールを送信します。

sh
echo "This is a test email" | mail -s "Test Postfix" your_username@localhost

メールの受信確認

受信したメールは、ユーザーのホームディレクトリの Maildir フォルダに保存されます。メールクライアントを使用して、メールを確認することもできます。

実際にはこんな感じでメールが格納されいます。

zsh
$ cat Maildir/new/1720238174.V1000011I18ff305M712029.mac.local
Return-Path: <your_username@localhost>
X-Original-To: your_username@localhost
Delivered-To: your_username@localhost
Received: by localhost (Postfix, from userid 501)
	id AB90518FF374; Sat,  6 Jul 2024 10:59:34 +0900 (JST)
To: your_username@localhost
Subject: Test Postfix
Message-Id: <20240706015934.AB90518FF374@localhost>
Date: Sat,  6 Jul 2024 10:59:34 +0900 (JST)
From: your_username@localhost (Toshihiko Arai)

This is a test email

とりあえず成功です!ただしこのままではGmailへ送信できませんので、TLSなどの設定を行う必要があります。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

関連記事