| author | Sandro Knauß <knauss@netzguerilla.net> |
| Thu, 29 Mar 2012 16:27:40 +0200 | |
| branch | devel |
| changeset 258 | 0a5eb5aac0be |
| parent 244 | 48fba7b4afe9 |
| child 294 | 0e75bd39767d |
| permissions | -rw-r--r-- |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
1 |
# -*- coding: utf-8 -*- |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
2 |
"""All available message typs to send send. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
3 |
""" |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
4 |
from email.mime.text import MIMEText |
|
19
fcf8489f1c2f
iro kann nun mit mails umgehen
Sandro Knauß <knauss@netzguerilla.net>
parents:
14
diff
changeset
|
5 |
from email.header import Header |
|
235
c5d8384caf68
adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents:
198
diff
changeset
|
6 |
from email.Utils import formatdate |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
7 |
|
| 135 | 8 |
class Message: |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
9 |
""" Baseclass for all different message typs.""" |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
10 |
def __init__(self,content, typ="Message"): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
11 |
"""Constructor of Message class. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
12 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
13 |
:param content: content of the message |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
14 |
:param string typ: typ of the message |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
15 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
16 |
.. automethod:: __eq__ |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
17 |
.. automethod:: __neq__ |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
18 |
""" |
|
30
5253631a8dd3
sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents:
19
diff
changeset
|
19 |
self.content=content |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
20 |
self.typ = typ |
|
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
21 |
|
|
30
5253631a8dd3
sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents:
19
diff
changeset
|
22 |
|
|
5253631a8dd3
sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents:
19
diff
changeset
|
23 |
def getContent(self): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
24 |
"""returns the content of the message""" |
|
30
5253631a8dd3
sms via sipgate working
Sandro Knauß <knauss@netzguerilla.net>
parents:
19
diff
changeset
|
25 |
return self.content |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
26 |
|
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
27 |
def __eq__(self,other): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
28 |
"""return ``True`` if **other** has the same content.""" |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
29 |
return self.content == other.content |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
30 |
|
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
31 |
def __neq__(self,other): |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
32 |
"""return ``False`` if **other** has the same content.""" |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
33 |
return not self.__eq__(other) |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
34 |
|
| 135 | 35 |
class SMS(Message): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
36 |
""" A representation of one SMS""" |
|
169
aabc04843d25
complete offer.smtp tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
166
diff
changeset
|
37 |
def __init__(self, cont, from_ = None): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
38 |
"""Constructor of SMS class. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
39 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
40 |
:param string cont: SMS content |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
41 |
:param string from_: the telnumber from the SMS should be sended. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
42 |
""" |
|
244
48fba7b4afe9
all magic utf-8 stuff is now in iro.model.message
Sandro Knauß <knauss@netzguerilla.net>
parents:
235
diff
changeset
|
43 |
Message.__init__(self, cont.encode("utf-8"), typ="sms") |
|
169
aabc04843d25
complete offer.smtp tests
Sandro Knauß <knauss@netzguerilla.net>
parents:
166
diff
changeset
|
44 |
self.from_ = from_ |
| 57 | 45 |
|
| 135 | 46 |
class Fax(Message): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
47 |
"""A representation of one fax.""" |
|
198
85ede27b1add
tests for controller.viewinterface.fax added
Sandro Knauß <knauss@netzguerilla.net>
parents:
193
diff
changeset
|
48 |
def __init__(self,header,cont,attachments=[]): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
49 |
"""Constructor of one fax. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
50 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
51 |
:param string header: Headline of fax |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
52 |
:param string cont: fax content |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
53 |
:param list attachments: attachments of fax |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
54 |
""" |
|
244
48fba7b4afe9
all magic utf-8 stuff is now in iro.model.message
Sandro Knauß <knauss@netzguerilla.net>
parents:
235
diff
changeset
|
55 |
Message.__init__(self,cont.encode("utf-8"),typ="fax") |
| 57 | 56 |
self.header=header |
57 |
self.attachments=attachments |
|
58 |
||
59 |
def getAttachment(self,i): |
|
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
60 |
"""returns a attachment |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
61 |
:param integer i: the i-th attachment |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
62 |
""" |
| 57 | 63 |
return self.attachments[i] |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
64 |
|
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
65 |
def __eq__(self,other): |
| 135 | 66 |
if not Message.__eq__(self,other): |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
67 |
return False |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
68 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
69 |
if self.header != other.header: |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
70 |
return False |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
71 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
72 |
if len(self.attachments) != len(other.attachments): |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
73 |
return False |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
74 |
|
|
193
e5ec4bfa4929
adding allowString and allowList to vEmail to make sure, if a list is allowd or a string.
Sandro Knauß <knauss@netzguerilla.net>
parents:
192
diff
changeset
|
75 |
for a in self.attachments: |
|
e5ec4bfa4929
adding allowString and allowList to vEmail to make sure, if a list is allowd or a string.
Sandro Knauß <knauss@netzguerilla.net>
parents:
192
diff
changeset
|
76 |
if a not in other.attachments: |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
77 |
return False |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
78 |
return True |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
79 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
80 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
81 |
|
| 135 | 82 |
class Mail(Message): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
83 |
"""A representation of one Mail""" |
|
58
fb161058bcab
mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents:
57
diff
changeset
|
84 |
def __init__(self, subject, body, frm): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
85 |
"""Constructor of one mail. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
86 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
87 |
:param string subject: subject of the mail |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
88 |
:param string body: body of the mail |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
89 |
:param string frm: mailaddress to send mail from |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
90 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
91 |
.. automethod:: __repr__ |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
92 |
""" |
|
235
c5d8384caf68
adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents:
198
diff
changeset
|
93 |
con = MIMEText(body.encode("utf-8"), _charset='utf-8') |
|
c5d8384caf68
adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents:
198
diff
changeset
|
94 |
sub = Header(subject.encode('utf-8'), 'utf-8') |
|
c5d8384caf68
adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents:
198
diff
changeset
|
95 |
con['Subject'] = sub |
|
c5d8384caf68
adding date Header to email
Sandro Knauß <knauss@netzguerilla.net>
parents:
198
diff
changeset
|
96 |
con['Date'] = formatdate(localtime=True) |
|
192
6c708c334f37
test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents:
169
diff
changeset
|
97 |
self.subject = subject |
|
6c708c334f37
test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents:
169
diff
changeset
|
98 |
self.body = body |
|
58
fb161058bcab
mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents:
57
diff
changeset
|
99 |
self.frm=frm |
|
152
14c99c89edf4
using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents:
135
diff
changeset
|
100 |
Message.__init__(self, con, typ='mail') |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
101 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
102 |
def as_string(self): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
103 |
"""returns created mail""" |
|
166
6d6890f7e3f8
adding smtp provider
Sandro Knauß <knauss@netzguerilla.net>
parents:
152
diff
changeset
|
104 |
return self.content.as_string() |
|
58
fb161058bcab
mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents:
57
diff
changeset
|
105 |
|
|
fb161058bcab
mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents:
57
diff
changeset
|
106 |
def getFrom(self): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
107 |
"""returns the from mailaddress""" |
|
58
fb161058bcab
mail muss nun mit einer mailadresse aufgerufen werden
Sandro Knauß <knauss@netzguerilla.net>
parents:
57
diff
changeset
|
108 |
return self.frm |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
109 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
110 |
def __eq__(self,other): |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
111 |
if self.as_string() != other.as_string(): |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
112 |
return False |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
113 |
|
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
114 |
if self.frm != other.frm: |
|
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
115 |
return False |
|
192
6c708c334f37
test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents:
169
diff
changeset
|
116 |
|
|
6c708c334f37
test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents:
169
diff
changeset
|
117 |
return True |
|
62
35228d665310
vergleichbarer Content
Sandro Knauß <knauss@netzguerilla.net>
parents:
58
diff
changeset
|
118 |
|
|
192
6c708c334f37
test for controller.viewinterface.mail
Sandro Knauß <knauss@netzguerilla.net>
parents:
169
diff
changeset
|
119 |
def __repr__(self): |
|
258
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
120 |
"""string representation of the class. |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
121 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
122 |
:returns: ``<Mail(subject, body, frm)>`` |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
123 |
""" |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
124 |
return "<Mail(%s, %s, %s)>"%(self.subject,self.body,self.frm) |
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
125 |
|
|
0a5eb5aac0be
iro.model: adding docstring
Sandro Knauß <knauss@netzguerilla.net>
parents:
244
diff
changeset
|
126 |
__all__=["Message", "SMS", "Fax", "Mail"] |