mailx

We are using mailx to send email alerts. On occasions, it is updating our Distribution list with the mesage content.

The following is the relevant portion of the script :-

MAILGROUP=`more $MDS/feeds/alerts/distribution.lst`
export MAILGROUP
echo " " | mailx -s "MDS Alert - Refresh Complete" $MAILGROUP

The following is the distribution.lst :-

<email addresses>
From mis Wed Apr 30 10:20:07 2008
To: ::::::::::::::, <email addresses>
Subject: MDS Alert - Refresh Complete
Content-Length: 2

Note: I have replaced the list of email addresses with <email addresses>

Any ideas why the Distribution List is being updated and how to stop it happening ?

Thanks,
Paul.

Why are you using more to read the list? Could it be adding something which is interpreted by mailx as an instruction to write to the list file (if I interpreted your problem description at all correctly)? Just use cat instead, and/or protect the file so that it cannot be written to by the user running the script.

more and cat seem to do the same thing (I did a quick test).
I also tried to remove the write access to the distribution list, but the scripts failed to send the email.

It's just weird to use more because it's intended for interactive use, it's a human-friendly interface for when cat is cumbersome for humans to use.

The shell script, as posted, should absolutely not care whether or not it has write access to the file. There is more to this than you are revealing, I'm afraid.

Replacing more with cat on the freak theory that more sometimes prints something which causes the file it's reading to be corrupted when you run it inside backticks is the best I can offer at this point, sorry.

Hey,
Subject=Subject of mailing
MAIL_RECIPIENTS=xyz@abc.com
cat FILENAME1 | mailx -s "$Subject" $MAIL_RECIPIENTS

You can try this !
Thanks
Varun.:b:

Hi,

Thanks a lot for all your comments.
Replacing more with cat seems to have resolved the problem.
It was a strange one because more was not causing a problem when being run from the server. However, our mainframe kicks off the server script and the problem was only happenning then.

Again, thanks a lot.
Paul.

Hi!! I am trying to write a script that will send mail with a fixed content to email addresses fetched from a db2 table. I want the mail to appear with To, From, Cc and Subject Headers. Any idea how to do it.

This is what I have been trying:

db2 -x "SELECT USER_EMAIL_ID FROM <table_name> WHERE (LST_LOGIN_TS + 30 DAYS) >= TimeStamp (Current TimeStamp)" >mailing_list

mailing_list1=$(cat mailing_list | tr -s ' ' | tr '\n' ',' | sed 's/,$//')

cat body | mail -r "xyz@yahoo.com" -c abc@yahoo.com -s "Account Deactivation." $mailing_list1

#body is the name of the file that contains tha actual body of the mail to be sent.

But I am not sure of I can hardcode tha name of the sender using the -r option as I have done above. Also I am not sure if the names of sender, receipients, subject will appear as To:, From: and Subject: Headers in the mail. Any help will be appreciated.