Эм, устраняется главный резонанс.
We ASK container to give us a mailer object. Then we TELL the mailer object to send email. (SL)
On the other hand.
We have a mailer object and TELL that bastard to send email. (DIC)
Очевидно же. =)
Выстроить остальное по TDA, уже проще, хоть пример и не полностью соотвествует.