How to add a Disclaimer To Outgoing Emails in Postfix

We have already dicussed how to install and configure postfix now we will learn about How to add a Disclaimer To Outgoing Emails in Postfix using altermime.

alterMIME is a small program which is used to alter your mime-encoded mailpacks as typically received by Inflex, Xamime and AMaViS.

What can alterMIME do?

Insert disclaimers
Insert arbitary X-headers
Modify existing headers
Remove attachments based on filename or content-type
Replace attachments based on filename

Installing alterMIME in debian

Use the following command to install altermime

#aptitude install altermime

This will complete the installation.

Configure altermime

Next we need to create the user filter with the home directory /var/spool/filter filter – alterMIME will be run as that user

#useradd -r -c “Postfix Filters” -d /var/spool/filter filter

#mkdir /var/spool/filter

#chown filter:filter /var/spool/filter

#chmod 750 /var/spool/filter

Afterwards we create the script /etc/postfix/disclaimer which executes alterMIME. Debian’s alterMIME package comes with a sample script that we can simply copy to /etc/postfix/disclaimer

#cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer

#chgrp filter /etc/postfix/disclaimer

#chmod 750 /etc/postfix/disclaimer

Now we need to add disclaimer to only outgoing email

we create the file /etc/postfix/disclaimer_emails which holds all sender email addresses (one per line) for which alterMIME should add a disclaimer

#vi /etc/postfix/disclaimer_emails

[email protected]
[email protected]

Save and exit the file

Now we open /etc/postfix/disclaimer and modify some configuration you can check this file

Next we need the text file /etc/postfix/disclaimer.txt which holds our disclaimer text. Debian’s alterMIME package comes with a sample text that we can use for now

#cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt

Finally we have to tell Postfix that it should use the /etc/postfix/disclaimer script to add disclaimers to outgoing emails. Open /etc/postfix/master.cf and add -o content_filter=dfilt: to the smtp line:

#vi /etc/postfix/master.cf

# # Postfix master process configuration file. For details on the format # of the file, see the master(5) manual page (command: “man 5 master”). # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ==========================================================================

smtp inet n – – – – smtpd

-o content_filter=dfilt: […]
at the end of the file add the following lines

[…]
dfilt unix – n n – – pipe
flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

Save and exit the file.

Now you need to restart the postfix mail server using the following command

#/etc/init.d/postfix restart

Sponsored Link

7 thoughts on “How to add a Disclaimer To Outgoing Emails in Postfix

  1. Hi there,

    I set this up – but the HTML isn’t being parsed properly by Outlook 2007.

    It puts a few = signs into the body of the HTML disclaimer, it happens when it’s sent as plaintext and HTML.

    Any ideas? I can’t figure it out!

    Cheers,

    Andrew

  2. Help needed,
    I am using Fedora core 6 and I had tried to add disclamer as per the instructions in this page, also googled and tried lots of other ways too.

    But when ever I try to send mail and cheks the maillog, its showing this error, and the mail is not send at all
    I am pasting the error from /etc/log/maillog

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    Oct 11 08:22:38 it001 pipe[5108]: fatal: pipe_command: execvp /etc/postfix/disclaimer: Permission denied
    Oct 11 08:22:38 it001 sendmail[5102]: m9BCMcLV005102: [email protected], ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30063, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 981A050068)
    Oct 11 08:22:38 it001 postfix/pipe[5107]: 981A050068: to=, relay=dfilt, delay=0.09, delays=0.06/0.01/0/0.02, dsn=4.3.0, status=deferred (temporary failure. Command output: pipe: fatal: pipe_command: execvp /etc/postfix/disclaimer: Permission denied )
    Oct 11 08:22:38 it001 postfix/smtpd[5103]: disconnect from it001[127.0.0.1]
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

  3. You should add

    #groupadd filter

    just below

    #useradd -r -c “Postfix Filters” -d /var/spool/filter filter

  4. Don´t work, using the sample.sh as disclaimer when the user send mail over imap (squierrelmail)

    $from_address = From:user@domain, when sendin in imap and don´t work,

    sendin in pop $from_address = user@domain and works fine

  5. i’m not find this line

    -o content_filter=dfilt: […]
    at the end of the file add the following lines

    please tell me how

  6. I have followed this how-to, step by step but I am failing to get my postifix starting after the changes made to /etc/postfix/master.cf
    When prompted to restart, it returns a fatal error.
    But when I remove the edits from the master.cf, the mail server fires like charm.
    I badly need this thing to work but am stack,
    I need help.
    Thank you.

  7. Sometimes, the following line doesn’t work in some language contexts:
    from_address=`grep -m 1 "From:" in.$$ | cut -d "" -f 1`
    This is because many mail clients code the “from” section like this when there’s an accent in the name:
    From: =?ISO-8859-1?Q?SOMEBODY_Val=E9rie?=
    <[email protected]>

    In order to make it work, replace the concerned line with :
    from_address=`grep -m 1 -A 1 "^From:" in.$$ |grep -E -o "\b[a-zA-Z0-9.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9.-]+\b"`

    It worked for me.

    Happy hacking!

Leave a comment

Your email address will not be published. Required fields are marked *