LinuxQuestions.org
Support LQ: Use code LQ3 and save $3 on Domain Registration
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices

Reply
 
Search this Thread
Old 08-01-2003, 11:48 AM   #1
gabriele_101
Member
 
Registered: Oct 2001
Location: CAMBRIDGE, MA USA
Distribution: RH9 Kernel 2.4.20-18.9
Posts: 69

Rep: Reputation: 15
Arrow Procmail or other filter for outgoing mail


Is there a way to send outgoing mail to procmail or some other script before sending it out?

My users (specifically my family, friends) want to have their mail archived so that when they accidentally delete stuff they can call me up and beg me to restore it.

I've set up mail archiving on incoming mail using procmail, but don't know how to do it with outgoing mail. I have both sendmail and qmail installed, and am thinking of just using qmail but don't care all that much.

If I had the choice, I would prefer a method that allowed me to give the users the ability to turn archiving on/off so that if they have privacy concerns they can turn it off.

Any input would be GREATLY appreciated.

Thanks,

-G
 
Old 08-01-2003, 02:19 PM   #2
Pcghost
Senior Member
 
Registered: Feb 2003
Location: The Real Washington
Distribution: Ubuntu, Debian, SuSE, UnSlung, Android
Posts: 1,819

Rep: Reputation: 46
I think you could set up postfix or sendmail to handle outgoing mail, but I believe it is done with either a seperate machine or a seperate instance of the program handling outbound. Check the documentation of the mail server you choose carefully to see if it supports it.
 
Old 08-06-2003, 08:50 AM   #3
unSpawn
Moderator
 
Registered: May 2001
Posts: 27,309
Blog Entries: 54

Rep: Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857Reputation: 2857
Maybe try http://www.nber.org/copy-out.html
 
Old 08-18-2003, 05:35 PM   #4
gabriele_101
Member
 
Registered: Oct 2001
Location: CAMBRIDGE, MA USA
Distribution: RH9 Kernel 2.4.20-18.9
Posts: 69

Original Poster
Rep: Reputation: 15
Filtering Outgoing Mail

OK, I've tried it all, and nothing seems to work!

I've used the info at http://www.nber.org/copy-out.html and followed some of the follow-up suggestions. I've googled for hours now, and found nothing that works. When I add:

Code:
MAILER(procmail)dnl
LOCAL_RULE_0
R$*<@$*.procmail>$* $1@<$2>$3   map back of procmail copy
dnl This line below seems to cause the errors
R$*<@$+>$*  $#procmail $@/etc/procmailrc.out $:$1@$2procmail$3  send all external mail to procmail
d
To my sendmail.mc ; however, when I send or recieve email I get this error:

Code:
The original message was received at Mon, 18 Aug 2003 18:15:30 -0400
from localhost
with id h7IMFUP2007576

   ----- The following addresses had permanent fatal errors -----
<root@foobar.com> (reason: Can't create output)

   ----- Transcript of session follows -----
550 5.0.0 <root@foobar.com>... Can't create output

[ Part 2: "Delivery Status" ]

Reporting-MTA: dns; foobar.com
Received-From-MTA: DNS; localhost.localdomain
Arrival-Date: Mon, 18 Aug 2003 18:15:30 -0400

Final-Recipient: RFC822; root@foobar.com.procmail@foobar.com
Action: failed
Status: 5.3.0
Diagnostic-Code: X-Unix; 73
{blah blah blah...)
And messages don't get delivered to users at all. I don't want to archive mail to a single user. I want the users email to be archived to their own directory and files so that they have a permanent record of mail that traversed their account.

Here is a copy of /etc/procmailrc.out:
Code:
# -----------------------------------------------------------------
# Use this directory for archiving for all users.
ARCHIVE_DIR="/Storage/Archives/Mail"
# Use this  directory for archiving for this user.
USER_ARCHIVE_DIR="$ARCHIVE_DIR/$LOGNAME@$HOST"
# Use the current time for timestamp.
DATESTAMP=`mkdir -p $USER_ARCHIVE_DIR 2>&1 >/dev/null;date +%Y.%m`
# DATESTAMP=`date +%Y.%m`
# Use this file for archiving this months emails.
SENT_ARCHIVE_FILE="$USER_ARCHIVE_DIR/$DATESTAMP-sent.email"
# -----------------------------------------------------------------
# DO NOT DELETE THIS LINE UNLESS YOU DO NOT WANT ANY EMAILS BACKED UP EVER!
# Archive all incoming mail if the $DO_ARCHIVE variable is set.
:0c
$SENT_ARCHIVE_FILE
Note that /etc/procmailrc.out is identical to /etc/procmailrc EXCEPT that all instances of sent have been changed to received and that /etc/procmailrc works just fine as is.

Here is my entire sendmail.mc file as it supposedly should work accourding to on-line documentation:

Code:
divert(-1)dnl
dnl #
dnl # This is the sendmail macro config file for m4. If you make changes to
dnl # /etc/mail/sendmail.mc, you will need to regenerate the
dnl # /etc/mail/sendmail.cf file by confirming that the sendmail-cf package is
dnl # installed and then performing a
dnl #
dnl #     make -C /etc/mail
dnl #
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl
VERSIONID(`setup for Red Hat Linux')dnl
OSTYPE(`linux')dnl
dnl #
dnl # Uncomment and edit the following line if your outgoing mail needs to
dnl # be sent out through an external mail server:
dnl #
dnl define(`SMART_HOST',`smtp.your.provider')
dnl #
define(`confDEF_USER_ID',``8:12'')dnl
define(`confTRUSTED_USER', `smmsp')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/aliases')dnl
dnl define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
dnl define(`confAUTH_OPTIONS', `A p')dnl
dnl # 
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
dnl # use LOGIN. Other mechanisms should be used if the connection is not
dnl # guaranteed secure.
dnl #
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #     make -C /usr/share/ssl/certs usage
dnl #
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap
dnl #
dnl define(`confDONT_BLAME_SENDMAIL',`groupreadablekeyfile')dnl
dnl #
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl #
dnl # The -t option will retry delivery if e.g. the user runs over his quota.
dnl #
FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl #
dnl # The following causes sendmail to only listen on the IPv4 loopback address
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
dnl # by STARTTLS is preferred, but roaming clients using Outlook Express can't
dnl # do STARTTLS on ports other than 25. Mozilla Mail can ONLY use STARTTLS
dnl # and doesn't support the deprecated smtps; Evolution <1.1.1 uses smtps
dnl # when SSL is enabled-- STARTTLS support is available in version 1.1.1.
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.
dnl #
dnl # NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl #       a kernel patch
dnl #
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=inet6')dnl
dnl #
dnl # We strongly recommend not accepting unresolvable domains if you want to
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl # 
dnl # Also accept email sent to "localhost.localdomain" as local email.
dnl # 
LOCAL_DOMAIN(`localhost.localdomain')dnl
dnl #
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
dnl MASQUERADE_AS(`mydomain.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
dnl FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
dnl FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
LOCAL_RULE_0
R$*<@$*.procmail>$*	$1@<$2>$3	map back of procmail copy
dnl This seems to cause errors
R$*<@$+>$*	$#procmail $@/etc/procmailrc.out $:$1@$2procmail$3	send all external mail to procmail 
define(`confSMTP_LOGIN_MSG',`my-mailer.$m')
CAN ANY ONE HELP ?!?!?!?!?!



-G
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Server-wide outgoing mail filter mccomber Linux - Networking 1 11-02-2005 08:04 PM
how to add & register filter for intercepting the packets outgoing on port 80? jayashri Programming 2 11-08-2004 01:30 PM
Spam filter to external mail filter deadlock Linux - Software 1 06-16-2004 02:28 AM
How to separate Incoming Mail and Outgoing Mail on SENDMAIL LiloAma Linux - Networking 1 03-22-2004 02:24 AM
MS Security Virus Email bypasses Procmail Filter lewt Linux - Security 3 09-24-2003 06:32 PM


All times are GMT -5. The time now is 05:20 PM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration