Mail, Linux

PostfixSMTP+MySQL+Laravel+CentOS

この記事の概要

ちょっと特殊な構成です。

  • メールサーバ、WEBサーバの2台構成
  • メールサーバ側
    ・送信アカウント認証とSMTPtls465のみの管理を行うという特殊なSMTPサーバ
    ・アドレス管理はPostfixAdminは使わず、Laravelで自作する
  • WEBサーバ側
    Pear::Mailを利用してメールサーバ経由でメール送信を行う

 

一般的なPostfix+Dovecot+MySQL+PostfixAdmin構成はこちらをどうぞ

 

仕様

  • MySQLのクエリでPostfixのSASLアカウントをシンプルに追加出来る
  • 465番SMTPSのみ待ち受け
  • WEBサーバからメールをSASL認証後に中継して転送する

 

postfixバージョン

 

MySQLのクエリでアカウント追加する

例:user1@example.netアドレスを利用出来るようにする

  • ユーザ:user1@example.net
  • パスワード:PasswordDayo

 

ドメイン追加

 

ユーザ追加

 

他の仕様

 

  • データベース:postfix
  • メールサーバホスト:mail1.example.net
  • 登録ドメイン1:example.net
    登録アドレス:tarou@example.net
  • 登録ドメイン2:example.com
    登録アドレス:hanako@example.com

 

メールサーバ側

 

cyrus-sasl-*のモジュールは重要で見落としやすい。

 

 

 

 

 

 

 

 

 

root初期パスワード確認

 

rootログイン

 

 

 

 

 

 

465 SMTPSのみ許可する

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WEBサーバ側

 

 

 

 

 

 

 

メールが届くことを確認出来た

 

 

 

メールサーバ側

メールアドレス管理アプリ作成

Laravelフレームワークでざっくり作っていきます。

 

WEBユーザの作成

 

 

 

 

Composerインストール

 

 

 

ここからはWEBユーザで作業

 

DB接続設定

 

プロジェクトに移動

 

 

 

 

認証make:auth

migrations, password_resets, usersテーブルが作成される

 

 

 

 

 

Mailboxリクエストの作成

 

メールアドレス追加時のバリデーションルール

 

 

Mailboxモデルの作成

 

 

 

 

 

Mailboxコントローラの作成

 

 

 

ビューの作成

 

index

 

メールアドレスの追加

 

メールアドレス編集ページ

 

ルーティング

 

ログイン後のリダイレクト先変更

 

アカウントの作成
https://IPアドレス/register

レジスターにアクセスしてアカウントを作成して下さいね~!

 

 

ログイン


https://IPアドレス/login

 

 

 

ログイン出来た

 

編集ページ

アクティブ1でSMTPアカウントは有効、0にするとそのアカウントではSMTP認証出来なくなる仕様です。

 

ログイン出来たらレジスターの無効化

 

メールサーバ側のWEBにはIP制限をかけるなどしたほうが良いでしょう。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)