Accessing selectedMail in a new controller
selectedMail is a function on the route´s resolve property, I believe you cannot inject it into another controller because the controller is instantiated in the route, but you can access the resolve property anywhere injecting the $route service like this:

...
angular.module('crmMailing').controller('crmMailingRecurScheduleCtrl', function($scope, $filter, $route) {
  var mailing_id = $route.current.locals.selectedMail.id;
...


Alternatively the way your directives are defined, the scope value is default to true, therefore you should be able to access the parent scope like var mailing_id = $scope.mailing.id;, mailing is the object holding the mailing settings.