代码之家  ›  专栏  ›  技术社区  ›  Shawn Mclean

如何在开发机器上测试从asp.net发送电子邮件?

  •  9
  • Shawn Mclean  · 技术社区  · 14 年前

    我该怎么做?SMTP类在开发计算机上引发有关找不到SMTP服务器的错误。有没有办法在开发机器上测试发送电子邮件?

    7 回复  |  直到 14 年前
        1
  •  15
  •   jim tollan    14 年前

    肖恩,

      <smtp deliveryMethod="SpecifiedPickupDirectory">
        <network host="ignored" />
        <specifiedPickupDirectory pickupDirectoryLocation="c:\email_c#" />
      </smtp>
    

    这样做很好,因为可以查看保存到 目录。

    试试看。。。

        2
  •  5
  •   Community CDub    8 年前

    你可以通过 configuring System.Net.Mail.SmtpClient 使用类型为的deliveryMethod SpecifiedPickupDirectory an example on SO

        3
  •  3
  •   Christopher Davies    12 年前

    我知道这是一个老话题,但我只是偶然发现了这个服务: http://mailtrap.io/

    是杀手。

        4
  •  2
  •   ARM    14 年前

    有几个可能的原因。

    2) 如果您使用的是远程SMTP服务器,请检查您的windows防火墙以确认允许您发送传出邮件。如果是,请确认您的计算机/用户名有权通过该服务器发送邮件。到服务器的快速telnet:25应该让您知道您的连接是否被拒绝。

        5
  •  2
  •   Yohan P    14 年前

    http://smtp4dev.codeplex.com/

    正如该页面所解释的,它是一个虚拟的SMTP服务器,基本上拦截你的应用程序中传出的消息,允许你检查这些消息,并确保一切按你的预期工作。这是一个Windows应用程序,如果你是为ASP.NET开发的,希望这不是一个问题。

        6
  •  0
  •   tvanfosson    14 年前

    我通常通过为SmtpClient创建一个包装类,然后在测试中模拟出包装。这将从我的单元测试中删除实际的邮件客户端/服务器依赖项。包装本身比较薄,所以我觉得不需要为它创建测试。通常,我会在我的登台环境中作为探索性测试来进行这样的集成级测试。登台环境通常使用生产邮件服务器,但使用“假”数据——例如,客户电子邮件地址替换为我自己的。

    话虽如此,我希望客户端即使在您的开发系统上也不会出错,除非您的邮件服务器受到防火墙的保护,或者某些东西会阻止您的开发系统与之对话。你能详细说明你遇到的错误吗?

        7
  •  0
  •   Chao    14 年前