How to send HTML email using linux command line How to send HTML email using linux command line linux linux

How to send HTML email using linux command line


This worked for me:

echo "<b>HTML Message goes here</b>" | mail -s "$(echo -e "This is the subject\nContent-Type: text/html")" foo@example.com


My version of mail does not have --append and it too smart for the echo -e \n-trick (it simply replaces \n with space). It does, however, have -a:

mail -a "Content-type: text/html" -s "Built notification" address@example.com < /var/www/report.html


Command Line

Create a file named tmp.html with the following contents:

<b>my bold message</b>

Next, paste the following into the command line (parentheses and all):

(  echo To: youremail@blah.com  echo From: el@defiant.com  echo "Content-Type: text/html; "  echo Subject: a logfile  echo  cat tmp.html) | sendmail -t

The mail will be dispatched including a bold message due to the <b> element.

Shell Script

As a script, save the following as email.sh:

ARG_EMAIL_TO="recipient@domain.com"ARG_EMAIL_FROM="Your Name <you@host.com>"ARG_EMAIL_SUBJECT="Subject Line"(  echo "To: ${ARG_EMAIL_TO}"  echo "From: ${ARG_EMAIL_FROM}"  echo "Subject: ${ARG_EMAIL_SUBJECT}"  echo "Mime-Version: 1.0"  echo "Content-Type: text/html; charset='utf-8'"  echo  cat contents.html) | sendmail -t

Create a file named contents.html in the same directory as the email.sh script that resembles:

<html><head><title>Subject Line</title></head><body>  <p style='color:red'>HTML Content</p></body></html>

Run email.sh. When the email arrives, the HTML Content text will appear red.

Related