51
66
ev_encrypt = obj.mail_service_id.ev_encrypt
52
67
ev_random = obj.mail_service_id.ev_random
54
email_dest = obj.address_id.email
55
email_subject = obj.document_id.subject
69
email_dest = obj.address_id.email or ''
70
email_reply = obj.segment_id.campaign_id.trademark_id.email or ''
71
email_subject = obj.document_id.subject or ''
72
name_from = obj.segment_id.campaign_id.trademark_id.name or ''
73
name_reply = obj.segment_id.campaign_id.trademark_id.name or ''
57
75
pool = pooler.get_pool(cr.dbname)
58
76
ir_att_obj = pool.get('ir.attachment')
59
77
ir_att_ids = ir_att_obj.search(cr,uid,[('res_model','=','dm.campaign.document'),('res_id','=',obj.id),('file_type','=','html')])
60
78
for attach in ir_att_obj.browse(cr,uid,ir_att_ids):
61
79
message = base64.decodestring(attach.datas)
80
root = etree.HTML(message)
81
body = root.find('body')
62
83
print "message :", message
64
html_content = etree.HTML(message)
85
# html_content = ''.join([ etree.tostring(x) for x in body.getchildren()])
86
# print "body :", html_content
87
html_content = _email_body(body)
65
88
text_content = "This is a test"
68
92
msg = etree.Element("MultiSendRequest")
69
93
sendrequest = etree.SubElement(msg, "sendrequest")
71
94
dyn = etree.SubElement(sendrequest, "dyn")
72
96
dynentry1 = etree.SubElement(dyn, "entry")
73
97
dynkey1 = etree.SubElement(dynentry1, "key")
74
98
dynkey1.text = "EMAIL_DEST"
75
99
dynvalue1 = etree.SubElement(dynentry1, "value")
76
100
dynvalue1.text = email_dest
77
102
dynentry2 = etree.SubElement(dyn, "entry")
78
103
dynkey2 = etree.SubElement(dynentry2, "key")
79
104
dynkey2.text = "SUBJECT"
80
105
dynvalue2 = etree.SubElement(dynentry2, "value")
81
106
dynvalue2.text = email_subject
108
dynentry3 = etree.SubElement(dyn, "entry")
109
dynkey3 = etree.SubElement(dynentry3, "key")
110
dynkey3.text = "EMAIL_REPLY"
111
dynvalue3 = etree.SubElement(dynentry3, "value")
112
dynvalue3.text = email_reply
114
dynentry4 = etree.SubElement(dyn, "entry")
115
dynkey4 = etree.SubElement(dynentry4, "key")
116
dynkey4.text = "NAME_FROM"
117
dynvalue4 = etree.SubElement(dynentry4, "value")
118
dynvalue4.text = name_from
120
dynentry5 = etree.SubElement(dyn, "entry")
121
dynkey5 = etree.SubElement(dynentry5, "key")
122
dynkey5.text = "NAME_REPLY"
123
dynvalue5 = etree.SubElement(dynentry5, "value")
124
dynvalue5.text = name_reply
83
127
content = etree.SubElement(sendrequest, "content")
84
128
entry1 = etree.SubElement(content, "entry")
85
129
key1 = etree.SubElement(entry1, "key")
87
131
value1 = etree.SubElement(entry1, "value")
88
value1.text = etree.CDATA(etree.tostring(html_content))
132
value1.text = etree.CDATA(html_content)
89
133
entry2 = etree.SubElement(content, "entry")
90
134
key2 = etree.SubElement(entry2, "key")
108
152
xml_msg = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + etree.tostring(msg, encoding="utf-8")
111
154
"Sending to Emailvision NMSXML API"
112
ev_api = httplib.HTTP(ev_host +":80")
155
ev_api = httplib.HTTP( ev_host +":80")
113
156
ev_api.putrequest("POST", "/" + ev_service)
114
157
ev_api.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
115
158
ev_api.putheader("Content-length", str(len(xml_msg)))
116
159
ev_api.endheaders()
117
160
ev_api.send(xml_msg)
119
162
"Get Emailvision Reply"
120
163
statuscode, statusmessage, header = ev_api.getreply()
121
164
res = ev_api.getfile().read()
123
166
if statuscode != 200:
124
168
error_msg = "This document cannot be sent to Emailvision NMS API\nStatus Code : " + str(statuscode) + "\nStatus Message : " + statusmessage + "\nHeader : " + str(header) + "\nResult : " + res
125
169
pool.get('dm.campaign.document').write(cr, uid, [obj.id], {'state':'error','error_msg':error_msg})