Initial import to Tizen
[profile/ivi/python-twisted.git] / doc / mail / tutorial / smtpclient / smtpclient-10.tac
1 import StringIO
2
3 from twisted.application import service
4
5 application = service.Application("SMTP Client Tutorial")
6
7 from twisted.application import internet
8 from twisted.internet import protocol
9 from twisted.internet import defer
10 from twisted.mail import smtp
11
12 class SMTPTutorialClient(smtp.ESMTPClient):
13     mailFrom = "tutorial_sender@example.com"
14     mailTo = "tutorial_recipient@example.net"
15     mailData = '''\
16 Date: Fri, 6 Feb 2004 10:14:39 -0800
17 From: Tutorial Guy <tutorial_sender@example.com>
18 To: Tutorial Gal <tutorial_recipient@example.net>
19 Subject: Tutorate!
20
21 Hello, how are you, goodbye.
22 '''
23
24     def getMailFrom(self):
25         result = self.mailFrom
26         self.mailFrom = None
27         return result
28
29     def getMailTo(self):
30         return [self.mailTo]
31
32     def getMailData(self):
33         return StringIO.StringIO(self.mailData)
34
35     def sentMail(self, code, resp, numOk, addresses, log):
36         print 'Sent', numOk, 'messages'
37
38         from twisted.internet import reactor
39         reactor.stop()
40
41 class SMTPClientFactory(protocol.ClientFactory):
42     protocol = SMTPTutorialClient
43
44     def buildProtocol(self, addr):
45         return self.protocol(secret=None, identity='example.com')
46
47 def getMailExchange(host):
48     return defer.succeed('localhost')
49
50 def cbMailExchange(exchange):
51     smtpClientFactory = SMTPClientFactory()
52
53     smtpClientService = internet.TCPClient(exchange, 25, smtpClientFactory)
54     smtpClientService.setServiceParent(application)
55
56 getMailExchange('example.net').addCallback(cbMailExchange)