Как эффективно проверить передачу электронной почты?

Я должен протестировать сайт с функцией регистрации на следующей неделе. После регистрации пользователь должен получить электронное письмо, и я должен проверить

  • если электронная почта была получена
  • если электронное письмо имеет определенный контент (имя пользователя, регистрационная ссылка).

Я буду использовать Selenium. У меня была идея, чтобы войти в web.de или owa (Outlook) и проверить электронную почту там, но есть ли другой более эффективный способ? Есть ли у кого-нибудь опыт и могли бы порекомендовать мне хорошую ссылку или решение?

Обратите внимание: во время работы в Jenkins тест должен выполняться автоматически и без заголовка. Поэтому я не могу использовать инструмент на основе графического интерфейса для проверки SMTP-сервера.

1 ответ

Я использую почтовую библиотеку javax, которую считаю очень полезной.

Пример кода:

import javax.mail.*;

private void javaxMailExample() {

    // Set protocol.
    String protocol = "imaps";

    // Set properties.
    Properties props = new Properties();
    props.setProperty("mail.store.protocol", protocol);
    props.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.setProperty("mail.imaps.socketFactory.fallback", "false");
    props.setProperty("mail.imaps.port", "993");
    props.setProperty("mail.imaps.socketFactory.port", "993");

    // Set outlook session.
    Session session = Session.getDefaultInstance(props, null);
    Store store = session.getStore(protocol);

    // Connect to session.
    store.connect("imap-mail.outlook.com", "email@domain.com", "password");

    // Read messages.
    Folder inbox = store.getFolder("INBOX");
    inbox.open(Folder.READ_WRITE);
    Message message = inbox.getMessages()[inbox.getMessages().length - 1];

Смотрите пример SMTP.

Другие вопросы по тегам