I need to loop through a database table and send a html formatted mail.
Nothing complex, a text value followed by a hyperlink.

I tried with xml and xsl transformation but couldn't get desired results.
ALso, advise on whether its better to construct hyperlink in PostGressql or is it okay from Pentaho
I tried with a Table Input and a Javascript step. Thing is it outputs for each row. i need to combine and concatenate each row output to form result HTML
With Pentaho: get your data with a table input, make the html (for example with a java script), get the mail parameters (addresse, attachement, etc,...) from a grid or a constant step, and give the whole to the mail step.
With the javascript you built a -tag by row named html, but you need only one message. So you group them with a Group by step (no Group field, subject=html, type=Concatenate strings separated by, value=empty). You can then drop it in the Mail step.
But the Mail step needs some more information (recipient, sender, subject, server, port,...). You can put them in the flow with a Constant step.
In view of your use-case, it may surprise you that you have to put this data in the flow rather than to feed a box in the Mail step. This is because this step is designed to send a mail personalized for each recipient.
And now that you know how to do it, refrain from sending 100000 mails to every one you can.