如何有效地测试电子邮件传输?

时间:2018-06-10 13:28:56

标签: selenium email automated-tests headless

我必须在下周测试一个具有注册功能的网站。注册后,用户必须收到一封电子邮件,我必须检查

  • 如果已收到电子邮件
  • 如果电子邮件具有特定内容(用户名,注册链接)。

我会使用Selenium。我有想法登录web.de或owa(Outlook)并查看那里的电子邮件,但还有其他更有效的方法吗?有人有经验,可以向我推荐一个很好的链接或解决方案吗?

请注意:在Jenkins工作期间,测试必须在夜间运行并自动无头。因此,我无法使用基于GUI的工具来检查SMTP服务器。

1 个答案:

答案 0 :(得分:0)

我正在使用我认为非常有用的javax mail library

代码示例:

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];

See SMTP example.