Как эффективно проверить передачу электронной почты?
Я должен протестировать сайт с функцией регистрации на следующей неделе. После регистрации пользователь должен получить электронное письмо, и я должен проверить
- если электронная почта была получена
- если электронное письмо имеет определенный контент (имя пользователя, регистрационная ссылка).
Я буду использовать 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];