アドオンについて

アドオンは Pro版のみの機能です

アドオンは、PMail Server の SMTP 又は MTA がメール処理(SMTPの場合は受信、MTA の場合は配信)後に外部プログラム、又は特殊コマンドを実行する機能です。
このアドオンから実行されるプログラムをアドオンプログラムと呼びます。
以下の用語はそれぞれ下記の意味を持ちます。

アドオンプログラムは、Windows で実行できるプログラムで、実行後に必ず自動で終了するプログラムであれば、下記を除くどのようなプログラムも利用可能です。(例:受信したメールに対して Perl を起動し、メールを加工した後に処理を続行など)
SMTP はマルチスレッドで稼働する為、アドオンプログラムは同時起動が保証されているアプリケーションを指定してください。同時起動ができないアプリケーションについては動作保証はありません。

アドオンには4種類あり、それぞれ実行できる処理内容と動作が異なります。
●addon.txt によるアドオン実行について
  1. 特定のアカウントでのみアドオンプログラムを実行するには、アカウントのメールボックス内に「addon.txt」を作成します。

  2. addon.txt の中は以下のように記述を行います。

    <実行するプログラムへのフルパス> <オプション>
    (以下、複数行記述可)


    記述例
    cmd /c copy "%m" "c:\temp\%f"

    以下の展開用マクロを利用することができます。

    (*1) メールアドレスは SMTPプロトコル中で指定されるメールアドレス(MAIL FROM: / RCPT TO:)となります。ヘッダ内のアドレス(From: / To:)ではありません。

  3. 全てのアドオンプログラムの実行が終了された時点で、メールが存在していた場合は、PMail Server がメールを受信(POP)できるように自動的に uidl.txt の更新を行います。
    アドオンによりファイルが削除された場合は uidl.txt の更新は行われません。

  4. アドオンの実行に失敗した場合は、失敗以降の処理は実行されません。

  5. 「サーバ管理」「SMTP用」「動作設定」内にある「非ローカルアドレス受信」で指定されたアカウントに addon.txt が設置されている場合 対象となる addon.txt は実行されます。


●user_addon.txt によるアドオン実行について
  1. 特定のドメインに所属する全てのアカウントで共通のアドオンプログラムを実行するには、ドメインフォルダ内に「user_addon.txt」を作成します。

  2. user_addon.txt の中は以下のように記述を行います。

    OMITALIASSTART
    アドオン実行から除外するメールアドレスのエイリアス部分(ワイルドカードと完全一致修飾の [ ] 利用可能)
    OMITALIASEND
    <実行するプログラムへのフルパス> <オプション>
    (以下、複数行記述可)

    除外するエイリアス部分が無い場合でも OMITALIASSTART と OMITALIASEND は記述する必要があります。

    記述例
    OMITALIASSTART
    webmaster
    OMITALIASEND
    cmd /c copy "%m" "c:\temp\%f"
    (エイリアス webmaster を除いてアドオンを実行)

    以下の展開用マクロを利用することができます。

    (*1) メールアドレスは SMTPプロトコル中で指定されるメールアドレス(MAIL FROM: / RCPT TO:)となります。ヘッダ内のアドレス(From: / To:)ではありません。

  3. 除外するエイリアス部分にはワイルドカードを利用することができます。完全一致(ただし大文字小文字は問わず)させる場合は [一致させるエイリアス] のように [ ] で囲います。

  4. 全てのアドオンプログラムの実行が終了された時点で、メールが存在していた場合は、PMail Server がメールを受信(POP)できるように自動的に uidl.txt の更新を行います。

  5. アドオンの実行に失敗した場合は、失敗以降の処理は実行されません。

  6. 「サーバ管理」「SMTP用」「動作設定」内にある「非ローカルアドレス受信」で指定されたアカウントが user_addon.txt が設置されたドメインに所属する場合 対象となる addon.txt は実行されます。


●nouser_addon.txt によるアドオン実行について
  1. 仮想ユーザーでアドオンプログラムを実行するには、ドメインフォルダ内に「nouser_addon.txt」を作成します。

  2. nouser_addon.txt の中は以下のように記述を行います。

    ADDONALIAS=<メールアドレス(ワイルドカードと完全一致修飾の [ ] が利用可能)>
    <実行するプログラムへのフルパス> <オプション>
    (以下、複数記述可)

    ADDONALIASEND
    ADDONALIAS= から ADDONALIASEND までが1セットとなります。
    またメールアドレスの部分にDefaultを設定した場合は他のメールアドレスに適合しかった場合に実行されます。

    記述例
    ADDONALIAS=A*@example.jp
    cmd /c copy "%m" "d:\pt1\%f"
    ADDONALIASEND
    メールアドレスのエイリアス行頭に a が付く場合に実行
    ADDONALIAS=B*@example.jp
    cmd /c copy "%m" "d:\pt2\%f"
    ADDONALIASEND
    メールアドレスのエイリアス行頭に b が付く場合に実行
    ADDONALIAS=C????@example.jp
    cmd /c copy "%m" "d:\pt3\%f"
    ADDONALIASEND
    メールアドレスのエイリアス行頭に c が付き全部で5文字だった場合に実行
    ADDONALIAS=[xyz@example.jp]
    cmd /c copy "%m" "d:\pt4\%f"
    ADDONALIASEND
    メールアドレスが xyz@example.jp に完全(ただし大文字小文字は問わず)に一致する場合に実行
    ADDONALIAS=Default
    cmd /c copy "%m" "d:\%f"
    ADDONALIASEND
    上記のいずれにも該当しない場合に実行

    以下の展開用マクロ及びコマンドを利用することができます。
  3. 仮想ユーザーはメールボックスを持たない為、処理されたメールは自動的に削除されます。

  4. アドオンの実行に失敗した場合は、失敗以降の行は実行されません。

  5. 「サーバ管理」「SMTP用」「動作設定」内にある「非ローカルアドレス受信」で指定されたアカウントが nouser_addon.txt が設置されたドメインに所属する場合 対象となる nouser_addon.txt が優先して実行され、非ローカルアドレス受信には配信されません。


●error_addon.txt によるアドオン実行について
  1. MTA でメールを配信し、以下の条件に当てはまる場合に実行されます。


    PMail Server は送信者のアドレスがローカルユーザー以外だった場合エラーメールの生成は行われませんが(ただし、「サーバ管理」「POP3・その他」にある「ローカル外受信」が設定されている場合は、そのアドレス宛にエラーメールの生成は行われます)、アドオンの場合にのみエラーメールと同等の内容のファイルを生成し、アドオンにそのファイルを渡します。

    エラーメールに対してアドオンプログラムを実行するには、ドメインフォルダ内に「error_addon.txt」を作成します。

    ローカル外受信を含めメールボックスに配信されるエラーメールそのものをアドオンで加工することはできません。
    主にエラーが発生した場合に、ヘッダ中から配信先やエラー内容を確認する為の機能です。(PMCによる同報送信で宛先が無いエラーが発生した場合リストから除外する等の処理をアドオンプラグラムを作成することで可能になります)

  2. error_addon.txt の中は以下のように記述を行います。

    DELETEERRORMAIL
    <実行するプログラムへのフルパス> <オプション>
    (以下、複数記述可)

    以下の展開用マクロ及びコマンドを利用することができます。
    error_addon.txt は下記のように実行されます。
    1. error_addon.txt は各ドメインフォルダの中に配置します。
    2. error_addon.txt のドメイン名の指定は送信者アドレスのドメインで決定されます。
    3. アドオンは送信者を問わず実行されます。(*1)
    4. アドオンには PMail Server が作成するエラーメールと同じ内容が別途作成され渡されます。
      このエラーメールは data フォルダ内に作成されます。
    5. アドオンファイルの中(記述位置はどの位置でも認識します)にDELETEERRORMAILが記載されている場合は、data フォルダ内に作成されたファイルの削除を行います。記載されていない場合は、実行するアドオン内で削除してください。
    6. 送信者がローカルユーザーだった場合は、Data フォルダ内に作成されたファイルとは別にエラーメールが各ユーザーのメールボックス内に生成されます。(*1)
    (*1)
    管理ドメインが example.com で

    送信者が存在する user@example.com だった場合
    a)アドオン用のファイルが生成されます。
    b)aで作成されたファイルにアドオンを実行します。
    c)アドオン終了後に、ユーザーのメールボックス内にエラーメールが生成されます。

    送信者が存在しない virtual@example.com だった場合
    a)アドオン用のファイルが生成されます。
    b)aで作成されたファイルにアドオンを実行します。
    c)アドオン終了後に、エラーメール受信用の管理者アドレスが指定されている場合は同アドレスのメールボックスにエラーメールが生成され、指定されていない場合はそのまま破棄が行われます。(外部へのエラーメール配信は行わない為)

    基本的な動作としては「エラーメールが発生」→「メールボックスへ生成又は破棄」の間に、割り込むような形で実行されます。
    実行の際にローカルユーザー宛なのか仮想ユーザー宛なのかの判断は行われませんので、この点についてはアドオン側で判断をお願い致します。

  3. アドオンの実行に失敗した場合は、失敗以降の行は実行されません。


●mtaaddon.txt によるアドオン実行について

MTA でメールを処理(配信)するメールすべてに対して実行されます。
処理が行われるタイミングが PMail Server2 の MTA が Spool フォルダを確認し、配信処理を実行する直前に行われます。
アドオンの中で該当メールが削除された場合は、配信は行われません。
mtaaddon.txt の中は以下のように記述を行います。

<実行するプログラムへのフルパス> <オプション>
(以下、複数記述可)

以下の展開用マクロ及びコマンドを利用することができます。
●アドオン実行のルール
●アドオン実行について注意事項
●特殊コマンド MTATRANSFER= について
アドオン内で実行できる特殊コマンドとして MTATRANSFER があります。
このコマンドは、対象のメールを PMail Server の転送ルールに近い状態で再配信します。
利用する場合はアドオンの実行行に下記のように記述します。

MTATRANSFER=<転送先サーバ(ホスト名又はIP)>,<転送先のポート番号>,<転送先アドレス(*1)>,<SMTP認証に使うアカウント名(*2)>
<> は必要ありません。区切りはカンマです

(*1) 転送先アドレスに * を指定した場合は、宛先のアドレスの変更は行われません。
user@example.com から unknwon@example.jp(仮想ユーザー)の場合

転送先アドレス送信者宛先
*user@example.comunknwon@example.jp
trans@example.jpuser@example.comtrans@example.jp

(*2) SMTP認証の設定は、pmman.exe の「サーバ管理」「転送」「転送用認証」の設定と共通になります。
このオプションを省略した場合はSMTP認証は行われません。またアカウント名に「Default」を指定した場合は「共通アカウント」が利用されます。


●アドオン Tips
アドオンプログラム開発者向けの注意事項