Conversion From CentOS 5 To CentOS 7 & Mailx Changes
Everyone,
I have just upgraded a CentOS 5 server to a CentOS 7 server and am having difficulty with a change of behavior of mailx with the use of a command line of :
mail -s ‘This is the subject’ user@domain.com < text_file.txt On CentOS 5 when mailx was used by a program started by a cron job we were able to send a text file as an email message and the headers did not contain ‘Content-Transfer-Encoding: base64’ On CentOS 7 the headers contain ‘Content-Transfer-Encoding: base64’ and when the client gets the e-mail they are unable to open it up.
The interesting thing is that on CentOS 7 when the command line is used by typing the above command ‘Content-Transfer-Encoding: 7bit’ is placed in the header and the client can see the e-mail without a problem.
I have looked for a way to control the ‘Content-Transfer-Encoding:’
header to ‘7bit’ when we use a cron job, but I have not been able to figure out how.
Your suggestions would be appreciated.
Thank you,
5 thoughts on - Conversion From CentOS 5 To CentOS 7 & Mailx Changes
The version of mailx in Red Hat Enterprise Linux 5 is based off the old BSD
mailx program (in Debian it looks like it is still available as bsd-mailx). That version was ‘bit’ rotting and having problems with newer mail servers. For an afternoon read http://heirloom.sourceforge.net/mailx_history.html and https://www.redhat.com/archives/rhl-devel-list/2008-June/msg00628.html [It looks like this was further forked into s-nail which Debian, Ubuntu, Arch, etc seem to ship as the default for mailx now.]
Looking for why this change was done I found these:
https://www.redhat.com/archives/rhl-devel-list/2008-June/msg00632.html https://www.redhat.com/archives/rhl-devel-list/2008-June/msg00641.html
which says one of two ways to hack around this problem:
1. Put in /etc/mail.rc the items needed
2. Try the MAILRC=/dev/null hack
and finally a google “heirloom mailx Content-Transfer-Encoding base64” got me to
https://stackoverflow.com/questions/10343106/linux-mail-file-log-has-content-type-application-octet-stream-a-noname-attac
which seems to offer changing it to
cat -v {{file}} | mail -s “your subject” “your@recipient.internet”
–That sounds like a broken client that needs to be updated. What kind of client?
Stephen and Kenneth,
Thank you very much for your help.
I tried ‘MAILRC=/dev/nul’ which I put in /etc/mail.rc as
‘set MAILRC=/dev/null’
But I did not identify that this changed any behavior.
The link below was very helpful Stephen thank you for your kindness in digging this out for me. https://www.digitalocean.com/community/tutorials/how-to-send-e-mail-alerts-on-a-CentOS-vps-for-system-monitoring
In the end the above link gave me a grammar and syntax that worked, but it is requiring a change in every line of code that the ‘mail’ command had been used. the following syntax and grammer gave me what I needed.
echo | mail -s “Subject” -r from@address -q /loc/to/body.txt email@address
Thank you again for your help!!!
Greg
No that is meant to be a shell environment variable so that it does not try to read /etc/mail.rc.. if you have it in /etc/mail.rc its not going to help any.
No that is meant to be a shell environment variable so that it does not try to read /etc/mail.rc.. if you have it in /etc/mail.rc its not going to help any.
———————————————————————————