diff --git a/bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java b/bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java index 0550c9d1..9a521fb8 100644 --- a/bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/email/SendgridSmtpEmailDriver.java @@ -34,7 +34,9 @@ public class SendgridSmtpEmailDriver extends SmtpEmailDriver { @Autowired private AccountDAO accountDAO; @Autowired private CloudServiceDAO serviceDAO; - @Override protected boolean isServiceCompatible() { return this.config.getHost().equals(SENDGRID_SMTP); } + @Override protected boolean isServiceCompatible(final String serviceHost) { + return SENDGRID_SMTP.equals(serviceHost); + } /** * Build username which will be used for Subuser created on SendGrid's service for specified Account's object. diff --git a/bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java b/bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java index 1e757428..60545cd5 100644 --- a/bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/email/SmtpEmailDriver.java @@ -10,9 +10,8 @@ import bubble.cloud.email.mock.MockMailSender; import bubble.model.account.Account; import bubble.model.account.AccountContact; import bubble.model.account.message.AccountMessage; -import bubble.model.cloud.CloudService; +import bubble.model.cloud.CloudCredentials; import bubble.server.BubbleConfiguration; -import com.fasterxml.jackson.databind.JsonNode; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.cobbzilla.mail.sender.SmtpMailSender; @@ -49,12 +48,16 @@ public class SmtpEmailDriver extends CloudServiceDriverBase i return smtpSender; } - @Override public void setConfig(JsonNode json, CloudService cloudService) { - super.setConfig(json, cloudService); - if (!isServiceCompatible()) die("Specified SmtpEmailDriver is not compatible with given config"); + @Override public void setCredentials(CloudCredentials credentials) { + super.setCredentials(credentials); + if (credentials != null && !isServiceCompatible(credentials.getParam(PARAM_HOST))) { + die("Specified Smtp Email Driver is not compatible with given config: " + this.getClass().getSimpleName()); + } } - protected boolean isServiceCompatible() { return !SEPARATE_DRIVERS_SMTPS.contains(this.config.getHost()); } + protected boolean isServiceCompatible(final String serviceHost) { + return !SEPARATE_DRIVERS_SMTPS.contains(serviceHost); + } @Override public boolean send(Account account, AccountMessage message, AccountContact contact) { return EmailServiceDriver.send(this, account, message, contact); diff --git a/bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java b/bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java index 24d4099a..c3cac623 100644 --- a/bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java +++ b/bubble-server/src/main/java/bubble/cloud/email/mock/MockEmailDriver.java @@ -7,10 +7,13 @@ package bubble.cloud.email.mock; import bubble.cloud.email.SmtpEmailDriver; import org.cobbzilla.mail.sender.SmtpMailSender; +import static org.cobbzilla.util.daemon.ZillaRuntime.empty; + public class MockEmailDriver extends SmtpEmailDriver { private static final MockMailSender MOCK_MAIL_SENDER = new MockMailSender(); @Override public SmtpMailSender getSender() { return MOCK_MAIL_SENDER; } + @Override protected boolean isServiceCompatible(final String serviceHost) { return empty(serviceHost); } }