Zentyal + Postfix + alterMIMEを使用して、電子メールメッセージに顧客向けの特別オファーを追加する

こんにちは、夕方または夜、それはすべてあなたが私の記事を読んだ時間に依存します。



営業部門は、顧客とのやり取りで、通常の作業なしで電子メールで特別オファーを送信する必要がありました。 一言で言えば、何がどのように起こったかを説明します。



ソースデータ:

-Zentyal 5.0.1ベースのメールサーバー(postfix + dovecot + openDKIMなど)

-alterMIME v0.3.10

-文を含むHTMLテンプレート。



Postfix + alterMIMEロゴ付きのUnified Dynamic Corporate Signatureの記事とコメントに感謝しなければなりません。そこから主なアイデアを強調しました。



まず、 master.cf



ファイルに変更を加えます。



交換:



 smtp inet n - y - - smtpd
      
      





オン:



 smtp inet n - y - - smtpd -o content_filter=dfilt: dfilt unix - nn - - pipe flags=Rq user=filter argv=/etc/postfix/disclaimer.sh -f ${sender} -- ${recipient}
      
      





次に、ディレクトリ構造を作成します。



 useradd -r -c "Postfix Filters" -d /var/spool/filter filter mkdir /var/spool/filter mkdir /etc/postfix/disclaimer chown filter:filter /var/spool/filter chmod 750 /var/spool/filter
      
      





次に、実行可能なファイル/etc/postfix/disclaimer.shを次の内容で作成します。



 #!/bin/bash #   INSPECT_DIR=/var/spool/filter #   sendmail SENDMAIL=/usr/sbin/sendmail #  email   DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer/addresses EX_TEMPFAIL=75 EX_UNAVAILABLE=69 trap "rm -f in.$$" 0 1 2 3 15 cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } cat > in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } #    (       ) from_address=`grep "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1 | sed 's/^From: //g' | awk '{print $1}' | cut -d "@" -f 2 | grep -v ^h= | grep -v ^To` to_dom=`echo $to_address |cut -d "@" -f 2` my_domain="example.org" #       if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then #       if [ "$from_address" = "example.org" ]; then #    HTML  ContentTypeFirst=`grep -m 1 '^Content-Type: ' in.$$ | cut -d " " -f 2 | cut -d ";" -f 1` ContentTypeMixed=`grep -m 2 '^Content-Type: ' in.$$ | cut -d " " -f 2 | cut -d ";" -f 1 | tail -n 1` isHTML=true if [ "$ContentTypeFirst" = "" ] || [ "$ContentTypeFirst" = "text/plain" ]; then isHTML=false; fi if [ "$ContentTypeFirst" = "multipart/mixed" ] && [ "$ContentTypeMixed" = "text/plain" ]; then isHTML=false; fi if [ "$ContentTypeFirst" = "multipart/mixed" ] && [ "$ContentTypeMixed" != "text/html" ] && [ "$ContentTypeMixed" != "multipart/related" ] && [ "$ContentTypeMixed" != "multipart/alternative" ]; then isHTML=false; fi if $isHTML ; then /usr/bin/altermime --input=in.$$ \ --disclaimer=/etc/postfix/disclaimer/disclaimer.txt \ --disclaimer-html=/etc/postfix/disclaimer/disclaimer.html \ --xheader="X-Copyrighted-Material: Please visit https://www.example.org/privacy.htm" || \ { echo Message content rejected; exit $EX_UNAVAILABLE; } fi fi fi $SENDMAIL -oi "$@" < in.$$ exit $?
      
      





順番に:



DISCLAIMER_ADDRESSES-このファイルに営業部門の住所を入力します。原則として、ドメインを自動化できる場合は、アイデアが得られた記事に例を示します。



from_address、to_dom、およびmy_domain-このルールを他の部門に適用しないように、またオファーを含むレターを自分に送信しないように、フィルターを作成するために必要です。



disclaimer.html-写真などを含む文章を含むhtmlファイル



原則として、希望がある場合は、必要に応じて主なタスクである無限に変更できます。



PSこのソリューションはamavisd-newを介して実装できますが、メッセージの本文にxheaderを挿入できないため、このアイデアを放棄する必要がありましたが、これは別の記事のトピックです。



All Articles