How to inject configuration values into services?
You can use a factory for your app.mailer service. The factory take cares of retrieving the configuration for the service. The service can stay decoupled from the configuration service and does not need to know how the config parameters are named.

services:
  app.mailer:
    class:       Drupal/mail_module/Mailer
    factory:      Drupal/mail_module/MailerFactory:create
    arguments:    ['@config.factory']


class MailerFactory {
  static function create($config) {
    return new Mailer($config-&gt;get('mail.config')-&gt;get('transport'));
  }
}

class Mailer {
  public function __construct($transport) {
    $this-&gt;mailTransport = $transport;
  }
}