package io.vertx.example.mail;
import org.subethamail.smtp.auth.LoginFailedException;
import org.subethamail.smtp.auth.PlainAuthenticationHandlerFactory;
import org.subethamail.smtp.auth.UsernamePasswordValidator;
import org.subethamail.smtp.helper.SimpleMessageListenerAdapter;
import org.subethamail.smtp.server.SMTPServer;
/**
* @author <a href="http://escoffier.me">Clement Escoffier</a>
*/
public class LocalSmtpServer {
public static void start(int port) {
SMTPServer smtpServer = new SMTPServer(new SimpleMessageListenerAdapter(new MyMessageListener()));
smtpServer.setPort(port);
smtpServer.start();
}
public static void startWithAuth(int port) {
SMTPServer server = new SMTPServer(new SimpleMessageListenerAdapter(new MyMessageListener()));
server.setPort(port);
UsernamePasswordValidator validator = (s, s1) -> {
if (!"username".equalsIgnoreCase(s) || !"password".equalsIgnoreCase(s1)) {
throw new LoginFailedException();
}
};
server.setAuthenticationHandlerFactory(new PlainAuthenticationHandlerFactory(validator));
server.start();
}
}