【问题标题】:How to test e-mail transmission efficiently?如何有效地测试电子邮件传输?
【发布时间】:2018-06-10 13:28:56
【问题描述】:

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

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

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

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

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describe the problem 以及迄今为止为解决它所做的工作。

标签: selenium email automated-tests headless


【解决方案1】:

我正在使用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.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-18
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2011-10-10
    • 2011-11-22
    相关资源
    最近更新 更多