Sponsored Content
Top Forums Shell Programming and Scripting Sendmail K command regex: adding exclusion/negative lookahead to regex -a@MATCH Post 302994229 by RobbieTheK on Monday 20th of March 2017 03:00:38 PM
Old 03-20-2017
Linux Sendmail K command regex: adding exclusion/negative lookahead to regex -a@MATCH

I'm trying to get some exclusions into our sendmail regular expression for the K command. The following configuration & regex works:
Code:
LOCAL_CONFIG
#
Kcheckaddress regex -a@MATCH
    [a-zA-Z_0-9.-]+<@[a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us|info|to|br|bid|cn|ru)
LOCAL_RULESETS
SLocal_check_mail
# check address against various regex checks
R$*                             $: $>Parse0 $>3 $1
R$+                             $: $(checkaddress $1 $)
R@MATCH                         $#error $: "553 Your Domain is Blocked for Unsolicited Mail"

So we are blocking anything@subdomain.domain.us but not anything@domain.us. I'd like to add exclusions for cities and schools so to allow user@ci.somedomain.us and user@subdomain.[state].us. (note that [state] means 1 of the 50 states including DC).

This regex with negative lookahead syntax is not working (using CA for California as a test):
Code:
(?!.*\@ci\..+?\.us$)(?!.*\@*\..+?\.ca.us$)([a-zA-Z_0-9.-]+@[a-zA-Z_0-9-]+?\.+[a-zA-Z_0-9.-]+?\.(us)$)

I get this error:
Code:
sendmail -bt
/etc/mail/sendmail.cf: line 199: pattern-compile-error: Invalid preceding regular expression

I'm pretty sure that sendmail's R & K commands do not support negative look-aheads. So if anyone can help re-write the regex in a sed-friendly format I'd be grateful! Here is a link to K command switches. Any suggestions on how to get the negative lookahead to work in sendmail?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

regex to match basename

Hi Can somebody please help me know how do i match the basename using a regular expression using posix standard in shell script suppose i want to match /u01/Sybase/data/master.dbf the result should be master.dbf as i want to match everything after the last / regards (8 Replies)
Discussion started by: xiamin
8 Replies

2. UNIX for Advanced & Expert Users

Regex to match IP address

What do you think of this regex to match IP address? I have been reading up on regex and have seen some really long ones for IP. Would this fail in any scenarios? (+\.){3}* (5 Replies)
Discussion started by: glev2005
5 Replies

3. Shell Programming and Scripting

Converting perl regex to sed regex

I am having trouble parsing rpm filenames in a shell script.. I found a snippet of perl code that will perform the task but I really don't have time to rewrite the entire script in perl. I cannot for the life of me convert this code into something sed-friendly: if ($rpm =~ /(*)-(*)-(*)\.(.*)/)... (1 Reply)
Discussion started by: suntzu
1 Replies

4. Shell Programming and Scripting

PCRE negative lookahead

I have read many tutorials and cannot get this to work. I need to use pcre (because that is what the library in the software we are using uses) and pcregrep everything except /home from the /etc/fstab pcregrep '(?!/home)' /etc/fstab It returns the entire fstab (This is on a RHEL5... (1 Reply)
Discussion started by: insania
1 Replies

5. Shell Programming and Scripting

Regex: Get the word before match

Hi Input: MYTEXT.aa.bb cc.MYTEXT.aa.bb ee.dd.cc.MYTEXT.aa.bb cc.NOTEXT.a.b Output: <empty> cc cc <empty> I would like to use a regex to extract the last word before MYTEXT without the dot (2 Replies)
Discussion started by: chitech
2 Replies

6. Shell Programming and Scripting

Regex to match only first occurence with grep

Hello to all, How would be the correct regex to match only the first occurence of the pattern 3.*6. I'm trying with 3.*6 trying to match only 34rrte56, but with my current regex is matching 4rrte567890123456789123powiluur56. And if I try with ? doesn't print anything echo... (6 Replies)
Discussion started by: Ophiuchus
6 Replies

7. Shell Programming and Scripting

Only Regex pattern match help

Hi We have a tool to monitor logs in our environment. The tool accepts log pattern match only using regex and I accept I am a n00b in that:confused:. I had been banging my head to make it work without much success and at last had to turn on to my last option to post it here. I had got great... (2 Replies)
Discussion started by: radioactive9
2 Replies

8. UNIX for Advanced & Expert Users

Regex to match Exact port number (netstat command)

Hi All, We have this regex:\\*.*?(.600).*?.(LISTEN|ESTABLISHED) OS = Solaris 10 The purpose of this regex is to match the ports in output of "netstat -an" and report if any ports between 6000-6009 are getting used. The only problem is if I have something like this (sample output as... (6 Replies)
Discussion started by: sk2code
6 Replies

9. Shell Programming and Scripting

Regex negative look and bash script

My script have to read logfile, and take some action, if in pattern are strings: 1) exit 0 strings pattern ... "INF - Status"... success 2) exit 1 (! as not) strings pattern ... "INF - Status"... !success Simple example, what works #!/bin/bash tail -f regex.log | while read LOGLINE ... (7 Replies)
Discussion started by: kvaikla
7 Replies

10. Shell Programming and Scripting

Mailq regex match

Hi, # mailq | awk '{match($0, /quota/)} {print $0}' | head -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 9A6A7DE117E 84309 Sat Sep 30 14:14:50 alerts-noreply+xxxxx=xxx.sg@xxx.xx.xxx (host alt1.gmail-smtp-in.l.google.com said: 452-4.2.2 The email account that you... (2 Replies)
Discussion started by: ashokvpp
2 Replies
mailstats(8)						      System Manager's Manual						      mailstats(8)

NAME
mailstats - Displays statistics about mail traffic SYNOPSIS
mailstats [-o] [-C cffile [-f stfile] FLAGS
Do not display the name of the mailer in the output. Use cffile as the name of the sendmail "cf" file instead of /var/adm/sendmail/send- mail.cf. Use stfile as the input statistics file instead of /var/adm/sendmail/sendmail.st. DESCRIPTION
The mailstats command reads the information in the /var/adm/sendmail/sendmail.st file (or in the file specified with the -f flag), formats it, and writes it to standard output. Note also that you can change the location of the sendmail.st file by editing its pathname in the sendmail.cf file. EXAMPLES
The format of the information is shown in the following example, in which the first field (M) contains a number that indicates the position of that mailer in the sendmail.cf file, starting at 0 (zero). For example, the first mailer in the sendmail.cf file corresponds to the number 0 in the mailstats display, the second mailer corresponds to the number 1, and so on. Statistics from Thu Feb 17 11:20:01 2000 M msgsfr bytes_from msgsto bytes_to msgsrej msgsdis Mailer 1 50 77K 1 3K 0 0 local 6 43 59K 58 99K 0 0 smtp ============================================================ T 93 136K 59 102K 0 0 The fields in the report have the following meanings: Indicates the position of the mailer in the sendmail.cf file. Indicates the number of messages received by the local machine from the indicated mailer. Indicates the number of bytes in the messages received by the local machine from the indicated mailer. Indicates the number of messages sent from the local machine using the indicated mailer. Indicates the number of bytes in the messages sent from the local machine using the indicated mailer. Indicates the number of rejected messages. Indicates the number of discarded messages. Indicates the name of the mailer. If sendmail transmits mail directly to a file, such as the dead.letter file or an alias target, the message and byte counts are credited to the prog mailer, as defined in the sendmail.cf file. However, mailstats will still default to var/adm/sendmail/sendmail.st. FILES
Specifies the command path Contains system statistics Contains configuration information for sendmail RELATED INFORMATION
Commands: sendmail(8) delim off mailstats(8)
All times are GMT -4. The time now is 10:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy