web-dev-qa-db-ja.com

Postfixで中継されたすべてのメッセージの前にXヘッダーを付ける

LAMPスタックを実行している本番サーバーがいくつかあります。それぞれに、システムとPHPからのメールをキャッチし、スマートホスト( SendGrid SMTPサービス)を介して中継するローカルPostfixサーバーがあります。

スマートホストに送信されるすべての送信メッセージにカスタムヘッダーを追加したいと思います。これにより、SendGridでサーバーごとの統計をフィルタリングできます。何かのようなもの:

X-SMTPAPI: {"category": "www1"}

Postfixのドキュメントでは、Postfixの「アクセス」テーブルでPREPENDアクションを使用することに言及しています。そこで、/etc/postfix/accessに次の行を追加しました。

PREPEND X-SMTPAPI: {"category": "www1"}

accessファイルをポストマップでハッシュしました。

しかし、地図の使い方がわかりません。次のようなものは機能しません:

smtp_client_restrictions = check_client_access hash:/etc/postfix/access

Postfixにこのヘッダーを付加させるにはどうすればよいですか?

1
Martijn Heemels

これはあなたの正確な質問に答えます: https://web.archive.org/web/20150706131729/http://hoursofop.tumblr.com/post/1776027465

ここで報告されたクイックステップ:

  • ファイル/ etc/postfix/sendgrid_headersを作成し、次の行を追加します。

    /^From:/ PREPEND X-SMTPAPI: {“category” : “Category Name”}
    
  • 次の行でmaster.cfファイルを更新します。

    smtp      unix  -       -       n       -       -       smtp -o smtp_header_checks=regexp:/etc/postfix/sendgrid_header
    

それはUbuntuシステムに適用され、私にとっては完璧に機能しました。 master.cfで正しい「smtp」行を選択するように注意してください。タブを使用して-o行をインデントしました。

また、SendGridは、送信される前にメールからX-SMTPAPIヘッダーを削除することに注意してください。そのため、そこにはありませんが、SendGridダッシュボード内にカテゴリが表示されます。

4
WiseOwl9000

スペルが間違っているようです header_checks as smtp_client_restrictions、これは 正しいスペル 間違ったパラメータでもありません。 ☺

この種のことは、 sendmailの周りの単純なシム、PHP(または任意の)スクリプトが使用するように構成されている 、シムスクリプトは、catコマンドとechoコマンドを使用する簡単な演習です。MTSは、これを行うには実際には間違った場所です。

2
JdeBP

Sparkpostでも同様の問題が発生しました。配信オプションを設定するために、カスタムヘッダーを追加する必要がありました。

この問題(すべての電子メールにカスタムヘッダーを追加する)には、さまざまな解決策があります。

私の解決策は、Postfix header_checksを使用し、カスタムヘッダーを「From」ヘッダーの前に追加することです。

  • / etc/postfix/my_custom_headerという名前の新しいファイルを作成します。

    /^From:/i X-MSYS-API: { "options" : {"transactional": true} }
    
  • /etc/postfix/main.cfを編集します(下部に追加):

    # Add custom Sparkpost X-MSYS-API header to all mails
    header_checks = regexp:/etc/postfix/my_custom_header
    
  • postfix設定をリロードします(このコマンドはDebian Wheezy用であり、OSによって異なる場合があります)

    service postfix reload
    

EDIT:残念ながら、このメソッドはヘッダーをall電子メール(受信および送信)に追加します。 outboundメールにのみヘッダーを追加するメソッドをまだ探しています。

0
gog