linuxbashshellmailx

Use Japanese characters in subject and attach file with mailx in RedHat Linux


I am trying to use the mailx command for sending email with attachment (zipped) and am facing two issues, below is the command I use:

(echo "$BODY"; UUENCODE $ZIP_FILE $ZIP_FILE) \
 | mailx -s $SUBJECT_1 -r " " $SENDER $RECIPIENT

My email subject contains space and Japanese characters.

The variable $SUBJECT_1 has the following statement

Subject: [Budget] Subtype Error and some JAPANESE CHARECTERS

I get bet following error:

contains invalid character '\203'

Moreover for testing purpose I changed the statement of SUBJECT_1 to Test Message

SUBJECT_1="Test Message"

It worked, but I receive only Test instead of Test Message and in the mail I could see two more email ids in the To like Message@domain.com and -r@domain.com

I have not implemented the mail body yet, once subject issue fixed will implement the same in body because Body will also have Japanese characters.

Please help me with this error, how to resolve and what am i doing wrong


Solution

  • There's a list of things you need help with here, more than I want to to handle exhaustively on a sunny Saturday afternoon. But some hints.

    Quote your variables.

    "$SUBJECT_1" is a single string, whereas $SUBJECT_1 is a list of space-separated words. The second word is your email recipient, and subsequent options are also recipients.

    Subject.

    The basic idea is that you need to include encoding data in the subject, because email headers are only supposed to include 7-bit ASCII.

    Here is a hint at how you put special characters in your Subject line.

    Here is another hint.

    Here is the RFC that describes in lurid detail what you need to do. Asking your favourite search engine for information about "utf8 email subject" and "rfc1522" is probably a good idea.

    Email client.

    Finally, rather than learning how to use MIME, consider using mutt instead of mailx to send your mail. Mutt has a -a option to add attachments, making it WAY easier than constructing your own headers and body, which I'm not even sure you'd be able to do with mailx in the first place.