Sponsored Content
Top Forums UNIX for Advanced & Expert Users Sendmail: how to restrict delivery based on "to" or "from"? Post 302569565 by lupin..the..3rd on Monday 31st of October 2011 06:29:56 PM
Old 10-31-2011
Sendmail: how to restrict delivery based on "to" or "from"?

Hello,

I manage a large sendmail server that handles more than 20,000 pieces of mail per day. It's a bit unusual in that all this mail is only being sent to and from 4 local accounts. (It's an automated transaction processing system, whereby users submit a transaction via email attachment). I've got Sendmail configured to use Procmail for local delivery. My Procmail recipe then calls Cyrus Deliver for final message delivery into my Cyrus IMAP database. The four local mail accounts exist only within the Cyrus IMAP database, they are not unix user accounts on the system.

My problem is that Sendmail, when it receives a piece of incoming mail, has no way of determining if it's addressed to a valid account or not. It simply hands the mail to Procmail and lets procmail sort it out. Unfortunately, if someone makes a typo in the destination address, procmail simply drops the mail into a black hole and the person who submitted it never knows what happened!

For example, lets say one of my mail accounts is named Process@mydomain.com. If someone accidentally sends the mail to Lrocess@mydomain.com he does not receive any kind of rejection notice. Sendmail gladly accepts the message, hands it to Procmail for delivery, and then Procmail delivers it into an errors folder.

My understanding is that invalid account rejection should happen at the Sendmail level. How do I implement this in Sendmail? Here is the local delivery portion of my Sendmail.cf file:

# Cyrus Mailer using Procmail
Mprocmail, P=/usr/bin/procmail, F=lsDFMnPqA5@, S=10, R=20/40, T=X-Unix,
U=cyrus:mail,
A=procmail -p /etc/procmail/procmail.global CYRUSUSER=$u


I want Sendmail to call Procmail only for the four valid local accounts. For all other incoming mail, I want Sendmail to automatically bounce it back to the sender with an appropriate "invalid recipient" message.

Does anyone know how to do this? Thank you

Last edited by lupin..the..3rd; 10-31-2011 at 07:35 PM..
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies

2. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

3. Shell Programming and Scripting

"Join" or "Merge" more than 2 files into single output based on common key (column)

Hi All, I have working (Perl) code to combine 2 input files into a single output file using the join function that works to a point, but has the following limitations: 1. I am restrained to 2 input files only. 2. Only the "matched" fields are written out to the "matched" output file and... (1 Reply)
Discussion started by: Katabatic
1 Replies

4. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

7. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

8. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

9. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies
MAIL(1) 						      General Commands Manual							   MAIL(1)

NAME
mail - send and receive electronic mail SYNOPSIS
mail [-dpqrv] [-f file] [user] OPTIONS
-d Force use of the shell variable MAILER -f Use file instead of /usr/spool/mail/user as mailbox -p Print all mail and then exit -q Quit program if SIGINT received -r Reverse print order, i.e., print oldest first -v Verbose mode EXAMPLES
mail ast # Send a message to ast mail # Read your mail DESCRIPTION
Mail is an extremely simple electronic mail program. It can be used to send or receive email on a single MINIX system, in which case it functions as user agent and local delivery agent. If the flag MAILER is defined in mail.c, it can also call a transport agent to handle remote mail as well. No such agent is supplied with MINIX. When called by user with no arguments, it examines the mailbox /usr/spool/mail/user, prints one message (depending on the -r flag), and waits for one of the following commands: <newline> Go to the next message - Print the previous message !command Fork off a shell and execute command CTRL-D Update the mailbox and quit (same as q) d Delete the current message and go to the next one q Update the mailbox and quit (same as CTRL-D) p Print the current message again s [file] Save message in the named file x Exit without updating the mailbox To send mail, the program is called with the name of the recipient as an argument. The mail is sent, along with a postmark line containing the date. For local delivery, a file named after the recipient in the directory /usr/spool/mail must be writable. If the directory /usr/spool/mail does not exist then the mail is dumped on the console, so that system programs have a way to notify a user on a system that does not have a mail spool. MAIL(1)
All times are GMT -4. The time now is 03:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy