package com.sungardas.enhancedsnapshots.service; import com.sungardas.enhancedsnapshots.aws.dynamodb.model.TaskEntry; import com.sungardas.enhancedsnapshots.dto.MailConfigurationDto; /** * Mail service interface */ public interface MailService { /** * reconnect to mail server * * @return true if connect succeeded */ boolean reconnect(); /** * disconnect from mail server */ void disconnect(); /** * Notify users about completed task * @param taskEntry task */ void notifyAboutSuccess(TaskEntry taskEntry); /** * Notify about error * @param taskEntry task * @param e exception */ void notifyAboutError(TaskEntry taskEntry, Exception e); /** * Notify about system status * @param message system message */ void notifyAboutSystemStatus(String message); /** * Test mail configuration (send test mail) * @param config mail configuration * @param testEmail test mail address * @param domain instance domain */ void testConfiguration(MailConfigurationDto config, String testEmail, String domain); }