Crontab issue: getting email but with out body

I have a oracle sh script test.sh

#!/bin/bash
R=`sqlplus -S *****/*********@dfsdf <<ENDOFSQL
set serveroutput on size unlimited;
execute DBMS_SNAPSHOT.REFRESH( '"MIS_ADMIN"."MV_SURVEY_UNITS_CENSUS"','F');
execute DBMS_SNAPSHOT.REFRESH( '"MIS_ADMIN"."MV_SURVEY_UNITS_CENSUS_PART"','F');
execute DBMS_SNAPSHOT.REFRESH( '"MIS_ADMIN"."MV_SURVUNIT_DATA_CENSUS_BASIC"','F');
exit
ENDOFSQL`
wait
(echo To:user@email.com;echo Subject: "Materialized View Refresh on SDP_DEV";echo $R;) | /usr/sbin/sendmail -t

When I run test.sh as manually then the out put is
"Pl/SQL blck completed" will be sent to the user@email.com as email body.
When the same command run in cron tab i am getting email but with out body . Is there any problem with my script ?
~

Such questions are very common.

Read cron and crontab.