前提条件
- PostfixとDovecotが既にMySQLデータベースと連携して設定されていること。
- 必要なデータベース(例:
mailserver
)およびテーブル(例:virtual_domains
,virtual_users
,virtual_aliases
)が存在していること。 - Dovecotのパスワードハッシュ方式(例:
SHA512-CRYPT
)を理解していること。
手順
- MySQLにログイン
まず、MySQLサーバーにログインします。以下のコマンドを使用して、適切なユーザー名とパスワードで接続してください。
mysql -u your_db_user -p
プロンプトが表示されたら、データベースユーザーのパスワードを入力します。
- データベースを選択
使用しているメールサーバー用のデータベースを選択します。例えば、データベース名が
mailserver
の場合:USE mailserver;
- 新しいメールアカウントを追加
仮想ユーザーを管理するテーブル(通常は
virtual_users
)に新しいユーザーを追加します。以下は、例として新しいユーザーを追加するSQL文です。INSERT INTO virtual_users (domain_id, password, email) VALUES ( (SELECT id FROM virtual_domains WHERE name = 'example.com'), '{SHA512-CRYPT}$6$rounds=5000$abcdefghijklmnopqrstuv$wxyz...', -- ハッシュ化されたパスワード 'newuser@example.com' );
insert into virtual_mailboxes (email,destination) values ('emailaddress','/to/mail/folder/');
注意点:
domain_id
は、ユーザーが所属するドメインのIDを参照します。サブクエリでvirtual_domains
テーブルから取得しています。password
は、セキュリティのためにハッシュ化された形式で保存する必要があります。Dovecotのdoveadm
ツールや他のパスワードハッシュ生成ツールを使用して生成してください。
- パスワードのハッシュ化
パスワードをハッシュ化するには、Dovecotの
doveadm
ツールを使用するのが一般的です。以下は、doveadm
を使用してパスワードをハッシュ化する例です。doveadm pw -s SHA512-CRYPT
コマンドを実行すると、パスワードの入力を求められます。入力後、ハッシュ化されたパスワードが表示されるので、それを先ほどのSQL文に使用します。
- メールボックスの作成
仮想メールボックスのディレクトリ構造を使用している場合、新しいユーザーのメールボックスを手動で作成する必要はありません。Dovecotが初回アクセス時に自動的に作成する設定になっていることが多いです。ただし、権限やディレクトリの所有者が正しく設定されていることを確認してください。
- PostfixとDovecotの再読み込み
新しいユーザーを追加した後、PostfixとDovecotに変更を認識させるためにサービスを再読み込みします。
sudo systemctl reload postfix sudo systemctl reload dovecot
または、以下のコマンドを使用してサービスを再起動することも可能です。
sudo systemctl restart postfix sudo systemctl restart dovecot
- 動作確認
新しく追加したメールアカウントでメールクライアント(例: Outlook, Thunderbird, Webmail)を設定し、送受信が正常に行えるか確認します。問題がある場合は、PostfixやDovecotのログファイル(通常は
/var/log/mail.log
や/var/log/maillog
)を確認してトラブルシューティングを行ってください。
追加のヒント
- エイリアスの設定: 特定のユーザーにエイリアス(転送先)を設定したい場合は、
virtual_aliases
テーブルに適切なエントリを追加します。INSERT INTO virtual_aliases (domain_id, source, destination) VALUES ( (SELECT id FROM virtual_domains WHERE name = 'example.com'), 'alias@example.com', 'newuser@example.com' );
- スクリプトの利用: 多数のメールアカウントを追加する場合、スクリプトを作成して自動化することを検討してください。これにより、手動でのミスを防ぎ、効率的に管理できます。
- セキュリティ: データベースへのアクセス権限を最小限に抑え、強力なパスワードを使用してください。また、定期的にバックアップを取り、データの安全性を確保してください。
以上が、PostfixとDovecotをMySQLで運用している環境でのメールアカウントの追加手順です。環境によっては設定やテーブル構造が異なる場合がありますので、既存の設定ファイルやデータベーススキーマを確認しながら進めてください。