[BangPypers] Embedded python mail server

Gopalakrishnan Subramani gopalakrishnan.subramani at gmail.com
Wed Aug 24 09:18:58 CEST 2011


fakemail seems to be right solution to me. interesting discovery.



On Wed, Aug 24, 2011 at 1:10 AM, Dhananjay Nene <dhananjay.nene at gmail.com>wrote:

> Just discovered http://www.lastcraft.com/fakemail.php
>
> On Wed, Aug 24, 2011 at 12:37 PM, Dhananjay Nene
> <dhananjay.nene at gmail.com> wrote:
> > On Wed, Aug 24, 2011 at 12:34 PM, Dhananjay Nene
> > <dhananjay.nene at gmail.com> wrote:
> >> 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.
> >>
> > s/programmatic access to X and its datastore/programmatic access to
> > mail server and its datastore/g
> >> 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
> >>
> >
> >
> >
> > --
> >
> ----------------------------------------------------------------------------------------------------------------------------------
> > http://blog.dhananjaynene.com twitter: @dnene google plus:
> > http://gplus.to/dhananjaynene
> >
>
>
>
> --
>
> ----------------------------------------------------------------------------------------------------------------------------------
> http://blog.dhananjaynene.com twitter: @dnene google plus:
> http://gplus.to/dhananjaynene
> _______________________________________________
> BangPypers mailing list
> BangPypers at python.org
> http://mail.python.org/mailman/listinfo/bangpypers
>


More information about the BangPypers mailing list