Электронная почта Spring с Greenmail: недействительные учетные данные аутентификации

Я пытаюсь написать тестовый код для Spring Email, используя Greenmail. Это отлично работает с версией Greenmail 1.5.5, однако, когда я пытаюсь обновить версию Greenmail (с 1.5.6 до 1.5.11), он продолжает выдавать ошибку 535 5.7.8 Недействительные учетные данные для аутентификации.

Свойства приложения

spring.mail.default-encoding=UTF-8
spring.mail.host=localhost
spring.mail.port=3025
spring.mail.jndi-name=
spring.mail.test-connection=false 
spring.mail.username=username     
spring.mail.password=secret
spring.mail.protocol=smtp
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls=true
spring.mail.properties.mail.smtp.debug=false

Вот мой код

protected static GreenMail smtpServer;

@Autowired
protected EmailRepository emailRepository;

@BeforeClass
public static void beforeClass() {

    smtpServer = new GreenMail(new ServerSetup(3025, null, ServerSetup.PROTOCOL_SMTP ));
    smtpServer.setUser("username", "secret");
    smtpServer.start();
}

@Before
public void before() {
    emailRepository.deleteAll();
    smtpServer.reset();
}

@After
public void after() {
    emailRepository.deleteAll();
}

@AfterClass
public static void afterClass() {
    smtpServer.stop();
}

protected List<Email> createEmailRequests(int size, EmailStatus status) {
    int counter = 0;
    List<Email> emails = new ArrayList<>();

    do {
        MetaInfo metaInfo = new MetaInfo();
        //metainfo details

        Email email = new Email();
        //email details
        emails.add(email);

        counter++;
    } while (counter < size);

    emailRepository.saveAll(emails);
    return emails;
}

person jawsh    schedule 01.04.2020    source источник
comment
Что показывает вывод отладки JavaMail для каждой версии?   -  person Bill Shannon    schedule 02.04.2020


Ответы (1)


У меня была такая же проблема с 1.5.13, она будет работать, если вы удалите учетные данные из конфига/кода.

# spring.mail.username=username     
# spring.mail.password=secret

и из метода beforeClass():

// smtpServer.setUser("username", "secret");

Greenmail принимает все входящие соединения без необходимости аутентификации, но неясно, почему 1.5.5 работала именно так, а в более новых версиях — нет.

person antonyh    schedule 24.04.2020