Hi Jan and Caspar (GSoC mentors) and everyone else,
I started orienting myself towards the SMTP rewrite task. I dived into the
code of the current qwwsmtpclient, to find out how it talks with the rest
of the code.I have a couple of doubts and maybe can use some guidance here:
1. I have proposed implementing the SMTP client using Qt's state machine
framework, for the SMTP interaction is very well modelled as a finite state
machine. This feels quite experimental, but I haven't yet found any reason
why I shouldn't use these classes to design the client. I however might
have many stones unturned at this stage, and hence request comment on this
design choice.
2. From where should I start?
Jan suggested TDD when the proposal was written and I read articles about
this practise and I am very excited to go the TDD way. Now to get even the
basic thing started, there are two tasks: A) Treat the qwwsmtpclient as a
blackbox, and make it use Streams::IODeviceSocket::readLine() instead of
its own instance of QSslSocket's readLine(). And, B) Treat the SMTP client
as a white box, and replace the internal logic with a totally new design --
the one implemented with Qt's state machine classes.
I understand A will be done first, and followed by B. But I don't yet have
a crystal clear plan. Being honest, this is new for me (specially the TDD).
I'd rather take your (mentors) help here in assigning the tasks that can
get me started and have something working by the time it's end of two
weeks.
3. While I do keep looking for good articles/guides, I'd be happy to know
any resources that can help me with designing/writing the SMTP parts and
testing them. (Even if for reading outside of the GSoC coding time every
day). I'd be more than thankful, as I will be able to have a reference that
I can ping more frequently than I'd like to ping humans. :)
Some resources that I am already refering:
[1] rfc5321 (SMTP)
[2] This thread on the ML:
http://thread.gmane.org/gmane.mail.trojita.general/61/focus=62
[3] This quick protocol reference:
http://www.networksorcery.com/enp/protocol/smtp.htm
Thanks in advance for any time you spend to help me with this!
Best Regards,
Karan Luthra