sendmail.mcを調べる!

sendmail.mcのパラメタについて
/usr/share/sendmail-cf/READMEから調べてみる。

SMTP_LOGIN_MSG

  • 意味
    SMTPグリーティングメッセージを定義
  • 使用例
    define(`confSMTP_LOGIN_MSG', `Sendmail hige')dnl
    こんな設定すると
    220 Sendmail ESMTP hige
    こんなんなる。1つめと2つめの間にESMTPが入るよう。

LOG_LEVEL

  • 意味
    ログレベル。9がデフォルト。数字を大きくするとログレベルが高くなる。

SMART_HOST

  • 意味
    外部配送のメールのネクストホップを指定。postfixのrelayhost
  • 使用例
    define(`SMART_HOST', `[192.168.46.1]')dnl
    こうすると
    メールを指定したホストにリレーする。[]で囲わないとFQDNと判定する為、注意。

DEF_USER_ID

  • 意味
    デフォルトのユーザーIDとの事。このデフォルト値は8:12となっていて。User・Groupともにmailになっている。

AUTO_REBUILD

  • 意味
    説明なし。ネットではエイリアスDBの自動更新とのこと。

TO_CONNECT

  • 意味
    初期接続のタイムアウトを定義。TCPの接続っぽい。OS次第では動作しないっぽいような事が書かれてる。

TRY_NULL_MX_LIST


DONT_PROBE_INTERFACES

  • 意味
    さっきのサイトだと"インタフェースに定義されているアドレスからホスト名を得て、クラス w に追加する機能を抑制したい場合に True を指定する。"クラスwはローカル配送対象のドメイン。クラスタwの確認方法は以下の通り。
    /usr/sbin/sendmail -bt -Csendmail.cf
    $=w
  • 使用例
    これをFalseにすると、自分のIPアドレスの逆引き結果で得られたドメインもクラスwに格納する。ためしにFlaseにしてクラスwを調べると、localhost4.localdomain4のようなエントリがクラスwに追加された。この機能は無効の方がいいでしょう。(DONT_PROBE_INTERFACES=Trueが良し!)

local_procmail

  • 意味
    procmailのパスとの事

ALIAS_FILE

  • 意味
    エイリアスファイルのパスとの事

STATUS_FILE

  • 意味
    ステータス情報を持つファイルとの事

UUCP_MAILER_MAX

  • 意味
    UUCPメーラーからの最大配送サイズとの事

UserDatabaseSpec

  • 意味
    userdatabaseのパスとの事。設定されているファイルが存在しない為、デフォルトでは動いていないのでしょう。機能意味は分かりません。

PRIVACY_FLAGS

  • 意味
    VRFYとかEXPNを無効にしたり、HELOコマンドを要求したりする制御動作を設定できる。デフォルトは、"authwarnings,novrfy,noexpn,restrictqrun"が指定されている。それぞれの詳細はHollywood-Kouenさんのページを参照。

AUTH_OPTIONS

  • 意味
    これまた意味が分かりません。
                          

調べて気付いたsendmailの動き

accessテーブルの動作について

デフォルトではaccessテーブルにはローカルホストからの接続しか許可していないが、リモートから宛先がクラスwに含まれるメールであれば受け付ける。あくまでリレー制御なのでローカル配送を制御するものではないのでしょう。

キュー構造

  • 1メールにつき2つのファイルが生成される。
    ファイル名の頭3文字がdfsは本文データが格納。qfsはヘッダ部分が格納される。 [#i11615a5]

デフォルトの配送制御

  • accessでOkで許可したホストからの接続でも、逆ひきができないと配送拒否をする。

ログの意味①

  • Sep 6 07:06:37 pike sendmail[6599]: s86E6a0F006599: to=<pikesaku@gmail.com>, delay=00:00:00, mailer=esmtp, pri=30309, dsn=4.4.3, stat=queued
    このs86E6a0F006599は、キューディレクトリ内のキューファイル名の一部となっている。
    こんな感じ
    # ls /var/spool/mqueue/*s86E6a0F006599
    /var/spool/mqueue/dfs86E6a0F006599 /var/spool/mqueue/qfs86E6a0F006599

sendmailのメール受信時の処理フロー


accessテーブルの書式について
タグ:値1 値2

  • タグは以下の3つが利用できる。
    • Connect: 接続元ホストを指定
    • From: エンベロープ送信者
    • To: エンベロープ受信者
  • 値1にはアドレスやドメイン等を指定
  • 値2は他にもあるが、以下を把握しておく
    • OK 他のルールで配送拒否されても受け付けるがリレーはせずローカル配送をする。とあるが、要はローカル配送ドメインであれば受け付けるって事でしょう。Webの情報ではOKがデフォルト動作で、accessテーブルにマッチしない場合は、OKになるみたい。動作確認したところ、そんな感じ。
    • RELAY OK+リレーも許可する。
    • REJECT エラーを返す。mail fromコマンド実行後にエラーを返す。
    • DISCARD 破棄をする

sendmailのクラスと、動作確認方法について


Sendmailの技術情報の入手方法

sendmail.cfのパラメタで、以下URLから意味を調べる!


  • 最終更新:2014-09-07 22:14:01

このWIKIを編集するにはパスワード入力が必要です

認証パスワード