Refactored code:
- extracted email content generation in EmailTemplate
- renamed from/to fields for improved clarity