development smtp server for windows [closed]

2019-01-13 01:53发布

问题:

I am looking for a free test smptp server which can save emails in to files for my development tests. Since my development environment is windows I prefer test email server to run on windows but I can consider to install any other linux based alternatives.

回答1:

There are a few:

  • SMTP Impostor (formerly Antix SMTP Server), NuGet package - looks very good
  • Dumbster - fake SMTP server under Apache license

Or you can also set it up in your web.config to just store the e-mails in the file system (the config way of what "silky" has proposed in code):

<system.net>  
   <mailSettings>  
      <smtp deliveryMethod="SpecifiedPickupDirectory">  
         <specifiedPickupDirectory 
             pickupDirectoryLocation="c:\temp\mails\"/>  
      </smtp>  
   </mailSettings>  
</system.net>  

Marc



回答2:

I know that this is an old post however I also know about http://smtp4dev.codeplex.com/ which I would also recommend. It sits on you task bar and then pops up when you send emails to it. It allows you to then examine the email in quite some depth.



回答3:

-- Edit:

This advice only valid if you're using .NET

Check this out. If you set it appropriately, it will just store your emails on disk :)

SmtpClient client = ...;
client.PickupDirectoryLocation = @"c:\foo\emails\"; //"
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

-- Edit

Just in case some people don't get it, this means you don't need another SMTP server for test/dev, you just set the variable appropriately.

-- Edit

For completeness, as marc_s shows below, you can set this in configs nicely via:

<system.net>  
   <mailSettings>  
      <smtp deliveryMethod="SpecifiedPickupDirectory">  
         <specifiedPickupDirectory 
             pickupDirectoryLocation="c:\foo\emails\" />  
      </smtp>  
   </mailSettings>  
</system.net>


回答4:

The Python smtpd module has a DebuggingServer which prints all messages to stdout. If you redirect them to a file, you should be done.



回答5:

We used Mailtrap for this. It give you remote smtp server account and direct access to all mails in it. So you just enter given smtp credential in your application and after that all email sent by your system will be visible on mailtrap. And you can easily look source code of mail, and download it to your local system. You can see example here

On mailtrap you can have as many smtp account as you want( different account for different application environments, or different application) Also you can manage access to your account ( so only trusted people will se your emails) and you can forward some emails to real email addresses.



回答6:

Below are the links i found

  • A Simple SMTP Server Mock for .NET\ -- .NET

  • Dumbster -- Java

  • mocksmtpd -- Ruby

Use depending on the Language and Platform of your choice.

There is also an earlier post for .NET Testing SMTP with .net



回答7:

Papercut (http://papercut.codeplex.com/discussions) is the simplest and most elegant one so far. Simple exe file that listens to port 25 and displays emails.