Перехват вызовов на действия Mailer - PullRequest
0 голосов
/ 22 января 2012

Есть ли способ перехвата вызовов на Play Mailer класс ?

Я хочу регистрировать все электронные письма, которые отправляет мое приложение. Я хотел бы получить доступ к параметрам метода почтовой программы и имени метода и записать все это.

Я пытался использовать @With, но мой метод @Before не вызывается:

@With(EmailInterceptor.class)
public class Mails extends Mailer {

    public static void welcome(User user) {
        setSubject("Welcome to my app");
        setFrom("Me <me@domain.com>");
        addRecipient(user.email);

        Mailer.send(user);
    }
}

public final class EmailInterceptor extends UserAwareControllerBase {
    private final static Logger logger = LoggerHelper.getLogger();

    @Before
    public void logEmail(){
        String email = getUser() == null ? "<null>" : getUser().email;
        logger.info("Sending email to " + email);
    }
}

1 Ответ

2 голосов
/ 22 января 2012

AFAIK нет перехватов для Mailer.Проверьте https://github.com/playframework/play/blob/master/framework/src/play/mvc/ActionInvoker.java. Перейдите к строке 142, которая четко указывает, что только контроллер получит перехваты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...