All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mastfrog.email.server.SettingsBasedMailServerConfig Maven / Gradle / Ivy

package com.mastfrog.email.server;

import com.google.inject.Inject;
import com.google.inject.name.Named;

final class SettingsBasedMailServerConfig implements EmailAddressesConfig {

    @Named(EmailServerService.EMAIL_REDIRECT_SETTINGS_KEY)
    @Inject(optional = true)
    String redirectAddress;
    
    @Named(EmailServerService.EMAIL_BOUNCE_ADDRESS_SETTINGS_KEY)
    @Inject(optional = true)
    String bounceAddress;

    private final String defaultSender;
    
    @Inject
    @SuppressWarnings("ResultOfObjectAllocationIgnored")
    SettingsBasedMailServerConfig(@Named(EmailServerService.DEFAULT_FROM_EMAIL_ADDRESS_SETTINGS_KEY) String defaultSender) {
        this.defaultSender = defaultSender;
        getDefaultSender().getProblems().throwIfFatalPresent();
        if (getBounceAddress() != null) {
            getBounceAddress().getProblems().throwIfFatalPresent();
        }
        if (getRecipientRedirectionAddress() != null) {
            getRecipientRedirectionAddress().getProblems().throwIfFatalPresent();
        }
    }

    @Override
    public EmailAddress getDefaultSender() {
        return new EmailAddress(defaultSender);
    }

    @Override
    public EmailAddress getRecipientRedirectionAddress() {
        return redirectAddress == null ? null : new EmailAddress(redirectAddress);
    }

    @Override
    public EmailAddress getBounceAddress() {
        return bounceAddress == null ? null : new EmailAddress(bounceAddress);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy