summaryrefslogtreecommitdiff
path: root/bin/tools/misc.py
diff options
context:
space:
mode:
authorOlivier Laurent <olt@tinyerp.com>2009-05-15 14:20:53 +0200
committerOlivier Laurent <olt@tinyerp.com>2009-05-15 14:20:53 +0200
commit0ffca84a42cf6c6e606a5d69885f0f7578593d3f (patch)
tree9f17b32b5479b42cca964bacf6572574d1e408c4 /bin/tools/misc.py
parente65caf6536d16d1584bfdd8e38dfb2c3af66ac48 (diff)
parent4a966c47e13d409b6b05994cd08ac6d23b1a8c73 (diff)
[MERGE]
bzr revid: olt@tinyerp.com-20090515122053-ft6dzoi69wt0qwpn
Diffstat (limited to 'bin/tools/misc.py')
-rw-r--r--bin/tools/misc.py38
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) / 正體字',
}