This question is the non spam bible.
Anyway in addition to that when generating programmatically emails with Indy which are the best practices to follow to minimize the possiiblity of being marked as SPAM?
In general, I would say:
That's just the general stuff off the top of my head.
EDIT: A good reference for parts of an email: http://en.wikipedia.org/wiki/Email