I’ve been using
mail -s "here is a log file" "person@example.com" < log/logfile.log
Which used to come through with headers:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
But now the files are longer I’m getting noname attachments because with this:
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
So if all else fails, check the manual man mail …
NAME
mailx - send and receive Internet mail
SYNOPSIS
mailx [-BDdEFintv~] [-s subject] [-a attachment ] [-c cc-addr] [-b bcc-addr] [-r from-addr] [-h hops]
[-A account] [-S variable[=value]] to-addr . . .
None of these options seem useful so how can I force Content-Type: text/plain?
The man page is a good place to start! Keep reading until you get to the
MIME TYPESsection, and pay close attention the following:So, if your message contains “formatting characters” (which in general means control characters) other than newlines and tabs, it will automatically be classified as
application/octet-stream. I bet that if you look closely at the data you’ll find some control characters floating around.You can work around this by…
-a) instead of the main message body, and set up your~/.mime.typesfile to identify*.logfiles as text/plain.tr.Use another MUA such as
muttto send the mail. In fact, you could just craft a message yourself and send it directly tosendmail: