Я использую GreenMail в тесте, чтобы убедиться, что наше приложение правильно отправляет электронную почту.
Я запускаю GreenMail с помощью:
GreenMail greenMailServer = new GreenMail(new ServerSetup(port, "localhost", ServerSetup.PROTOCOL_SMTP));
greenMailServer.start();
У меня есть отдельный процесс, который отправляет электронное письмо на SMTP-сервер GreenMail (это часть интеграционного теста), поэтому мой тестовый код ожидает электронное письмо с помощью:
long endTime = System.currentTimeMillis() + timeout;
// Get the fake mail server and listen for messages
GreenMail mailServer = ITester.getFakeEMail();
while(System.currentTimeMillis() < endTime) {
boolean timedOut = !mailServer.waitForIncomingEmail(endTime - System.currentTimeMillis(), 1);
if(timedOut) {
throw new TestFailure(lineNumber, "Timed out waiting for email To: '"+to+"' Subject: '"+subject+"' Body: '"+body+"' .");
}
for(MimeMessage message : mailServer.getReceivedMessages()) {
try {
StringBuilder errors = new StringBuilder();
// Check who the message is going to
//Address[] allRecipients = message.getRecipients(Message.RecipientType.BCC);
Address[] allRecipients = message.getAllRecipients();
Я пробовал как закомментированный запрос для Recipients, так и getAllRecipients, но всегда получаю null. Я проверил, что мое приложение отправляет электронное письмо на один адрес в поле BCC.
Любая идея, почему я не вижу адрес электронной почты получателя?