Os seguintes itens funcionam nos meus sistemas:
if ! nc -z $host $port; then
echo "This message intentionally left blank" | mail -s "TCP port $port is not open on $host" $emailaddress
else
: Do whatever you wanted to do
fi
Se não aparecer no seu, execute tail -f /var/log/maillog
enquanto você executa o script para ver por que a mensagem pode não estar sendo entregue.