I believe the binding is through the MailerModule added to play. modules.enabled . MailerModule provides Guice bindings for MailerClient.
play { modules { enabled += "play.api.libs.mailer.MailerModule" }
For Guice to inject MailerClient into your object, it must be created through Guice. For example, if you want to use @Inject MailerClient in the controller or the service entered into the controller, your controller must be entered through Guice. The recommended approach for this in Play 2.4 adds the following to your build.sbt:
routesGenerator := InjectedRoutesGenerator
source share