Mailx command - send mail as table format

I have to send a couple of rows that have been returned from a SQL query. I have written the output of the query to a file and while i try to print this in the mail body the formatting goes wrong.

Intended Output in mail body:
Col1 Col2 Col3
------ ------- ------
Bombay Raj 23
Delhi Raja 24
etc..

But what i get currently is :
Col1 Col2 Col3
---- ----- ------
Bombay Raj 23
Delhi Raja 24
etc..

Please suggest a way how i can format this in the mail body.

P.S: The file to which i re-direct the query output is formatted as required, but the mail body isnt. Please help. TIA!

---------- Post updated at 09:58 PM ---------- Previous update was at 09:56 PM ----------

Sorry the intended output has to have the right amount of spaces. :(Somehow the spaces disappeared in the post. Please help. TIA!

try using below set in SQL query .....

 
set pagesize 0
set lines 1000
set echo on 
set heading on 
(cat body; uuencode attch1 attch1; uuencode attch2 attch2; ) | mailx -m -s "testing" ksatisha@ycom 

Use HTML formatting with sendmail:-

awk ' BEGIN {
 print "From: abc@pqr.com"
 print "To: xyz@pqr.com"
 print "MIME-Version: 1.0"
 print "Content-Type: text/html"
 print "Subject: Your Subject"
 print "<html><body><table border=1 cellspacing=0 cellpadding=3>"
 print "<tr>"
 print "<td>Col 1</td>";
 print "<td>Col 2</td>";
 print "<td>Col 3</td>";
 print "</tr>"
} {
 print "<tr>"
 print "<td>"$1"</td>";
 print "<td>"$2"</td>";
 print "<td>"$3"</td>";
 print "</tr>"
} END {
 print "</table></body></html>"
} ' SQL_query_output_file | sendmail -t

I hope this helps.