email from bash script
#!/bin/bash
MESSAGE="Line one. /n"
MESSAGE="$MESSAGE Line two. /n"
MESSAGE="$MESSAGE 开发者_JAVA技巧Line three."
echo $MESSAGE | mail -s "test" "example@example.com"
Is that how I should get each line, on its own line?
Use a heredoc.
mail -s "test" "example@example.com" << END_MAIL
Line one.
Line two.
Line three.
END_MAIL
Change:
echo $MESSAGE | mail -s "test" "example@example.com"
To:
echo -e $MESSAGE | mail -s "test" "example@example.com"
The heredoc advice is good, plus you might want to consider using mailx
for which there exists a Posix standard or perhaps sendmail
which will exist if the mailer is either sendmail or postfix. (I'm not sure about qmail.)
Unless using sendmail, it's also a good idea to set the MAILRC
variable to /dev/null
to bypass the user's configuration script, if any.
精彩评论