From 29ffd4bdb81286588b66573c7c926782e6884fda Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Thu, 31 Mar 2011 10:29:37 +0530 Subject: [PATCH 1/3] [fix] base: fix arguments bzr revid: rha@tinyerp.com-20110331045937-c92ifyjvuq0u5r4b --- openerp/addons/base/ir/ir_actions.py | 2 +- openerp/addons/base/res/partner/wizard/partner_wizard_spam.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 38904aecb5e..53718ce493d 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -632,7 +632,7 @@ class actions_server(osv.osv): body = self.merge_message(cr, uid, action.message, action, context) smtp_server_obj = self.pool.get('ir.mail_server') - if smtp_server_obj.send_email(uid, user, [address], subject, body, debug=False, subtype='html', cr=cr) == True: + if smtp_server_obj.send_email(uid, user, [address], subject=subject, body=body, debug=False, subtype='html', cr=cr) == True: logger.info('Email successfully sent to: %s', address) else: logger.warning('Failed to send email to: %s', address) diff --git a/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py b/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py index a141bfaf275..a2f5ed63dce 100644 --- a/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py +++ b/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py @@ -64,8 +64,8 @@ class partner_wizard_spam(osv.osv_memory): #CHECKME: maybe we should use res.partner/email_send smtp_server_obj = self.pool.get('ir.mail_server') smtp_server_obj.send_email(uid, data.email_from, - [to], data.subject, - data.text, subtype=type_, + [to], subject=data.subject, + body=data.text, subtype=type_, cr=cr) nbr += 1 event_pool.create(cr, uid, From 57287158c8c05d5b2d42988a62f9f2375d091659 Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Thu, 31 Mar 2011 15:43:29 +0530 Subject: [PATCH 2/3] [IMP] misc.py: send_email() corrected arguments bzr revid: rha@tinyerp.com-20110331101329-sp7701d68d0u07zy --- openerp/tools/misc.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 1fff17fe267..a7e628e0544 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -462,17 +462,18 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non msg = mail_server_pool.pack_message(cr, uid, subject, body, email_cc, email_bcc, reply_to, attach, message_id, references, openobject_id, debug, subtype, x_headers, priority) - # Send Email + # Send Email res = False try: - res = mail_server_pool.send_email(cr, uid, email_from, flatten([email_to, email_cc, email_bcc]), msg, ssl=ssl, debug=debug, - smtp_server=smtp_server, smtp_port=smtp_port, smtp_user=smtp_user, smtp_password=smtp_password) + res = mail_server_pool.send_email(cr, uid, email_from, flatten([email_to, email_cc, email_bcc]), msg, + smtp_server=smtp_server, smtp_port=smtp_port, smtp_user=smtp_user, smtp_password=smtp_password, + ssl=ssl, tls=True, debug=debug) except Exception: return False finally: cr.close() return res - + #---------------------------------------------------------- # SMS From d7c1a0dc4c47ac2200269f344b5b98246501dd33 Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Thu, 31 Mar 2011 19:06:28 +0530 Subject: [PATCH 3/3] [IMP] : changes in arguments bzr revid: rha@tinyerp.com-20110331133628-0ahwzhlbah44mpej --- openerp/addons/base/ir/ir_actions.py | 2 +- openerp/addons/base/ir/ir_mail_server.py | 34 +++++++++---------- .../res/partner/wizard/partner_wizard_spam.py | 2 +- openerp/tools/misc.py | 2 +- 4 files changed, 20 insertions(+), 20 deletions(-) diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index 0799c473e80..b57953ac5e7 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -632,7 +632,7 @@ class actions_server(osv.osv): body = self.merge_message(cr, uid, action.message, action, context) smtp_server_pool = self.pool.get('ir.mail_server') - msg = smtp_server_pool.pack_message(cr, uid, subject, body, subtype='html') + msg = smtp_server_pool.pack_message(cr, uid, user, [address], subject, body, subtype='html') res_email = smtp_server_pool.send_email(cr, uid, user, [address], msg, debug=False) if res_email: logger.info('Email successfully sent to: %s', address) diff --git a/openerp/addons/base/ir/ir_mail_server.py b/openerp/addons/base/ir/ir_mail_server.py index 053e825255d..7b6c43d7227 100644 --- a/openerp/addons/base/ir/ir_mail_server.py +++ b/openerp/addons/base/ir/ir_mail_server.py @@ -124,14 +124,14 @@ class ir_mail_server(osv.osv): except Exception, error: raise osv.except_osv( _("SMTP Connection: Test failed"), - _("Reason: %s") % error - finally: ) + _("Reason: %s") % error ) + finally: try: if smtp:smtp.quit() except Exception: # ignored, just a consequence of the previous exception pass - + raise osv.except_osv(_("SMTP Connection: Test Successfully!"), '') def connect_smtp_server(self, server_host, server_port, user_name=None, @@ -166,7 +166,7 @@ class ir_mail_server(osv.osv): raise error return smtp_server - def pack_message(self, cr, uid, subject, body, email_cc=None, email_bcc=None, reply_to=False, + def pack_message(self, cr, uid, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attach=None, message_id=None, references=None, openobject_id=False, debug=False, subtype='plain', x_headers=None, priority='3'): """ @@ -181,7 +181,7 @@ class ir_mail_server(osv.osv): if not body: body = u'' email_body = ustr(body).encode('utf-8') - email_text = MIMEText(email_body or '',_subtype=subtype,_charset='utf-8') + email_text = MIMEText(email_body or '', _subtype=subtype,_charset='utf-8') msg = MIMEMultipart() if not message_id and openobject_id: @@ -221,7 +221,7 @@ class ir_mail_server(osv.osv): msg.attach(email_text) if attach: - for (fname,fcontent) in attach: + for (fname, fcontent) in attach: part = MIMEBase('application', "octet-stream") part.set_payload( fcontent ) Encoders.encode_base64(part) @@ -230,14 +230,14 @@ class ir_mail_server(osv.osv): return msg def send_email(self, cr, uid, smtp_from, smtp_to_list, message, - mail_server_id=None, smtp_server=None, smtp_port=None, + mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, ssl=False, tls=True, debug=False): """Send an email. If the id of a mail server is provided, send using this mail server, ignoring other smtp_* arguments. If mail_server_id == None and smtp_server == None, use the default mail server (highest priority). If mail_server_id == None and smtp_server is not None, use the provided smtp_* arguments. - Return messageID of message if Successfully sent Email otherwise return False + Return messageID of message if Successfully sent Email otherwise return False """ if not (smtp_from or config.get('email_from', False)): raise ValueError("Sending an email requires either providing a sender " @@ -251,7 +251,7 @@ class ir_mail_server(osv.osv): mail_server = self.browse(cr, uid, mail_server_id) elif not (mail_server_id and smtp_server): mail_server_ids = self.search(cr, uid, [], order='priority', limit=1) - mail_server = self.browse(cr, uid, server_ids[0]) + mail_server = self.browse(cr, uid, mail_server_ids[0]) if mail_server: smtp_server = mail_server.smtp_host smtp_user = mail_server.smtp_user @@ -267,16 +267,16 @@ class ir_mail_server(osv.osv): def write(self, s): self.logger.notifyChannel('email_send', loglevels.LOG_DEBUG, s) - + try: message_id = message['Message-Id'] smtp_server = smtp_server or config.get('smtp_server') - # Add email in Maildir if smtp_server contains maildir. + # Add email in Maildir if smtp_server contains maildir. if smtp_server.startswith('maildir:/'): from mailbox import Maildir maildir_path = smtp_server[8:] - mdir = Maildir(maildir_path,factory=None, create = True) + mdir = Maildir(maildir_path, factory=None, create = True) mdir.add(message.as_string(True)) return message_id @@ -286,15 +286,15 @@ class ir_mail_server(osv.osv): # Open Connection of SMTP Server smtp = self.connect_smtp_server( - smtp_server, + smtp_server, smtp_port or config.get('smtp_port', 25), - user_name=smtp_user or config,get('smtp_user', False), - user_password=smtp_password or config.get('smtp_password', False), - ssl=ssl or config.get('smtp_ssl', False), + user_name=smtp_user or config.get('smtp_user', False), + user_password=smtp_password or config.get('smtp_password', False), + ssl=ssl or config.get('smtp_ssl', False), tls=tls, debug=debug) try: # Send Email - smtp.sendmail(smtp_from, email_to, message.as_string()) + smtp.sendmail(smtp_from, smtp_to_list, message.as_string()) except Exception: _logger.error('could not deliver Email(s)', exc_info=True) return False diff --git a/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py b/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py index bf71fbe3da2..4d772abeead 100644 --- a/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py +++ b/openerp/addons/base/res/partner/wizard/partner_wizard_spam.py @@ -63,7 +63,7 @@ class partner_wizard_spam(osv.osv_memory): #TODO: add some tests to check for invalid email addresses #CHECKME: maybe we should use res.partner/email_send smtp_server_pool = self.pool.get('ir.mail_server') - msg = smtp_server_pool.pack_message(cr, uid, data.subject, data.text, subtype=type_) + msg = smtp_server_pool.pack_message(cr, uid, data.email_from, [to], data.subject, data.text, subtype=type_) smtp_server_pool.send_email(cr, uid, data.email_from, [to], msg) nbr += 1 event_pool.create(cr, uid, diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index a7e628e0544..04540903d80 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -459,7 +459,7 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non mail_server_pool = pooler.get_pool(cr.dbname).get('ir.mail_server') # Pack Message - msg = mail_server_pool.pack_message(cr, uid, subject, body, email_cc, email_bcc, reply_to, + msg = mail_server_pool.pack_message(cr, uid, email_from, email_to, subject, body, email_cc, email_bcc, reply_to, attach, message_id, references, openobject_id, debug, subtype, x_headers, priority) # Send Email