[BangPypers] Embedded python mail server

Dhananjay Nene dhananjay.nene at gmail.com
Wed Aug 24 09:04:04 CEST 2011


On Wed, Aug 24, 2011 at 12:25 PM, Gopalakrishnan Subramani
<gopalakrishnan.subramani at gmail.com> wrote:
> So you basically look for SMTP and also a POP3 access to the server? With
> that you could send a mail using SMTP and retrieve using POP3 to make sure
> the mail reached safely? There is no way to get the return receipt in SMTP
> (sorry, I could be wrong since I coded SMTP & POP3 6 years back with limited
> support).

Only SMTP with programmatic access to query received emails is good enough.
>
> I used jmailsrv which is simple to configure and test on your scenarios.
>
> If you could share your testing strategy to test email, it would lead to
> good discussion.
>

There is an released artifact "X". X needs to be tested for acceptance
criteria. No code changes can be introduced into X. X sends out
emails. Test cases need to test whether the mails got sent out
correctly. Thus after running test sequences, the mails that have gone
out need to be verified. The intent is to embed the mail server into
the test case (not X). Thus outgoing emails from X will get dispatched
to and received by the embedded mail server. Since test cases (but not
X) have programmatic access to X and its datastore, using whatever is
the available mail server api to query the mails it has received is
acceptable mechanism of verification. Using a embedded python mail
server helps the test cases to just test the received emails using
python calls rather than having to do POP3 calls instead.

Dhananjay

>
> On Wed, Aug 24, 2011 at 12:42 AM, Dhananjay Nene
> <dhananjay.nene at gmail.com>wrote:
>
>> On Wed, Aug 24, 2011 at 12:03 PM, Gopalakrishnan Subramani
>> <gopalakrishnan.subramani at gmail.com> wrote:
>> > Use the http://hg.python.org/cpython/file/2.7/Lib/smtpd.py server. smtpd
>> is
>> > a proxy so only look at the client interface level, you may not need to
>> push
>> > to local server, no need to store to DB etc.
>> >
>> > you copy the file and modify and wrap to meet your automation needs and
>> to
>> > get the response confirmation once the mail delivered.
>> >
>> > SMTP RFC is very simple to code even in C++ & Java.  But until or unless
>> you
>> > have mail client or mail proxy or a email server as your core
>> > business/module or automating the application functional testing, you
>> don't
>> > need to worry about testing with real mail server.
>> >
>> > Since you have mentioned as automated test, I assume that you don't mean
>> > unit testing.
>>
>> It is automated acceptance testing .. so testing is strictly at the
>> system boundaries. So it has to test the released version of the
>> artifact - without *any* changes. I presume that would constrain me
>> from introducing a different smtpd.py
>>
>> > Gopal
>> >
>> >
>> >
>> >
>> > On Tue, Aug 23, 2011 at 11:39 PM, Dhananjay Nene
>> > <dhananjay.nene at gmail.com>wrote:
>> >
>> >> On Wed, Aug 24, 2011 at 11:06 AM, Anand Chitipothu <
>> anandology at gmail.com>
>> >> wrote:
>> >> > 2011/8/24 Dhananjay Nene <dhananjay.nene at gmail.com>:
>> >> >> What would be good options to embed a python mail server ?
>> >> >>
>> >> >> The scope is strictly restricted to automated testing. So the
>> embedded
>> >> >> mail server (embedded in the test cases) acts as the server which
>> >> >> receives email and is in turn further queried to ensure receipt of
>> >> >> email correctly.
>> >> >>
>> >> >> One option is http://lamsonproject.org/
>> >> >>
>> >> >> Are there any other options you might suggest?
>> >> >
>> >> > Do you really want to run a mail server for testing? I usually monkey
>> >> > patch the function to send email and store the emails in a global
>> >> > variable for later access.
>> >> >
>> >>
>> >> In automated acceptance testing context I believe it would be
>> >> appropriate to implement a mail server. With unit tests, stubbing the
>> >> mail server with a mock would've been fine.
>> >>
>> >> Dhananjay
>> _______________________________________________
>> BangPypers mailing list
>> BangPypers at python.org
>> http://mail.python.org/mailman/listinfo/bangpypers
>>
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>



-- 
----------------------------------------------------------------------------------------------------------------------------------
http://blog.dhananjaynene.com twitter: @dnene google plus:
http://gplus.to/dhananjaynene


More information about the BangPypers mailing list