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.
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.
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
#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.