diff options
| author | Olivier Laurent <olt@tinyerp.com> | 2009-05-15 14:20:53 +0200 |
|---|---|---|
| committer | Olivier Laurent <olt@tinyerp.com> | 2009-05-15 14:20:53 +0200 |
| commit | 0ffca84a42cf6c6e606a5d69885f0f7578593d3f (patch) | |
| tree | 9f17b32b5479b42cca964bacf6572574d1e408c4 /bin/tools/misc.py | |
| parent | e65caf6536d16d1584bfdd8e38dfb2c3af66ac48 (diff) | |
| parent | 4a966c47e13d409b6b05994cd08ac6d23b1a8c73 (diff) | |
[MERGE]
bzr revid: olt@tinyerp.com-20090515122053-ft6dzoi69wt0qwpn
Diffstat (limited to 'bin/tools/misc.py')
| -rw-r--r-- | bin/tools/misc.py | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/bin/tools/misc.py b/bin/tools/misc.py index 5eee773f0f1..8a348d3af0e 100644 --- a/bin/tools/misc.py +++ b/bin/tools/misc.py @@ -302,7 +302,8 @@ def reverse_enumerate(l): #---------------------------------------------------------- # Emails #---------------------------------------------------------- -def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attach=None, tinycrm=False, ssl=False, debug=False, subtype='plain'): +def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, + attach=None, tinycrm=False, ssl=False, debug=False, subtype='plain', x_headers=None): """Send an email.""" import smtplib from email.MIMEText import MIMEText @@ -313,9 +314,15 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non from email.Utils import formatdate, COMMASPACE from email import Encoders + if x_headers is None: + x_headers = {} + if not ssl: ssl = config.get('smtp_ssl', False) + if not email_from and not config['email_from']: + raise Exception("No Email sender by default, see config file") + if not email_cc: email_cc = [] if not email_bcc: @@ -326,11 +333,13 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non else: msg = MIMEMultipart() - msg['Subject'] = Header(subject.decode('utf8'), 'utf-8') + msg['Subject'] = Header(ustr(subject), 'utf-8') msg['From'] = email_from del msg['Reply-To'] if reply_to: - msg['Reply-To'] = msg['From']+', '+reply_to + msg['Reply-To'] = reply_to + else: + msg['Reply-To'] = msg['From'] msg['To'] = COMMASPACE.join(email_to) if email_cc: msg['Cc'] = COMMASPACE.join(email_cc) @@ -338,6 +347,15 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non msg['Bcc'] = COMMASPACE.join(email_bcc) msg['Date'] = formatdate(localtime=True) + # Add OpenERP Server information + msg['X-Generated-By'] = 'OpenERP (http://www.openerp.com)' + msg['X-OpenERP-Server-Host'] = socket.gethostname() + msg['X-OpenERP-Server-Version'] = release.version + + # Add dynamic X Header + for key, value in x_headers.items(): + msg['X-OpenERP-%s' % key] = str(value) + if tinycrm: msg['Message-Id'] = "<%s-tinycrm-%s@%s>" % (time.time(), tinycrm, socket.gethostname()) @@ -370,8 +388,8 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non ) s.quit() except Exception, e: - import logging - logging.getLogger().error(str(e)) + import netsvc + netsvc.Logger().notifyChannel('email_send', netsvc.LOG_ERROR, e) return False return True @@ -381,9 +399,10 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non # text must be latin-1 encoded def sms_send(user, password, api_id, text, to): import urllib - params = urllib.urlencode({'user': user, 'password': password, 'api_id': api_id, 'text': text, 'to':to}) - #f = urllib.urlopen("http://api.clickatell.com/http/sendmsg", params) - f = urllib.urlopen("http://196.7.150.220/http/sendmsg", params) + url = "http://api.urlsms.com/SendSMS.aspx" + #url = "http://196.7.150.220/http/sendmsg" + params = urllib.urlencode({'UserID': user, 'Password': password, 'SenderID': api_id, 'MsgText': text, 'RecipientMobileNo':to}) + f = urllib.urlopen(url+"?"+params) # FIXME: Use the logger if there is an error return True @@ -737,7 +756,6 @@ def get_languages(): 'de_DE': u'German / Deutsch', 'el_EL': u'Greek / Ελληνικά', 'en_CA': u'English (CA)', - 'en_EN': u'English (default)', 'en_GB': u'English (UK)', 'en_US': u'English (US)', 'es_AR': u'Spanish (AR) / Español (AR)', @@ -761,7 +779,7 @@ def get_languages(): 'sl_SL': u'Slovenian / slovenščina', 'sv_SE': u'Swedish / svenska', 'tr_TR': u'Turkish / Türkçe', - 'uk_UK': u'Ukrainian / украї́нська мо́ва', + 'uk_UA': u'Ukrainian / украї́нська мо́ва', 'zh_CN': u'Chinese (CN) / 简体中文' , 'zh_TW': u'Chinese (TW) / 正體字', } |
