[MERGE] Merge with main branch

bzr revid: mra@tinyerp.com-20100416040357-zdb6f9qfrqqixbns
This commit is contained in:
mra (Open ERP) 2010-04-16 09:33:57 +05:30
commit f4798b9e96
50 changed files with 7722 additions and 823 deletions

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_analytic_plans

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_user_function

View File

@ -501,20 +501,7 @@ class crm_case(osv.osv):
self.write(cr, uid, [case.id], {'stage_id': s[section][st]})
return True
def history(self, cr, uid, ids, keyword, history=False, email=False, details=None, context={}):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of Historys IDs
@param context: A standard dictionary for contextual values"""
cases = self.browse(cr, uid, ids, context=context)
return self.__history(cr, uid, cases, keyword=keyword, \
history=history, email=email, details=details, \
context=context)
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, context={}):
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, context={}):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@ -533,7 +520,8 @@ class crm_case(osv.osv):
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'model_id' : model_ids and model_ids[0] or False,
'res_id': case.id,
'section_id': case.section_id.id
'section_id': case.section_id.id,
'message_id':message_id
}
obj = self.pool.get('crm.case.log')
@ -551,6 +539,7 @@ class crm_case(osv.osv):
res = obj.create(cr, uid, data, context)
return True
_history = __history
history = __history
def create(self, cr, uid, *args, **argv):
@ -849,6 +838,7 @@ class crm_case_history(osv.osv):
'email_to': fields.char('Email TO', size=84),
'email_from' : fields.char('Email From', size=84),
'log_id': fields.many2one('crm.case.log','Log',ondelete='cascade'),
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email Server.", select=True),
}
crm_case_history()

View File

@ -38,81 +38,84 @@ class crm_cases(osv.osv):
_name = "crm.case"
_inherit = "crm.case"
def msg_new(self, cr, uid, msg):
""" @param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks
def message_new(self, cr, uid, msg, context):
"""
Automatically calls when new email message arrives
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks
"""
mailgate_obj = self.pool.get('mail.gateway')
msg_body = mailgate_obj.msg_body_get(msg)
msg_subject = mailgate_obj._decode_header(msg['Subject'])
msg_from = mailgate_obj._decode_header(msg['From'])
msg_cc = mailgate_obj._decode_header(msg['Cc'])
body = self.format_body(msg_body['body'])
data = {
'name': msg_subject,
mailgate_pool = self.pool.get('email.server.tools')
subject = msg.get('subject')
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
vals = {
'name': subject,
'email_from': msg_from,
'email_cc': msg_cc,
'email_cc': msg.get('cc'),
'description': body,
'user_id': False,
'description': body,
}
res = mailgate_obj.partner_get(cr, uid, msg_from)
if msg.get('priority', False):
vals['priority'] = priority
res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
if res:
data.update(res)
res = self.create(cr, uid, data)
cases = self.browse(cr, uid, [res])
self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from)
vals.update(res)
res = self.create(cr, uid, vals, context)
cases = self.browse(cr, uid, [res])
self._history(cr, uid, cases, _('Receive'), history=True, details=body, email_from=msg_from, message_id=msg.get('id'))
return res
def msg_update(self, cr, uid, ids, msg, data={}, default_act='pending'):
""" @param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of update mails IDs """
def message_update(self, cr, uid, ids, msg, default_act='pending', context={}):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of update mails IDs
"""
vals = { }
if isinstance(ids, (str, int, long)):
select = [ids]
else:
select = ids
mailgate_obj = self.pool.get('mail.gateway')
msg_actions, body_data = mailgate_obj.msg_act_get(msg)
data.update({
'description': body_data,
ids = [ids]
msg_from = msg['from']
vals.update({
'description': msg['body']
})
act = 'case_'+default_act
if 'state' in msg_actions:
if msg_actions['state'] in ['draft','close','cancel','open','pending']:
act = 'case_' + msg_actions['state']
if msg.get('priority', False):
vals['priority'] = msg.get('priority')
for k1,k2 in [('cost','planned_cost'),('revenue','planned_revenue'),('probability','probability')]:
if k1 in msg_actions:
data[k2] = float(msg_actions[k1])
# act = 'case_'+default_act
# if 'state' in msg_actions:
# if msg_actions['state'] in ['draft','close','cancel','open','pending']:
# act = 'case_' + msg_actions['state']
if 'priority' in msg_actions:
if msg_actions['priority'] in ('1','2','3','4','5'):
data['priority'] = msg_actions['priority']
# for k1,k2 in [('cost','planned_cost'),('revenue','planned_revenue'),('probability','probability')]:
# if k1 in msg_actions:
# data[k2] = float(msg_actions[k1])
if 'partner' in msg_actions:
data['email_from'] = msg_actions['partner'][:128]
msg_from = self._decode_header(msg['From'])
res = self.write(cr, uid, select, data)
cases = self.browse(cr, uid, select)
self._history(cr, uid, cases, _('Receive'), history=True, details=body_data, email_from=msg['From'])
getattr(self,act)(cr, uid, select)
res = self.write(cr, uid, ids, vals)
cases = self.browse(cr, uid, ids)
message_id = context.get('message_id', False)
self._history(cr, uid, cases, _('Receive'), history=True, details=msg['body'], email_from=msg_from, message_id=message_id)
#getattr(self, act)(cr, uid, select)
return res
def emails_get(self, cr, uid, ids, context={}):
""" Get Emails
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of emails IDs
@param context: A standard dictionary for contextual values
"""
Get Emails
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of emails IDs
@param context: A standard dictionary for contextual values
"""
res = []
if isinstance(ids, (str, int, long)):

View File

@ -71,10 +71,14 @@ class crm_send_new_email(osv.osv_memory):
attach = filter(lambda x: x, [data['doc1'], data['doc2'], data['doc3']])
attach = map(lambda x: x and ('Attachment'+str(attach.index(x)+1), base64.decodestring(x)), attach)
message_id = None
if context.get('mail', 'new') == 'new':
case = case_pool.browse(cr, uid, res_id)
message_id = case.history_line[0].message_id
else:
hist = hist_obj.browse(cr, uid, res_id)
message_id = hist.message_id
model = hist.log_id.model_id.model
model_pool = self.pool.get(model)
case = model_pool.browse(cr, uid, hist.log_id.res_id)
@ -84,7 +88,11 @@ class crm_send_new_email(osv.osv_memory):
body = case_pool.format_body(body)
email_from = data.get('email_from', False)
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from)
case_pool._history(cr, uid, [case], _('Send'), history=True, email=data['email_to'], details=body, email_from=email_from, message_id=message_id)
x_headers = {
'References':"%s" % (message_id)
}
flag = tools.email_send(
email_from,
@ -94,6 +102,7 @@ class crm_send_new_email(osv.osv_memory):
attach=attach,
reply_to=case.section_id.reply_to,
openobject_id=str(case.id),
x_headers=x_headers
)
if flag:
if data['state'] == 'unchanged':
@ -111,7 +120,7 @@ class crm_send_new_email(osv.osv_memory):
# raise osv.except_osv(_('Email!'), ("Email Successfully Sent"))
# else:
# raise osv.except_osv(_('Warning!'), _("Email not sent !"))
return {}
def default_get(self, cr, uid, fields, context=None):

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm_profiling

View File

@ -0,0 +1,24 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# mga@tinyerp.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import fetchmail

View File

@ -0,0 +1,48 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# mga@tinyerp.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name" : "Fetchmail Server",
"version" : "1.0",
"depends" : ["base", "smtpclient"],
"author" : "Tiny",
"description": """Fetchail:
* Fetch email from Pop / IMAP server
* Support SSL
* Integrated with all Modules
* Automatic Email Receive
* Email based Records (Add, Update)
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
"fetchmail_view.xml",
"fetchmail_data.xml"
],
'demo_xml': [
],
'installable': True,
'active': False,
}

View File

@ -0,0 +1,405 @@
#!/usr/bin/env python
#-*- coding:utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# mga@tinyerp.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import os
import re
import time
import email
import binascii
import mimetypes
from imaplib import IMAP4
from imaplib import IMAP4_SSL
from email.header import Header
from email.header import decode_header
import netsvc
from osv import osv
from osv import fields
from tools.translate import _
command_re = re.compile("^Set-([a-z]+) *: *(.+)$", re.I + re.UNICODE)
logger = netsvc.Logger()
def html2plaintext(html, body_id=None, encoding='utf-8'):
## (c) Fry-IT, www.fry-it.com, 2007
## <peter@fry-it.com>
## download here: http://www.peterbe.com/plog/html2plaintext
""" from an HTML text, convert the HTML to plain text.
If @body_id is provided then this is the tag where the
body (not necessarily <body>) starts.
"""
try:
from BeautifulSoup import BeautifulSoup, SoupStrainer, Comment
except:
return html
urls = []
if body_id is not None:
strainer = SoupStrainer(id=body_id)
else:
strainer = SoupStrainer('body')
soup = BeautifulSoup(html, parseOnlyThese=strainer, fromEncoding=encoding)
for link in soup.findAll('a'):
title = link.renderContents()
for url in [x[1] for x in link.attrs if x[0]=='href']:
urls.append(dict(url=url, tag=str(link), title=title))
html = soup.__str__()
url_index = []
i = 0
for d in urls:
if d['title'] == d['url'] or 'http://'+d['title'] == d['url']:
html = html.replace(d['tag'], d['url'])
else:
i += 1
html = html.replace(d['tag'], '%s [%s]' % (d['title'], i))
url_index.append(d['url'])
html = html.replace('<strong>','*').replace('</strong>','*')
html = html.replace('<b>','*').replace('</b>','*')
html = html.replace('<h3>','*').replace('</h3>','*')
html = html.replace('<h2>','**').replace('</h2>','**')
html = html.replace('<h1>','**').replace('</h1>','**')
html = html.replace('<em>','/').replace('</em>','/')
# the only line breaks we respect is those of ending tags and
# breaks
html = html.replace('\n',' ')
html = html.replace('<br>', '\n')
html = html.replace('<tr>', '\n')
html = html.replace('</p>', '\n\n')
html = re.sub('<br\s*/>', '\n', html)
html = html.replace(' ' * 2, ' ')
# for all other tags we failed to clean up, just remove then and
# complain about them on the stderr
def desperate_fixer(g):
#print >>sys.stderr, "failed to clean up %s" % str(g.group())
return ' '
html = re.sub('<.*?>', desperate_fixer, html)
# lstrip all lines
html = '\n'.join([x.lstrip() for x in html.splitlines()])
for i, url in enumerate(url_index):
if i == 0:
html += '\n\n'
html += '[%s] %s\n' % (i+1, url)
return html
class mail_server(osv.osv):
_name = 'email.server'
_description = "POP/IMAP Server"
_columns = {
'name':fields.char('Name', size=256, required=True, readonly=False),
'active':fields.boolean('Active', required=False),
'state':fields.selection([
('draft','Not Confirme'),
('wating','Waiting for Verification'),
('done','Confirmed'),
],'State', select=True, readonly=True),
'server' : fields.char('SMTP Server', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
'port' : fields.integer('SMTP Port', required=True, readonly=True, states={'draft':[('readonly',False)]}),
'type':fields.selection([
('pop','POP Server'),
('imap','IMAP Server'),
],'State', select=True, readonly=True),
'is_ssl':fields.boolean('SSL ?', required=False),
'date': fields.date('Date'),
'user' : fields.char('User Name', size=256, required=True, readonly=True, states={'draft':[('readonly',False)]}),
'password' : fields.char('Password', size=1024, invisible=True, required=True, readonly=True, states={'draft':[('readonly',False)]}),
'note': fields.text('Description'),
'action_id':fields.many2one('ir.actions.server', 'Reply Email', required=False, domain="[('state','=','email')]"),
'object_id': fields.many2one('ir.model',"Model", required=True),
'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly',False)]}, help="Priority between 0 to 10, select define the order of Processing"),
}
_defaults = {
'type': lambda *a: "imap",
'state': lambda *a: "draft",
'active': lambda *a: True,
'priority': lambda *a: 5,
'date': lambda *a: time.strftime('%Y-%m-%d'),
}
def check_duplicate(self, cr, uid, ids):
vals = self.read(cr, uid, ids, ['user', 'password'])[0]
cr.execute("select count(id) from email_server where user='%s' and password='%s'" % (vals['user'], vals['password']))
res = cr.fetchone()
if res:
if res[0] > 1:
return False
return True
_constraints = [
(check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['user', 'password'])
]
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):
port = 0
if server_type == 'pop':
port = ssl and 995 or 110
elif server_type == 'imap':
port = ssl and 993 or 143
return {'value':{'port':port}}
def _process_email(self, cr, uid, server, message, context={}):
history_pool = self.pool.get('mail.server.history')
msg_txt = email.message_from_string(message)
message_id = msg_txt.get('Message-ID', False)
msg = {}
if not message_id:
return False
fields = msg_txt.keys()
msg['id'] = message_id
msg['message-id'] = message_id
if 'Subject' in fields:
msg['subject'] = msg_txt.get('Subject')
if 'Content-Type' in fields:
msg['content-type'] = msg_txt.get('Content-Type')
if 'From' in fields:
msg['from'] = msg_txt.get('From')
if 'Delivered-To' in fields:
msg['to'] = msg_txt.get('Delivered-To')
if 'Cc' in fields:
msg['cc'] = msg_txt.get('Cc')
if 'Reply-To' in fields:
msg['reply'] = msg_txt.get('Reply-To')
if 'Date' in fields:
msg['date'] = msg_txt.get('Date')
if 'Content-Transfer-Encoding' in fields:
msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')
if 'References' in fields:
msg['references'] = msg_txt.get('References')
if 'X-openerp-caseid' in fields:
msg['caseid'] = msg_txt.get('X-openerp-caseid')
if 'X-Priority' in fields:
msg['priority'] = msg_txt.get('X-priority', '3 (Normal)').split(' ')[0]
if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', None):
msg['body'] = msg_txt.get_payload(decode=True)
attachents = {}
if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', None):
body = ""
counter = 1
for part in msg_txt.walk():
if part.get_content_maintype() == 'multipart':
continue
if part.get_content_maintype()=='text':
content = part.get_payload(decode=True)
if part.get_content_subtype() == 'html':
body = html2plaintext(content)
elif part.get_content_subtype() == 'plain':
body = content
filename = part.get_filename()
if filename :
attachents[filename] = part.get_payload(decode=True)
elif part.get_content_maintype()=='application' or part.get_content_maintype()=='image' or part.get_content_maintype()=='text':
filename = part.get_filename();
if filename :
attachents[filename] = part.get_payload(decode=True)
else:
body += part.get_payload(decode=True)
msg['body'] = body
msg['attachments'] = attachents
if msg.get('references', False):
id = False
ref = msg.get('references').split('\r\n')
if ref:
hids = history_pool.search(cr, uid, [('name','=',ref[0])])
if hids:
id = hids[0]
history = history_pool.browse(cr, uid, id)
model_pool = self.pool.get(server.object_id.model)
context.update({
'message_id':ref[0]
})
model_pool.message_update(cr, uid, [history.res_id], msg, context=context)
res_id = id
else:
model_pool = self.pool.get(server.object_id.model)
res_id = model_pool.message_new(cr, uid, msg, context)
for attactment in attachents or []:
data_attach = {
'name': attactment,
'datas':binascii.b2a_base64(str(attachents.get(attactment))),
'datas_fname': attactment,
'description': 'Mail attachment',
'res_model': server.object_id.model,
'res_id': res_id,
}
self.pool.get('ir.attachment').create(cr, uid, data_attach)
if server.action_id:
action_pool = self.pool.get('ir.actions.server')
action_pool.run(cr, uid, [server.action_id.id], {'active_id':res_id, 'active_ids':[res_id]})
res = {
'name': message_id,
'res_id': res_id,
'server_id': server.id,
'note': msg.get('body', msg.get('from')),
'ref_id':msg.get('references', msg.get('id')),
'type':server.type
}
his_id = history_pool.create(cr, uid, res)
return res_id
def _fetch_mails(self, cr, uid, ids=False, context={}):
if not ids:
ids = self.search(cr, uid, [])
return self.fetch_mail(cr, uid, ids, context)
def fetch_mail(self, cr, uid, ids, context={}):
fp = os.popen('ping www.google.com -c 1 -w 5',"r")
if not fp.read():
logger.notifyChannel('imap', netsvc.LOG_WARNING, 'No address associated with hostname !')
for server in self.browse(cr, uid, ids, context):
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
try:
if server.type == 'imap':
imap_server = None
if server.is_ssl:
imap_server = IMAP4_SSL(server.server, int(server.port))
else:
imap_server = IMAP4(server.server, int(server.port))
imap_server.login(server.user, server.password)
imap_server.select()
result, data = imap_server.search(None, '(UNSEEN)')
count = 0
for num in data[0].split():
result, data = imap_server.fetch(num, '(RFC822)')
self._process_email(cr, uid, server, data[0][1], context)
imap_server.store(num, '+FLAGS', '\\Seen')
count += 1
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail fetch %s email(s) from %s' % (count, server.name))
imap_server.close()
imap_server.logout()
except Exception, e:
logger.notifyChannel('IMAP', netsvc.LOG_WARNING, '%s' % (e))
return True
mail_server()
class mail_server_history(osv.osv):
_name = "mail.server.history"
_description = "Mail Server History"
_columns = {
'name': fields.char('Message Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
'ref_id': fields.char('Referance Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
'res_id': fields.integer("Resource ID", readonly=True, select=True),
'server_id': fields.many2one('email.server',"Mail Server", readonly=True, select=True),
'model_id':fields.related('server_id', 'object_id', type='many2one', relation='ir.model', string='Model', readonly=True, select=True),
'note': fields.text('Notes', readonly=True),
'create_date': fields.datetime('Created Date', readonly=True),
'type':fields.selection([
('pop','POP Server'),
('imap','IMAP Server'),
],'State', select=True, readonly=True),
}
_order = 'id desc'
mail_server_history()
class fetchmail_tool(osv.osv):
"""
OpenERP Model : fetchmail_tool
"""
_name = 'email.server.tools'
_description = "Email Tools"
_auto = False
def to_email(self, text):
_email = re.compile(r'.*<.*@.*\..*>', re.UNICODE)
def record(path):
eml = path.group()
index = eml.index('<')
eml = eml[index:-1].replace('<','').replace('>','')
return eml
bits = _email.sub(record, text)
return bits
def get_partner(self, cr, uid, from_email, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks
@param from_email: email address based on that function will search for the correct
"""
res = {
'partner_address_id': False,
'partner_id': False
}
from_email = self.to_email(from_email)
address_ids = self.pool.get('res.partner.address').search(cr, uid, [('email', '=', from_email)])
if address_ids:
address = self.pool.get('res.partner.address').browse(cr, uid, address_ids[0])
res['partner_address_id'] = address_ids[0]
res['partner_id'] = address.partner_id.id
return res
fetchmail_tool()

View File

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<data noupdate="1">
<record id="ir_cron_mail_gateway_action" model="ir.cron">
<field name="name">Check Email (Fetchmail)</field>
<field name="name">Fetchmail Service</field>
<field name="interval_number">5</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
<field eval="'mail.gateway'" name="model"/>
<field eval="'email.server'" name="model"/>
<field eval="'_fetch_mails'" name="function"/>
<field eval="'()'" name="args"/>
</record>

View File

@ -0,0 +1,177 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_email_server_tree">
<field name="name">email.server.tree</field>
<field name="model">email.server</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="POP/IMAP Servers">
<field name="name" select="1"/>
<field name="type" select="1"/>
<field name="user" select="1"/>
<field name="is_ssl" select="1"/>
<field name="state" select="1"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_email_server_form">
<field name="name">email.server.form</field>
<field name="model">email.server</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="POP/IMAP Server">
<group col="6" colspan="4">
<field name="name" select="1" colspan="4"/>
<field name="type" select="1" on_change="onchange_server_type(type, is_ssl)"/>
<field name="date" select="1"/>
<field name="is_ssl" select="1" on_change="onchange_server_type(type, is_ssl)"/>
<field name="active" select="1"/>
</group>
<notebook colspan="4">
<page string="Server &amp; Login">
<group col="2" colspan="2">
<separator string="Server Information" colspan="2"/>
<field name="server" />
<field name="port" />
</group>
<group col="2" colspan="2">
<separator string="Login Information" colspan="2"/>
<field name="user" />
<field name="password" password="True" />
</group>
<group col="2" colspan="2">
<separator string="Auto Reply?" colspan="2"/>
<field name="action_id"/>
</group>
<group col="2" colspan="2">
<separator string="Process Parameter" colspan="2"/>
<field name="object_id"/>
<field name="priority"/>
</group>
<separator string="Description" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
</page>
</notebook>
<group col="6" colspan="4">
<field name="state" select="1"/>
<button string="Verify Server" type="object" name="fetch_mail"/>
<button string="Schedule"/>
</group>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_email_server_tree">
<field name="name">POP Servers</field>
<field name="res_model">email.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_email_server_tree"/>
<field name="context">{'type':'pop'}</field>
<field name="domain">[('type','=','pop')]</field>
</record>
<menuitem
parent="smtpclient.menu_smtpclient_administration_server"
id="menu_action_email_server_tree"
action="action_email_server_tree"
/>
<record model="ir.actions.act_window" id="action_email_server_tree_imap">
<field name="name">IMAP Servers</field>
<field name="res_model">email.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_email_server_tree"/>
<field name="context">{'type':'imap'}</field>
<field name="domain">[('type','=','imap')]</field>
</record>
<menuitem
parent="smtpclient.menu_smtpclient_administration_server"
id="menu_action_email_server_tree_imap"
action="action_email_server_tree_imap"
/>
<record model="ir.ui.view" id="view_mail_server_history_tree">
<field name="name">mail.server.history.tree</field>
<field name="model">mail.server.history</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Received Mail History">
<field name="server_id" select="1"/>
<field name="create_date" select="1"/>
<field name="model_id"/>
<field name="name" select="1"/>
<field name="ref_id"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_email_server_history_form">
<field name="name">mail.server.history.form</field>
<field name="model">mail.server.history</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email History">
<group col="6" colspan="4">
<field name="server_id" select="1"/>
<field name="create_date" select="1"/>
</group>
<group col="2" colspan="2">
<separator string="Resource Information" colspan="2"/>
<field name="model_id" select="1"/>
<field name="res_id"/>
</group>
<group col="2" colspan="2">
<separator string="Meta Information" colspan="2"/>
<field name="name" select="1"/>
<field name="ref_id"/>
</group>
<newline/>
<separator string="Description" colspan="4"/>
<field name="note" colspan="4" nolabel="1"/>
</form>
</field>
</record>
<act_window
context="{'server_id': active_id}"
domain="[('server_id', '=', active_id)]"
id="act_server_history" name="Email History"
res_model="mail.server.history" src_model="email.server"/>
<record model="ir.actions.act_window" id="action_email_server_history_tree">
<field name="name">Receive Email History</field>
<field name="res_model">mail.server.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_mail_server_history_tree"/>
<field name="context">{'type':'imap'}</field>
<field name="domain">[('type','=','imap')]</field>
</record>
<menuitem
parent="menu_action_email_server_tree_imap"
id="menu_action_email_server_history_tree"
action="action_email_server_history_tree"/>
<record model="ir.actions.act_window" id="action_email_server_history_tree_pop">
<field name="name">Receive Email History</field>
<field name="res_model">mail.server.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_mail_server_history_tree"/>
<field name="context">{'type':'pop'}</field>
<field name="domain">[('type','=','pop')]</field>
</record>
<menuitem
parent="menu_action_email_server_tree"
id="menu_action_email_server_history_tree_pop"
action="action_email_server_history_tree_pop"/>
</data>
</openerp>

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr

View File

@ -19,11 +19,5 @@
#
##############################################################################
import mail_gateway
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -19,23 +19,23 @@
#
##############################################################################
{
'name': 'eMail Gateway',
'name': 'Email Gateway System',
'version': '1.0',
'category': 'Generic Modules/eMail Gate',
'description': """
The generic email gateway system for the synchronisation interface
between mails and Open Objects.
""",
'category': 'Generic Modules/Mail Service',
'description': """The generic email gateway system allows to send and receive emails
* IMAP / IMAP with SSL
* POP / POP with SSL
* SMTP / SMTP with TLS
* ACL basd access polocy
* Queing and History for Emails
* Easy Integration with any Module""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
'depends': ['base', 'process'],
'init_xml': ['mail_gateway_data.xml',],
'depends': ['smtpclient', 'fetchmail'],
'init_xml': [],
'update_xml': [
'mail_gateway_wizard.xml',
'mail_gateway_view.xml',
'security/ir.model.access.csv',
],
'demo_xml': [],
'installable': True,

View File

@ -1,409 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
###########################################################################################
import re
import email, mimetypes
from email.Header import decode_header
from email.MIMEText import MIMEText
import xmlrpclib
import os
import binascii
import time, socket
from tools.translate import _
import tools
from osv import fields,osv,orm
from osv.orm import except_orm
import email
import netsvc
from poplib import POP3, POP3_SSL
from imaplib import IMAP4, IMAP4_SSL
class mail_gateway_server(osv.osv):
_name = "mail.gateway.server"
_description = "Email Gateway Server"
_columns = {
'name': fields.char('Server Address',size=64,required=True ,help="IMAP/POP Address Of Email gateway Server"),
'login': fields.char('User',size=64,required=True,help="User Login Id of Email gateway"),
'password': fields.char('Password',size=64,required=True,help="User Password Of Email gateway"),
'server_type': fields.selection([("pop","POP"),("imap","Imap")],"Type of Server", required=True, help="Type of Email gateway Server"),
'port': fields.integer("Port" , help="Port Of Email gateway Server. If port is omitted, the standard POP3 port (110) is used for POP EMail Server and the standard IMAP4 port (143) is used for IMAP Sever."),
'ssl': fields.boolean('SSL',help ="Use Secure Authentication"),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the email gateway server without removing it."),
}
_defaults = {
'server_type':lambda * a:'pop',
'active':lambda * a:True,
}
def check_duplicate(self, cr, uid, ids):
vals = self.read(cr, uid, ids, ['name', 'login'])[0]
cr.execute("select count(id) from mail_gateway_server \
where name='%s' and login='%s'" % \
(vals['name'], vals['login']))
res = cr.fetchone()
if res:
if res[0] > 1:
return False
return True
_constraints = [
(check_duplicate, 'Warning! Can\'t have duplicate server configuration!', ['name', 'login'])
]
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):
port = 0
if server_type == 'pop':
port = ssl and 995 or 110
elif server_type == 'imap':
port = ssl and 993 or 143
return {'value':{'port':port}}
mail_gateway_server()
class mail_gateway(osv.osv):
_name = "mail.gateway"
_description = "Email Gateway"
_columns = {
'name': fields.char('Name',size=64,help="Name of Mail Gateway."),
'server_id': fields.many2one('mail.gateway.server',"Gateway Server", required=True),
'object_id': fields.many2one('ir.model',"Model", required=True),
'reply_to': fields.char('TO', size=64, help="Email address used in reply to/from of outgoing messages"),
'email_default': fields.char('Default eMail',size=64,help="Default eMail in case of any trouble."),
'mail_history': fields.one2many("mail.gateway.history","gateway_id","History", readonly=True)
}
_defaults = {
'reply_to': lambda * a:tools.config.get('email_from',False)
}
def _fetch_mails(self, cr, uid, ids=False, context={}):
'''
Function called by the scheduler to fetch mails
'''
cr.execute('select * from mail_gateway gateway \
inner join mail_gateway_server server \
on server.id = gateway.server_id where server.active = True')
ids2 = map(lambda x: x[0], cr.fetchall() or [])
return self.fetch_mails(cr, uid, ids=ids2, context=context)
def parse_mail(self, cr, uid, gateway_id, email_message, context={}):
msg_id, res_id, note = (False, False, False)
mail_history_obj = self.pool.get('mail.gateway.history')
mailgateway = self.browse(cr, uid, gateway_id, context=context)
try :
msg_txt = email.message_from_string(email_message)
msg_id = msg_txt['Message-ID']
res_id = self.msg_parse(cr, uid, gateway_id, msg_txt)
except Exception, e:
import traceback
note = "Error in Parsing Mail: %s " %(str(e))
netsvc.Logger().notifyChannel('Emailgate: Parsing mail:%s' % (mailgateway and (mailgateway.name or
'%s (%s)'%(mailgateway.server_id.login, mailgateway.server_id.name))) or ''
, netsvc.LOG_ERROR, traceback.format_exc())
mail_history_obj.create(cr, uid, {'name': msg_id, 'res_id': res_id, 'gateway_id': mailgateway.id, 'note': note})
return res_id, note
def fetch_mails(self, cr, uid, ids=[], context={}):
log_messages = []
mailgate_server = False
new_messages = []
for mailgateway in self.browse(cr, uid, ids):
try :
mailgate_server = mailgateway.server_id
if not mailgate_server.active:
continue
mailgate_name = mailgateway.name or "%s (%s)" % (mailgate_server.login, mailgate_server.name)
res_model = mailgateway.object_id.name
log_messages.append("Mail Server : %s" % mailgate_name)
log_messages.append("="*40)
new_messages = []
if mailgate_server.server_type == 'pop':
if mailgate_server.ssl:
pop_server = POP3_SSL(mailgate_server.name or 'localhost', mailgate_server.port or 995)
else:
pop_server = POP3(mailgate_server.name or 'localhost', mailgate_server.port or 110)
pop_server.user(mailgate_server.login)
pop_server.pass_(mailgate_server.password)
pop_server.list()
(numMsgs, totalSize) = pop_server.stat()
for i in range(1, numMsgs + 1):
(header, msges, octets) = pop_server.retr(i)
res_id, note = self.parse_mail(cr, uid, mailgateway.id, '\n'.join(msges))
log = ''
if res_id:
log = _('Object Successfully Created : %d of %s'% (res_id, res_model))
if note:
log = note
log_messages.append(log)
new_messages.append(i)
pop_server.quit()
elif mailgate_server.server_type == 'imap':
if mailgate_server.ssl:
imap_server = IMAP4_SSL(mailgate_server.name or 'localhost', mailgate_server.port or 993)
else:
imap_server = IMAP4(mailgate_server.name or 'localhost', mailgate_server.port or 143)
imap_server.login(mailgate_server.login, mailgate_server.password)
imap_server.select()
typ, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
typ, data = imap_server.fetch(num, '(RFC822)')
res_id, note = self.parse_mail(cr, uid, mailgateway.id, data[0][1])
log = ''
if res_id:
log = _('Object Successfully Created/Modified: %d of %s'% (res_id, res_model))
if note:
log = note
log_messages.append(log)
new_messages.append(num)
imap_server.close()
imap_server.logout()
except Exception, e:
import traceback
log_messages.append("Error in Fetching Mail: %s " %(str(e)))
netsvc.Logger().notifyChannel('Emailgate: Fetching mail:[%d]%s' %
(mailgate_server and mailgate_server.id or 0, mailgate_server and mailgate_server.name or ''),
netsvc.LOG_ERROR, traceback.format_exc())
log_messages.append("-"*25)
log_messages.append("Total Read Mail: %d\n\n" %(len(new_messages)))
return log_messages
def emails_get(self, email_from):
res = tools.email_re.search(email_from)
return res and res.group(1)
def partner_get(self, cr, uid, email):
mail = self.emails_get(email)
adr_ids = self.pool.get('res.partner.address').search(cr, uid, [('email', '=', mail)])
if not adr_ids:
return {}
adr = self.pool.get('res.partner.address').read(cr, uid, adr_ids, ['partner_id'])
res = {}
if len(adr):
res = {
'partner_address_id': adr[0]['id'],
'partner_id': adr[0].get('partner_id',False) and adr[0]['partner_id'][0] or False
}
return res
def _to_decode(self, s, charsets):
for charset in charsets:
if charset:
try:
return s.decode(charset)
except UnicodeError:
pass
try:
return s.decode('ascii')
except UnicodeError:
return s
def _decode_header(self, s):
from email.Header import decode_header
s = decode_header(s)
return ''.join(map(lambda x:self._to_decode(x[0], x[1]), s))
def msg_new(self, cr, uid, msg, model):
message = self.msg_body_get(msg)
res_model = self.pool.get(model)
res_id = res_model.msg_new(cr, uid, msg)
if res_id:
attachments = message['attachment']
for attach in attachments or []:
data_attach = {
'name': str(attach),
'datas':binascii.b2a_base64(str(attachments[attach])),
'datas_fname': str(attach),
'description': 'Mail attachment',
'res_model': model,
'res_id': res_id
}
self.pool.get('ir.attachment').create(cr, uid, data_attach)
return res_id
def msg_body_get(self, msg):
message = {};
message['body'] = '';
message['attachment'] = {};
attachment = message['attachment'];
counter = 1;
def replace(match):
return ''
for part in msg.walk():
if part.get_content_maintype() == 'multipart':
continue
if part.get_content_maintype()=='text':
buf = part.get_payload(decode=True)
if buf:
txt = self._to_decode(buf, part.get_charsets())
txt = re.sub("<(\w)>", replace, txt)
txt = re.sub("<\/(\w)>", replace, txt)
if txt and part.get_content_subtype() == 'plain':
message['body'] += txt
elif txt and part.get_content_subtype() == 'html':
message['body'] += tools.html2plaintext(txt)
filename = part.get_filename();
if filename :
attachment[filename] = part.get_payload(decode=True);
elif part.get_content_maintype()=='application' or part.get_content_maintype()=='image' or part.get_content_maintype()=='text':
filename = part.get_filename();
if filename :
attachment[filename] = part.get_payload(decode=True);
else:
filename = 'attach_file'+str(counter);
counter += 1;
attachment[filename] = part.get_payload(decode=True);
#end if
#end if
message['attachment'] = attachment
#end for
return message
#end def
def msg_update(self, cr, uid, msg, res_id, res_model, user_email):
if user_email and self.emails_get(user_email)==self.emails_get(self._decode_header(msg['From'])):
return self.msg_user(cr, uid, msg, res_id, res_model)
else:
return self.msg_partner(cr, uid, msg, res_id, res_model)
def msg_act_get(self, msg):
body = self.msg_body_get(msg)
# handle email body commands (ex: Set-State: Draft)
actions = {}
body_data = ''
for line in body['body'].split('\n'):
res = tools.command_re.match(line)
if res:
actions[res.group(1).lower()] = res.group(2).lower()
else:
body_data += line+'\n'
return actions, body_data
def msg_user(self, cr, uid, msg, res_id, res_model):
actions, body_data = self.msg_act_get(msg)
data = {}
if 'user' in actions:
uids = self.pool.get('res.users').name_search(cr, uid, actions['user'])
if uids:
data['user_id'] = uids[0][0]
res_model = self.pool.get(res_model)
return res_model.msg_update(cr, uid, res_id, msg, data=data, default_act='pending')
def msg_send(self, msg, reply_to, emails, priority=None, res_id=False):
if not emails:
return False
msg_to = [emails[0]]
msg_subject = msg['Subject']
msg_cc = []
msg_body = self.msg_body_get(msg)
if len(emails)>1:
msg_cc = emails[1:]
msg_attachment = map(lambda x: (x[0], x[1]), msg_body['attachment'].items())
return tools.email_send(reply_to, msg_to, msg_subject , msg_body['body'], email_cc=msg_cc,
reply_to=reply_to, attach=msg_attachment, openobject_id=res_id, priority=priority)
def msg_partner(self, cr, uid, msg, res_id, res_model):
res_model = self.pool.get(res_model)
return res_model.msg_update(cr, uid, res_id, msg, data={}, default_act='open')
def msg_parse(self, cr, uid, mailgateway_id, msg):
mailgateway = self.browse(cr, uid, mailgateway_id)
res_model = mailgateway.object_id.model
res_str = tools.reference_re.search(msg.get('References', ''))
if res_str:
res_str = res_str.group(1)
else:
res_str = tools.res_re.search(msg.get('Subject', ''))
if res_str:
res_str = res_str.group(1)
def msg_test(res_str):
emails = ('', '', '', '')
if not res_str:
return (False, emails)
res_str = int(res_str)
if hasattr(self.pool.get(res_model), 'emails_get'):
emails = self.pool.get(res_model).emails_get(cr, uid, [res_str])[0]
return (res_str, emails)
(res_id, emails) = msg_test(res_str)
user_email, from_email, cc_email, priority = emails
if res_id:
self.msg_update(cr, uid, msg, res_id, res_model, user_email)
else:
res_id = self.msg_new(cr, uid, msg, res_model)
(res_id, emails) = msg_test(res_id)
user_email, from_email, cc_email, priority = emails
subject = self._decode_header(msg['subject'])
if msg.get('Subject', ''):
del msg['Subject']
msg['Subject'] = '[%s] %s' %(str(res_id), subject)
em = [user_email or '', from_email] + (cc_email or '').split(',')
emails = map(self.emails_get, filter(None, em))
mm = [self._decode_header(msg['From']), self._decode_header(msg['To'])]+self._decode_header(msg.get('Cc','')).split(',')
msg_mails = map(self.emails_get, filter(None, mm))
emails = filter(lambda m: m and m not in msg_mails, emails)
try:
self.msg_send(msg, mailgateway.reply_to, emails, priority, res_id)
if hasattr(self.pool.get(res_model), 'msg_send'):
emails = self.pool.get(res_model).msg_send(cr, uid, res_id)
except Exception, e:
if mailgateway.email_default:
a = self._decode_header(msg['Subject'])
del msg['Subject']
msg['Subject'] = '[OpenERP-Error] ' + a
self.msg_send(msg, mailgateway.reply_to, mailgateway.email_default.split(','), res_id)
raise e
return res_id
mail_gateway()
class mail_gateway_history(osv.osv):
_name = "mail.gateway.history"
_description = "Mail Gateway History"
_columns = {
'name': fields.char('Message Id', size=64, help="Message Id in Email Server."),
'res_id': fields.integer("Resource ID"),
'gateway_id': fields.many2one('mail.gateway',"Mail Gateway", required=True),
'model_id':fields.related('gateway_id', 'object_id', type='many2one', relation='ir.model', string='Model'),
'note': fields.text('Notes'),
'create_date': fields.datetime('Created Date'),
}
_order = 'id desc'
mail_gateway_history()

View File

@ -1,129 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="mail_gateway_history_form" model="ir.ui.view">
<field name="name">mail.gateway.history.form</field>
<field name="model">mail.gateway.history</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Gateway History">
<field name="name"/>
<field name="create_date"/>
<field name="gateway_id"/>
<field name="model_id"/>
<field name="res_id"/>
<separator string="Note" colspan="4"/>
<field name="note" nolabel="1" colspan="4"/>
</form>
</field>
</record>
<record id="mail_gateway_history_tree" model="ir.ui.view">
<field name="name">mail.gateway.history.tree</field>
<field name="model">mail.gateway.history</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Gateway History">
<field name="name" select="1"/>
<field name="create_date"/>
<field name="model_id"/>
<field name="res_id"/>
<field name="gateway_id"/>
</tree>
</field>
</record>
<record id="mail_gateway_act" model="ir.actions.act_window">
<field name="name">Gateway History</field>
<field name="res_model">mail.gateway.history</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="mail_gateway_history_tree"/>
</record>
<act_window context="{'gateway_id': active_id}"
domain="[('gateway_id', '=', active_id)]"
id="act_gateway_history" name="Email History"
res_model="mail.gateway.history" src_model="mail.gateway" />
<record id="mail_gateway_form" model="ir.ui.view">
<field name="name">mail.gateway.form</field>
<field name="model">mail.gateway</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Gateway">
<field name="name"/>
<field name="object_id"/>
<field name="server_id" />
<field name="reply_to"/>
<field name="email_default" />
</form>
</field>
</record>
<record id="mail_gateway_tree" model="ir.ui.view">
<field name="name">mail.gateway.tree</field>
<field name="model">mail.gateway</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Email Gateway">
<field name="name"/>
<field name="object_id"/>
<field name="server_id" />
</tree>
</field>
</record>
<record id="mail_gateway_act" model="ir.actions.act_window">
<field name="name">Email Gateway</field>
<field name="res_model">mail.gateway</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="mail_gateway_tree"/>
</record>
<record id="mail_gateway_server_form" model="ir.ui.view">
<field name="name">mail.gateway.server.form</field>
<field name="model">mail.gateway.server</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Gateway Server">
<field name="server_type" colspan="4" on_change="onchange_server_type(server_type,ssl)"/>
<field name="name"/>
<field name="port" />
<field name="login" />
<field name="password" password="True"/>
<field name="ssl" on_change="onchange_server_type(server_type,ssl)"/>
<field name="active" />
</form>
</field>
</record>
<record id="mail_gateway_server_tree" model="ir.ui.view">
<field name="name">mail.gateway.server.tree</field>
<field name="model">mail.gateway.server</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Email Gateway Server">
<field name="name"/>
<field name="port" />
<field name="server_type"/>
<field name="ssl" />
</tree>
</field>
</record>
<record id="mail_gateway_server_act" model="ir.actions.act_window">
<field name="name">Email Gateway Server</field>
<field name="res_model">mail.gateway.server</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="mail_gateway_server_tree"/>
</record>
<menuitem id="email_gateway_menu_parent" name="Email Gateway" parent="base.menu_config" />
<menuitem id="email_gateway_menu" parent="email_gateway_menu_parent" action="mail_gateway_act"/>
<menuitem id="email_gateway_server_menu" parent="email_gateway_menu_parent" action="mail_gateway_server_act"/>
</data>
</openerp>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<wizard string="Fetch Mail"
model="mail.gateway"
name="mail_gateway.fetchmail"
id="wizard_mailgateway_fetchmail"/>
</data>
</openerp>

View File

@ -1,7 +0,0 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_mail_gateway_server","mail.gateway.server","model_mail_gateway_server","base.group_user",1,0,0,0
"access_mail_gateway","mail.gateway","model_mail_gateway","base.group_user",1,0,0,0
"access_mail_gateway_history","mail.gateway.history","model_mail_gateway_history","base.group_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_mail_gateway_server mail.gateway.server model_mail_gateway_server base.group_user 1 0 0 0
3 access_mail_gateway mail.gateway model_mail_gateway base.group_user 1 0 0 0
4 access_mail_gateway_history mail.gateway.history model_mail_gateway_history base.group_user 1 0 0 0

View File

@ -1,82 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import wizard
import time
import pooler
import tools
import os
_email_form = '''<?xml version="1.0"?>
<form string="Email Gateway">
<separator string="Fetching Emails : " />
<field name="server" colspan="4" nolabel="1" />
</form>'''
_email_done_form = '''<?xml version="1.0"?>
<form string="Email Gateway">
<separator string="Log Detail" />
<newline/>
<field name="message" colspan="4" nolabel="1"/>
</form>'''
_email_fields = {
'server': {'string':"Server", 'type':'text', 'readonly':True},
}
_email_done_fields = {
'message': {'string':"Log Detail", 'type':'text', 'readonly':True},
}
def _default(self , cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
gateway_pool=pool.get('mail.gateway')
server = []
for mail_gateway in gateway_pool.browse(cr, uid, data['ids'], context=context):
if mail_gateway.server_id.active:
server.append(mail_gateway.name or '%s (%s)'%(mail_gateway.server_id.login, mail_gateway.server_id.name) )
data['form']['server'] = '\n'.join(server)
return data['form']
def section_fetch_mail(self , cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
gateway_pool=pool.get('mail.gateway')
messages = gateway_pool.fetch_mails(cr, uid, ids=data['ids'], context=context)
data['form']['message'] = '\n'.join(messages)
return data['form']
class wiz_mailgateway_fetch_mail(wizard.interface):
states = {
'init': {
'actions': [_default],
'result': {'type': 'form', 'arch':_email_form, 'fields':_email_fields, 'state':[('end','Cancel','gtk-cancel'), ('fetch','Fetch','gtk-execute')]}
},
'fetch': {
'actions': [section_fetch_mail],
'result': {'type': 'form', 'arch': _email_done_form,
'fields': _email_done_fields,
'state': (
('end', 'Close'),
)
},
},
}
wiz_mailgateway_fetch_mail('mail_gateway.fetchmail')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,34 @@
# Romanian translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 05:29+0000\n"
"PO-Revision-Date: 2010-04-15 10:48+0000\n"
"Last-Translator: geopop65 <Unknown>\n"
"Language-Team: Romanian <ro@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap_sale
#: model:ir.module.module,description:olap_sale.module_meta_information
msgid ""
"\n"
" Sale module will load the data in olap tables\n"
" "
msgstr ""
"\n"
" Modulul de vânzări va încărca datele în tabelele olap\n"
" "
#. module: olap_sale
#: model:ir.module.module,shortdesc:olap_sale.module_meta_information
msgid "olap_sale"
msgstr "olap_sale"

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:04+0000\n"
"Last-Translator: Freerk Kalsbeek (Mindswitch BV) <f.kalsbeek@mindswitch.nl>\n"
"PO-Revision-Date: 2010-04-15 09:57+0000\n"
"Last-Translator: The Loeki <the.loeki@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:11+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_manufacturing
@ -110,7 +110,7 @@ msgstr ""
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Stock & Manufacturing"
msgstr ""
msgstr "Voorraad en productie"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
@ -158,7 +158,7 @@ msgstr ""
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Install"
msgstr ""
msgstr "Installeren"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,sale_crm:0
@ -168,7 +168,7 @@ msgstr ""
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
msgid "Repair"
msgstr ""
msgstr "Reparatie"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,sale_margin:0
@ -197,12 +197,12 @@ msgstr ""
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,warning:0
msgid "Warning"
msgstr ""
msgstr "Waarschuwing"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,sale_margin:0
msgid "Margins on Sales Order"
msgstr ""
msgstr "Marges op verkooporder"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,stock_location:0
@ -217,14 +217,14 @@ msgstr ""
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Cancel"
msgstr ""
msgstr "Annuleren"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,point_of_sale:0
msgid "Point of Sale"
msgstr ""
msgstr "Verkooppunt"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,stock_location:0
msgid "Advanced Locations"
msgstr ""
msgstr "Uitgebreide locaties"

View File

@ -7,206 +7,208 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
"Last-Translator: <>\n"
"PO-Revision-Date: 2010-04-15 10:57+0000\n"
"Last-Translator: geopop65 <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:13+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_document
#: field:report.document.user,create_date:0
#: field:report.files.partner,create_date:0
msgid "Date Created"
msgstr ""
msgstr "Data creării"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_files_by_partner
msgid "Files Per Month"
msgstr ""
msgstr "Fişiere pe lună"
#. module: report_document
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Numele obiectului trebuie să înceapă cu x_ şi să nu conţină nici un caracter "
"special !"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_wall
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_shame
#: view:report.document.wall:0
msgid "Wall of Shame"
msgstr ""
msgstr "Panoul ruşinii"
#. module: report_document
#: model:ir.model,name:report_document.model_report_files_partner
msgid "Files details by Partners"
msgstr ""
msgstr "Detalii fişier după parteneri"
#. module: report_document
#: field:report.document.file,file_size:0
#: field:report.document.user,file_size:0
#: field:report.files.partner,file_size:0
msgid "File Size"
msgstr ""
msgstr "Mărime fişier"
#. module: report_document
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nume invalid de model în definirea acțiunii"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all
msgid "All Months"
msgstr ""
msgstr "Toate lunile"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_myfile
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_myfile
msgid "My files"
msgstr ""
msgstr "Fişierele mele"
#. module: report_document
#: view:report.document.user:0
msgid "Files by users"
msgstr ""
msgstr "Fişiere după utilizatori"
#. module: report_document
#: view:report.document.user:0
msgid "Files"
msgstr ""
msgstr "Fişiere"
#. module: report_document
#: view:report.files.partner:0
msgid "Files per Month"
msgstr ""
msgstr "Fişiere pe lună"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree1
msgid "My files (All months)"
msgstr ""
msgstr "Fişierele mele (toale lunile)"
#. module: report_document
#: field:report.document.wall,file_name:0
msgid "Last Posted File Name"
msgstr ""
msgstr "Numele ultimului fişier postat"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report
msgid "Reporting"
msgstr ""
msgstr "Raportare"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_wall
msgid "Users that did not inserted documents since one month"
msgstr ""
msgstr "Utilizatori care nu au inserat documente în ultima lună"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document
msgid "Document Management"
msgstr ""
msgstr "Managementul documentelor"
#. module: report_document
#: field:report.document.user,type:0
#: field:report.files.partner,type:0
msgid "Directory Type"
msgstr ""
msgstr "Tip de director"
#. module: report_document
#: view:report.files.partner:0
msgid "Files By Partner"
msgstr ""
msgstr "Fişiere după parteneri"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this
msgid "This Month"
msgstr ""
msgstr "Luna curentă"
#. module: report_document
#: field:report.document.user,user:0
#: field:report.document.wall,user:0
msgid "User"
msgstr ""
msgstr "Utilizator"
#. module: report_document
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "XML invalid pentru arhitectura machetei de afișare !"
#. module: report_document
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_all_userfile
#: model:ir.ui.menu,name:report_document.menu_action_view_my_document_report_this_userfile
msgid "All Users files"
msgstr ""
msgstr "Fişierele tuturor utilizatorilor"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_my_document_tree
msgid "My files (This months)"
msgstr ""
msgstr "Fişierele mele (luna curentă)"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_user
msgid "Files details by Users"
msgstr ""
msgstr "Detalii fişiere după utilizator"
#. module: report_document
#: field:report.document.user,user_id:0
#: field:report.document.wall,user_id:0
msgid "Owner"
msgstr ""
msgstr "Deținător"
#. module: report_document
#: field:report.document.file,nbr:0
#: field:report.document.user,nbr:0
#: field:report.files.partner,nbr:0
msgid "# of Files"
msgstr ""
msgstr "Număr de fişiere"
#. module: report_document
#: field:report.document.user,directory:0
#: field:report.files.partner,directory:0
msgid "Directory"
msgstr ""
msgstr "Director"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_user_graph
msgid "Files By Users"
msgstr ""
msgstr "Fişiere după utilizatori"
#. module: report_document
#: model:ir.module.module,shortdesc:report_document.module_meta_information
msgid "Document Management - Reporting"
msgstr ""
msgstr "Management documente - Raportări"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree1
msgid "All Users files (All months)"
msgstr ""
msgstr "Toate fişierele utilizatorilor (toate lunile)"
#. module: report_document
#: model:ir.model,name:report_document.model_report_document_file
msgid "Files details by Directory"
msgstr ""
msgstr "Detalii fişiere după directoare"
#. module: report_document
#: field:report.document.user,change_date:0
#: field:report.files.partner,change_date:0
msgid "Modified Date"
msgstr ""
msgstr "Data modificării"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_size_month
#: view:report.document.file:0
msgid "File Size by Month"
msgstr ""
msgstr "Mărime fişiere pe luni"
#. module: report_document
#: field:report.document.user,file_title:0
#: field:report.files.partner,file_title:0
msgid "File Name"
msgstr ""
msgstr "Nume fișier"
#. module: report_document
#: field:report.document.file,month:0
@ -216,32 +218,32 @@ msgstr ""
#: field:report.document.wall,name:0
#: field:report.files.partner,name:0
msgid "Month"
msgstr ""
msgstr "Luna"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_files_by_month_graph
#: view:report.document.user:0
msgid "Files by Month"
msgstr ""
msgstr "Fişiere pe luni"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_document_by_resourcetype_graph
#: view:report.document.user:0
msgid "Files by Resource Type"
msgstr ""
msgstr "Fişiere pe tipuri de resursă"
#. module: report_document
#: model:ir.actions.act_window,name:report_document.action_view_all_document_tree
msgid "All Users files (This month)"
msgstr ""
msgstr "Fişierele tuturor utilizatorilor (luna curentă)"
#. module: report_document
#: field:report.document.wall,last:0
msgid "Last Posted Time"
msgstr ""
msgstr "Ora ultimei postări"
#. module: report_document
#: field:report.document.user,partner:0
#: field:report.files.partner,partner:0
msgid "Partner"
msgstr ""
msgstr "Partener"

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale_crm

View File

@ -1,8 +1,7 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@ -19,8 +18,9 @@
#
##############################################################################
import wizard_fetch_mail
import smtpclient
import serveraction
import ir_model
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,50 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name" : "Email Client",
"version" : "1.0",
"depends" : ["base"],
"author" : "Tiny/Axelor",
"description": """Email Client module that provides:
Sending Email
Use Multiple Server
Multi Threading
Multi Attachment
""",
"website" : "http://www.openerp.com",
"category" : "Generic Modules",
"init_xml" : [
],
"demo_xml" : [
"smtpclient_demo.xml"
],
"update_xml" : [
"smtpclient_view.xml",
"serveraction_view.xml",
"smtpclient_wizard.xml",
"security/ir.model.access.csv",
"smtpclient_data.xml",
],
"active": False,
"installable": True
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,868 @@
# Translation of OpenERP Server.
# This file containt the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
"PO-Revision-Date: 2010-01-19 05:22+0000\n"
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
"<jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-25 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr "__number__ per a número de Factura / Comanda venda"
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr "Utilitza SSL"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr "Verifica servidor"
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr ""
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr ""
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr "Missatge d'error!"
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr "Nom servidor"
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr ""
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr "Envia Email"
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr "Companyia"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr "El servidor ja està verificat!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr "Ha fallat la verificació. Comproveu la configuració del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr "Error del servidor SMTP!"
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr "Tipus de servidor"
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr "Remitent Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr "Informació de l'usuari"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr "Codi de registre per Email del servidor SMTP d'OpenERP!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr "Estadístiques del servidor"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr "Missatges"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr "Vendes"
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr "Permís d'accés"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
"Si us plau, configureu el servidor de missatges per Email [Verificació / "
"Prova]"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr "Ha fallat la verificació. Codi de verificació invàlid!"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr "Historial servidor"
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr "Missatge de prova"
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr "ID servidor"
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr "Núm. total"
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr "__user__ per a nom d'usuari"
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr "Data creació"
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr "Estat servidor"
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr "Envia codi"
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr "Error de lectura!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr "No és possible llegir la configuració del servidor"
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr "Estadístiques"
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr "Email de prova"
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr "Direcció d'Email"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr "No verificat"
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr "Email"
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr "Nom usuari"
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr "Tipus d'adreça"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr "Permís"
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr "Configuració"
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invàlid per a la definició de la vista!"
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr "Servidor"
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid ""
"The message text that will be send along with the email which is send "
"through this server"
msgstr ""
"El text del missatge que serà enviat junt amb l'Email que és enviat "
"mitjançant aquest servidor"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr "Envia Email de prova"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr "Informació del servidor"
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr "Historial del client d'Email"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr "Email de prova d'OpenERP!"
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr "Missatge"
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr "Verificat"
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid ""
"Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr "Port SMTP"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr "Nom usuari"
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr "Verifica missatge"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr "Client Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr "__code__ per a codi de verificació"
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr "Data"
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid ""
"Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr "Per defecte"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr "No teniu permís per accedir al servidor SMTP: %s "
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr "Actiu"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr "Error"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr "Error del servidor!"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
"Si us plau, verifiqueu el servidor de correu electrònic, sense verificar-lo "
"no podeu enviar Email(s)."
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr "Historial"
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr "__name__ per a nom de client"
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Verification Message. This is the code\n"
"\n"
"__code__\n"
"\n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"\n"
"Created by user __user__"
msgstr ""
"Missatge de verificació. Aquest és el codi\n"
"\n"
"__code__\n"
"\n"
"que haureu de copiar al servidor d'Email d'OpenERP (assistent Verifica "
"servidor).\n"
"\n"
"Creat per l'usuari __user__"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr "Factura"
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr "Verifica codi"
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr "Cancel·la"
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr "ID del registre"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
"especial!"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr "Comptabilitat"
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid ""
"Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr "Estoc"
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr "Descripció"
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr "Codi de verificació"
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr "Enviament"
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr "Esperant verificació"
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr "Contrasenya"
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr "Usuaris permesos"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr "Direcció de correu"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr "Missatge de verificació"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr "Envia codi de verificació"
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr "Model"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr "Servidor Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr "Error dels permisos!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr "res.company.address"
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""
#~ msgid "The Email is sent successfully to corresponding address"
#~ msgstr "El correu ha estat enviat correctament a la direcció corresponent"
#~ msgid "Servers"
#~ msgstr "Servidors"
#~ msgid "Verification Information"
#~ msgstr "Informació de verificació"
#~ msgid "Report name and Resources ids are required!"
#~ msgstr "Nom d'informe i ids de registres són necessaris!"

View File

@ -0,0 +1,505 @@
# Translation of OpenERP Server.
# This file containt the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2008-11-30 15:52:27+0000\n"
"PO-Revision-Date: 2008-11-30 17:41+0100\n"
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr "__number__ per a número de Factura / Comanda venda"
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr "Utilitza SSL"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr "Verifica servidor"
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr "Envia codi"
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr "Email de prova"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr "Missatge d'error!"
#. module: smtpclient
#: field:email.smtpclient,test_email:0
#: view:email.smtpclient:0
msgid "Test Message"
msgstr "Missatge de prova"
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr "Envia Email"
#. module: smtpclient
#: field:email.smtpclient,server:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
#: view:email.smtpclient:0
msgid "SMTP Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr "El servidor ja està verificat!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr "Ha fallat la verificació. Comproveu la configuració del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please verify Email Server, without verification you can not send Email(s)."
msgstr "Si us plau, verifiqueu el servidor de correu electrònic, sense verificar-lo no podeu enviar Email(s)."
#. module: smtpclient
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr "Tipus de servidor"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "The Email is sent successfully to corresponding address"
msgstr "El correu ha estat enviat correctament a la direcció corresponent"
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr "Comptabilitat"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr "Informació de l'usuari"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr "Codi de registre per Email del servidor SMTP d'OpenERP!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr "Estadístiques del servidor"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr "Missatge de verificació"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr "Vendes"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr "Permís d'accés"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr "Si us plau, configureu el servidor de missatges per Email [Verificació / Prova]"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr "Ha fallat la verificació. Codi de verificació invàlid!"
#. module: smtpclient
#: view:email.smtpclient:0
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr "Historial servidor"
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr "ID servidor"
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr "Núm. total"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr "__user__ per a nom d'usuari"
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr "Data creació"
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr "Actiu"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr "No és possible llegir la configuració del servidor"
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
#: view:email.smtpclient:0
msgid "Statistics"
msgstr "Estadístiques"
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr "Direcció d'Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr "No teniu permís per accedir al servidor SMTP: %s "
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr "No verificat"
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr "Email"
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr "Nom usuari"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr "Envia codi de verificació"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr "Permís"
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_cofiguration
#: view:email.smtpclient:0
msgid "Configuration"
msgstr "Configuració"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr "Error de lectura!"
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "XML invàlid per a la definició de la vista!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
msgid "Email Client"
msgstr "Client Email"
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid "The message text that will be send along with the email which is send through this server"
msgstr "El text del missatge que serà enviat junt amb l'Email que és enviat mitjançant aquest servidor"
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr "Servidor"
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr "Verifica codi"
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Servers"
msgstr "Servidors"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr "Historial del client d'Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr "Email de prova d'OpenERP!"
#. module: smtpclient
#: field:email.smtpclient,body:0
#: view:email.smtpclient:0
msgid "Message"
msgstr "Missatge"
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr "Companyia"
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr "Verificat"
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr "Nom servidor"
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr "Port SMTP"
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr "Estat servidor"
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr "Verifica missatge"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr "Envia Email de prova"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr "__code__ per a codi de verificació"
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr "Nom usuari"
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
msgid "Date"
msgstr "Data"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr "Per defecte"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr "Error dels permisos!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Error"
msgstr "Error"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr "Error del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr "Error del servidor SMTP!"
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
#: view:email.smtpclient:0
msgid "History"
msgstr "Historial"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
msgstr "Missatge de verificació. Aquest és el codi\n\n__code__\n\nque haureu de copiar al servidor d'Email d'OpenERP (assistent Verifica servidor).\n\nCreat per l'usuari __user__"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr "Factura"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr "Informació del servidor"
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr "Cancel·la"
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr "ID del registre"
#. module: smtpclient
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr "El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter especial!"
#. module: smtpclient
#: field:email.smtpclient,from:0
msgid "Email From"
msgstr "Remitent Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Information"
msgstr "Informació de verificació"
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr "Estoc"
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr "Descripció"
#. module: smtpclient
#: wizard_field:email.verifycode,init,code:0
#: field:email.smtpclient,code:0
msgid "Verification Code"
msgstr "Codi de verificació"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr "Enviament"
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr "Esperant verificació"
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr "Contrasenya"
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr "Usuaris permesos"
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: wizard_field:email.testemail,init,emailto:0
#: field:email.smtpclient,email:0
#: field:res.company.address,email:0
#: view:res.company:0
msgid "Email Address"
msgstr "Direcció de correu"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr "Missatges"
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr "Tipus d'adreça"
#. module: smtpclient
#: field:email.smtpclient.history,model:0
#: field:report.smtp.server,model:0
msgid "Model"
msgstr "Model"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
msgid "Email Server"
msgstr "Servidor Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Report name and Resources ids are required!"
msgstr "Nom d'informe i ids de registres són necessaris!"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr "__name__ per a nom de client"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr "res.company.address"

View File

@ -0,0 +1,870 @@
# Translation of OpenERP Server.
# This file containt the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
"PO-Revision-Date: 2010-01-19 05:21+0000\n"
"Last-Translator: Jordi Esteve - http://www.zikzakmedia.com "
"<jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-02-25 05:00+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr "__number__ para número de Factura / Pedido venta"
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr "Utilizar SSL"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr "Verificar servidor"
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr ""
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr ""
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr "¡Mensaje de error!"
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr "Nombre servidor"
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr ""
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr "Enviar Email"
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr "Compañía"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr "¡El servidor ya está verificado!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr ""
"Ha fallado la verificación. ¡Compruebe la configuración del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr "¡Error del servidor SMTP!"
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr "Tipo de servidor"
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr "Remitente Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr "Información del usuario"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr "¡Código de registro por Email del servidor SMTP de OpenERP!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr "Estadísticas del servidor"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr "Mensajes"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr "Ventas"
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr "Permiso de acceso"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
"Por favor, configure el servidor de mensajes por Email [Verificación / "
"Prueba]"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr "Ha fallado la verificación. ¡Código de verificación inválido!"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr "Historial servidor"
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr "Mensaje de prueba"
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr "ID servidor"
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr "Núm. total"
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr "__user__ para nombre de usuario"
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr "Fecha creación"
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr "Estado servidor"
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr "Enviar código"
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr "¡Error de lectura!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr "No es posible leer la configuración del servidor"
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr "Estadísticas"
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr "Email de prueba"
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr "Dirección de Email"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr "No verificado"
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr "Email"
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr "Nombre usuario"
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr "Tipo de dirección"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr "Permiso"
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr "Configuración"
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "¡XML inválido para la definición de la vista!"
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr "Servidor"
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid ""
"The message text that will be send along with the email which is send "
"through this server"
msgstr ""
"El texto del mensaje que será enviado junto con el Email que es enviado "
"mediante este servidor"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr "Enviar Email de prueba"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr "Información del servidor"
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr "Historial del cliente de Email"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr "¡Email de prueba de OpenERP!"
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr "Mensaje"
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr "Verificado"
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid ""
"Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr "Puerto SMTP"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr "Nombre usuario"
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr "Verificar mensaje"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr "Cliente Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr "__code__ para código de verificación"
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr "Fecha"
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid ""
"Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr "Por defecto"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr "No tiene permiso para acceder al servidor SMTP: %s "
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr "Activo"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr "Error"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr "¡Error del servidor!"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
"Por favor, verifique el servidor de correo electrónico, sin verificarlo no "
"puede enviar Email(s)."
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr "Historial"
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr "__name__ para nombre de cliente"
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Verification Message. This is the code\n"
"\n"
"__code__\n"
"\n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"\n"
"Created by user __user__"
msgstr ""
"Mensaje de verificación. Éste es el código\n"
"\n"
"__code__\n"
"\n"
"que deberá copiar en el servidor de Email de OpenERP (asistente Verificar "
"servidor).\n"
"\n"
"Creado por el usuario __user__"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr "Factura"
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr "Verificar código"
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr "Cancelar"
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr "ID del registro"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
"especial!"
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr "Contabilidad"
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid ""
"Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr "Stock"
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr "Descripción"
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr "Código de verificación"
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr "Envío"
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr "Esperando verificación"
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr "Contraseña"
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr "Usuarios permitidos"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr "Dirección de correo"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr "Mensaje de verificación"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr "Enviar código de verificación"
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr "Modelo"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr "Servidor Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr "¡Error de los permisos!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr "res.company.address"
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""
#~ msgid "The Email is sent successfully to corresponding address"
#~ msgstr ""
#~ "El correo ha sido enviado correctamente a la dirección correspondiente"
#~ msgid "Servers"
#~ msgstr "Servidores"
#~ msgid "Verification Information"
#~ msgstr "Información de verificación"
#~ msgid "Report name and Resources ids are required!"
#~ msgstr "¡Nombre de informe y ids de registros son necesarios!"

View File

@ -0,0 +1,505 @@
# Translation of OpenERP Server.
# This file containt the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0-rc1\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2008-11-30 15:52:27+0000\n"
"PO-Revision-Date: 2008-11-30 17:41+0100\n"
"Last-Translator: Jordi Esteve <jesteve@zikzakmedia.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: \n"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr "__number__ para número de Factura / Pedido venta"
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr "Utilizar SSL"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr "Verificar servidor"
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr "Enviar código"
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr "Email de prueba"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr "¡Mensaje de error!"
#. module: smtpclient
#: field:email.smtpclient,test_email:0
#: view:email.smtpclient:0
msgid "Test Message"
msgstr "Mensaje de prueba"
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr "Enviar Email"
#. module: smtpclient
#: field:email.smtpclient,server:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
#: view:email.smtpclient:0
msgid "SMTP Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr "¡El servidor ya está verificado!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr "Ha fallado la verificación. ¡Compruebe la configuración del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please verify Email Server, without verification you can not send Email(s)."
msgstr "Por favor, verifique el servidor de correo electrónico, sin verificarlo no puede enviar Email(s)."
#. module: smtpclient
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr "Tipo de servidor"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "The Email is sent successfully to corresponding address"
msgstr "El correo ha sido enviado correctamente a la dirección correspondiente"
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr "Contabilidad"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr "Información del usuario"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr "¡Código de registro por Email del servidor SMTP de OpenERP!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr "Estadísticas del servidor"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr "Mensaje de verificación"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr "Ventas"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr "Permiso de acceso"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr "Por favor, configure el servidor de mensajes por Email [Verificación / Prueba]"
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr "Ha fallado la verificación. ¡Código de verificación inválido!"
#. module: smtpclient
#: view:email.smtpclient:0
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr "Historial servidor"
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr "ID servidor"
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr "Núm. total"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr "__user__ para nombre de usuario"
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr "Fecha creación"
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr "Activo"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr "No es posible leer la configuración del servidor"
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
#: view:email.smtpclient:0
msgid "Statistics"
msgstr "Estadísticas"
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr "Servidor SMTP"
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr "Dirección de Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr "No tiene permiso para acceder al servidor SMTP: %s "
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr "No verificado"
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr "Email"
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr "Nombre usuario"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr "Enviar código de verificación"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr "Permiso"
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_cofiguration
#: view:email.smtpclient:0
msgid "Configuration"
msgstr "Configuración"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr "¡Error de lectura!"
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "¡XML inválido para la definición de la vista!"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
msgid "Email Client"
msgstr "Cliente Email"
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid "The message text that will be send along with the email which is send through this server"
msgstr "El texto del mensaje que será enviado junto con el Email que es enviado mediante este servidor"
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr "Servidor"
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr "Verificar código"
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Servers"
msgstr "Servidores"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr "Historial del cliente de Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr "¡Email de prueba de OpenERP!"
#. module: smtpclient
#: field:email.smtpclient,body:0
#: view:email.smtpclient:0
msgid "Message"
msgstr "Mensaje"
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr "Compañía"
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr "Verificado"
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr "Nombre servidor"
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr "Puerto SMTP"
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr "Estado servidor"
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr "Verificar mensaje"
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr "Enviar Email de prueba"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr "__code__ para código de verificación"
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr "Nombre usuario"
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
msgid "Date"
msgstr "Fecha"
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr "Por defecto"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr "¡Error de los permisos!"
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Error"
msgstr "Error"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr "¡Error del servidor!"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr "¡Error del servidor SMTP!"
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
#: view:email.smtpclient:0
msgid "History"
msgstr "Historial"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
msgstr "Mensaje de verificación. Éste es el código\n\n__code__\n\nque deberá copiar en el servidor de Email de OpenERP (asistente Verificar servidor).\n\nCreado por el usuario __user__"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr "Factura"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr "Información del servidor"
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr "Cancelar"
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr "ID del registro"
#. module: smtpclient
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr "¡El nombre del objeto debe empezar con x_ y no contener ningún carácter especial!"
#. module: smtpclient
#: field:email.smtpclient,from:0
msgid "Email From"
msgstr "Remitente Email"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Information"
msgstr "Información de verificación"
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr "Stock"
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr "Descripción"
#. module: smtpclient
#: wizard_field:email.verifycode,init,code:0
#: field:email.smtpclient,code:0
msgid "Verification Code"
msgstr "Código de verificación"
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr "Envío"
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr "Esperando verificación"
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr "Contraseña"
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr "Usuarios permitidos"
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: wizard_field:email.testemail,init,emailto:0
#: field:email.smtpclient,email:0
#: field:res.company.address,email:0
#: view:res.company:0
msgid "Email Address"
msgstr "Dirección de correo"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr "Mensajes"
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr "Tipo de dirección"
#. module: smtpclient
#: field:email.smtpclient.history,model:0
#: field:report.smtp.server,model:0
msgid "Model"
msgstr "Modelo"
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
msgid "Email Server"
msgstr "Servidor Email"
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Report name and Resources ids are required!"
msgstr "¡Nombre de informe y ids de registros son necesarios!"
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr "__name__ para nombre de cliente"
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr "res.company.address"

View File

@ -0,0 +1,840 @@
# French translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-11-26 06:00+0000\n"
"PO-Revision-Date: 2010-04-07 13:57+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: French <fr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-13 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr ""
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr ""
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr ""
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr ""
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr ""
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr ""
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr ""
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr ""
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr ""
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr ""
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid ""
"The message text that will be send along with the email which is send "
"through this server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr ""
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid ""
"Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid ""
"Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid ""
"Verification Message. This is the code\n"
"\n"
"__code__\n"
"\n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr ""
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr ""
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr ""
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid ""
"Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""

View File

@ -0,0 +1,825 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:00:34+0000\n"
"PO-Revision-Date: 2009-11-26 06:00:34+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr ""
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr ""
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr ""
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr ""
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr ""
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr ""
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr ""
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr ""
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr ""
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr ""
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid "The message text that will be send along with the email which is send through this server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr ""
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid "Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid "Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr ""
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr ""
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr ""
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid "Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""

View File

@ -0,0 +1,825 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * smtpclient
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-11-26 06:00:34+0000\n"
"PO-Revision-Date: 2009-11-26 06:00:34+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: smtpclient
#: field:email.smtpclient.queue,bcc:0
msgid "BCC to"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__number__ for Invoice / Sales Number"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,ssl:0
msgid "Use SSL?"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Start Server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_verifycode
msgid "Verify Server"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,priority:0
msgid "Server Priority"
msgstr ""
#. module: smtpclient
#: help:email.sendcode,init,emailto:0
msgid "Enter the address Email where you want to get the Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Other Mail Servers"
msgstr ""
#. module: smtpclient
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,to:0
msgid "Mail to"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Message Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,name:0
msgid "Server Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,header_ids:0
msgid "Default Headers"
msgstr ""
#. module: smtpclient
#: wizard_button:email.testemail,init,send:0
msgid "Send Email"
msgstr ""
#. module: smtpclient
#: field:res.company.address,company_id:0
msgid "Company"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Set to Draft"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Server already verified!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#, python-format
msgid "Verification Failed. Please check the Server Configuration!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error!"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth_type:0
#: field:email.smtpclient,type:0
msgid "Server Type"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,from_email:0
msgid "Email From"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "User Information"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP SMTP server Email Registration Code!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_report_smtp_server
#: view:report.smtp.server:0
msgid "Server Statistics"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Messages"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Sale"
msgstr ""
#. module: smtpclient
#: field:email.headers,value:0
msgid "Value"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Access Permission"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_headers
msgid "Email Headers"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue:0
msgid "Queue Option"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please configure Email Server Messages [Verification / Test]"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/verifycode.py:0
#, python-format
msgid "Verification failed. Invalid Verification Code!"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_history
msgid "Email History"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.history:0
msgid "Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Yahoo!!! Server"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,test_email:0
msgid "Test Message"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,server_id:0
msgid "Server ID"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,delete_queue_period:0
msgid "delete emails/contents from email queue after specified no of days"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,no:0
msgid "Total No."
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,process_id:0
msgid "Mail Transport Agent Process"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__user__ for User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,date_create:0
msgid "Date Create"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,state:0
msgid "Server Status"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,error:0
msgid "Last Error"
msgstr ""
#. module: smtpclient
#: wizard_view:email.sendcode,init:0
#: wizard_button:email.sendcode,init,send:0
msgid "Send Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,name:0
msgid "Subject"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Read Error!"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Unable to read Server Settings"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,server_statistics:0
msgid "Statistics"
msgstr ""
#. module: smtpclient
#: wizard_view:email.testemail,init:0
msgid "Test Email"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,server_id:0
msgid "Smtp Server"
msgstr ""
#. module: smtpclient
#: field:res.company,addresses:0
msgid "Email Addresses"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_history_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server_history
msgid "Email Server History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Waiting"
msgstr ""
#. module: smtpclient
#: help:email.testemail,init,emailto:0
msgid "Enter the address Email where you want to get the Test Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Not Verified"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,email:0
msgid "Email"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Sent"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,user_id:0
msgid "Username"
msgstr ""
#. module: smtpclient
#: field:res.company.address,name:0
msgid "Address Type"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Permission"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Message with All Headers"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Message Headers"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,report_id:0
msgid "Report"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Other Information"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Configuration"
msgstr ""
#. module: smtpclient
#: constraint:ir.cron:0
msgid "Invalid arguments"
msgstr ""
#. module: smtpclient
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,disclaimers:0
msgid "Disclaimers"
msgstr ""
#. module: smtpclient
#: field:report.smtp.server,name:0
msgid "Server"
msgstr ""
#. module: smtpclient
#: view:res.company:0
msgid "SMTP Settings"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,body:0
msgid "The message text that will be send along with the email which is send through this server"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_testemail
msgid "Send Test Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_queue
msgid "Email Queue"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Server Information"
msgstr ""
#. module: smtpclient
#: help:email.verifycode,init,code:0
msgid "Enter the verification code thay you get in your verification Email"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient_history
msgid "Email Client History"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Never Delete Message"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "OpenERP Test Email!"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
#: field:email.smtpclient,body:0
#: view:email.smtpclient.queue:0
#: field:email.smtpclient.queue,serialized_message:0
msgid "Message"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,process_id:0
msgid "MTA Process"
msgstr ""
#. module: smtpclient
#: field:email.headers,server_id:0
#: view:email.smtpclient:0
#: field:email.smtpclient,server:0
#: field:email.smtpclient.queue,server_id:0
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server
msgid "SMTP Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,auth_type:0
msgid "Google Server"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Verified"
msgstr ""
#. module: smtpclient
#: help:email.smtpclient,priority:0
msgid "Priority between 0 to 10, will be used to define the MTA process priotiry"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,port:0
msgid "SMTP Port"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Email TO Address not Defined !"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Server Error !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,auth:0
msgid "Use Auth"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,pstate:0
msgid "Server Statue"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,user:0
msgid "User Name"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,verify_email:0
msgid "Verify Message"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_email_smtpclient
#: model:ir.module.module,shortdesc:smtpclient.module_meta_information
msgid "Email Client"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Disclaimers Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__code__ for Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient.queue,state:0
msgid "Queued"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,date_create:0
#: field:email.smtpclient.queue,date_create:0
msgid "Date"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,cc:0
msgid "CC to"
msgstr ""
#. module: smtpclient
#: model:email.smtpclient,verify_email:smtpclient.email_smtpclient_sendmailserver0
msgid "Verification Message. This is the code\n"
"__code__ \n"
"you must copy in the OpenERP Email Server (Verify Server wizard).\n"
"Created by user __user__"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_queue_tree
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_smtp_server_queue
msgid "Message Queue"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
#: selection:res.company.address,name:0
msgid "Default"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete Content After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "You have no permission to access SMTP Server : %s "
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,active:0
msgid "Active"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.act_mail_server_2_mail_queue
msgid "Message Queus"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#: code:addons/smtpclient/wizard/testemail.py:0
#: code:addons/smtpclient/wizard/verifycode.py:0
#: view:email.smtpclient.queue:0
#: selection:email.smtpclient.queue,state:0
#, python-format
msgid "Error"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server Error!"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Clear All After"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Please verify Email Server, without verification you can not send Email(s)."
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,history_line:0
#: field:report.smtp.server,history:0
msgid "History"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,priority:0
msgid "Message Priority"
msgstr ""
#. module: smtpclient
#: field:ir.actions.server,file_ids:0
msgid "Attachments"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "__name__ for Customer Name"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "General"
msgstr ""
#. module: smtpclient
#: field:email.headers,key:0
msgid "Header"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Invoice"
msgstr ""
#. module: smtpclient
#: wizard_view:email.verifycode,init:0
#: wizard_button:email.verifycode,init,check:0
msgid "Verify Code"
msgstr ""
#. module: smtpclient
#: wizard_button:email.sendcode,init,end:0
#: wizard_button:email.testemail,init,end:0
#: wizard_button:email.verifycode,init,end:0
msgid "Cancel"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,delete_queue_period:0
msgid "Delete after"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Server is not Verified, Please Verify the Server !"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,resource_id:0
msgid "Resource ID"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "SMTP Data Error !"
msgstr ""
#. module: smtpclient
#: constraint:ir.model:0
msgid "The Object name must start with x_ and not contain any special character !"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,delete_queue:0
msgid "Delete when Email Sent"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Account"
msgstr ""
#. module: smtpclient
#: model:ir.module.module,description:smtpclient.module_meta_information
msgid "Email Client module that provides:\n"
" Sending Email\n"
" Use Multiple Server\n"
" Multi Threading\n"
" Multi Attachment\n"
" "
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,type:0
msgid "Stock"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,name:0
msgid "Description"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,code:0
#: wizard_field:email.verifycode,init,code:0
msgid "Verification Code"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Stop"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,body:0
msgid "Email Text"
msgstr ""
#. module: smtpclient
#: selection:res.company.address,name:0
msgid "Delivery"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,pstate:0
msgid "Running"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient.queue:0
msgid "Last Error occured"
msgstr ""
#. module: smtpclient
#: selection:email.smtpclient,state:0
msgid "Waiting for Verification"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,password:0
msgid "Password"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient,users_id:0
msgid "Users Allowed"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/wizard/sendcode.py:0
#, python-format
msgid "Verification Code Already Generated !"
msgstr ""
#. module: smtpclient
#: wizard_field:email.sendcode,init,emailto:0
#: field:email.smtpclient,email:0
#: wizard_field:email.testemail,init,emailto:0
#: view:res.company:0
#: field:res.company.address,email:0
msgid "Email Address"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Verification Message"
msgstr ""
#. module: smtpclient
#: view:email.smtpclient:0
msgid "Stop Server"
msgstr ""
#. module: smtpclient
#: model:ir.ui.menu,name:smtpclient.menu_smtpclient_administration_server
msgid "Email Servers"
msgstr ""
#. module: smtpclient
#: model:ir.actions.wizard,name:smtpclient.wizard_email_sendcode
msgid "Send Verification Code"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.history,model:0
msgid "Model"
msgstr ""
#. module: smtpclient
#: model:ir.actions.act_window,name:smtpclient.action_email_smtpclient_tree
#: field:ir.actions.server,email_server:0
msgid "Email Server"
msgstr ""
#. module: smtpclient
#: code:addons/smtpclient/smtpclient.py:0
#, python-format
msgid "Permission Error!"
msgstr ""
#. module: smtpclient
#: model:ir.model,name:smtpclient.model_res_company_address
msgid "res.company.address"
msgstr ""
#. module: smtpclient
#: field:email.smtpclient.queue,state:0
msgid "Message Status"
msgstr ""

View File

@ -0,0 +1,39 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import fields,osv
class EmailAddress(osv.osv):
_name = "res.company.address"
_columns = {
'company_id' : fields.many2one('res.company', 'Company' , required=True),
'email': fields.many2one('email.smtpclient', 'Email Address', required=True),
'name' : fields.selection([("default", "Default"),("invoice", "Invoice"),("sale","Sale"),("delivery","Delivery")], "Address Type",required=True)
}
EmailAddress()
class Company(osv.osv):
_inherit = "res.company"
_columns = {
'addresses': fields.one2many('res.company.address', 'company_id', 'Email Addresses'),
}
Company()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,11 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_smtpclient_all","smtpclient all","model_email_smtpclient",,1,0,0,0
"access_smtpclient_group_erpmanager","smtpclient erp_manager","model_email_smtpclient","base.group_erp_manager",1,1,1,1
"access_smtpclient_history_all","smtpclient_history all","model_email_smtpclient_history",,1,0,0,0
"access_smtpclient_history_group_erpmanager","smtpclient_history erp_manager","model_email_smtpclient_history","base.group_erp_manager",1,1,1,1
"access_smtpclient_report_all","smtpclient_report all","model_report_smtp_server",,1,0,0,0
"access_smtpclient_report_group_erpmanager","smtpclient_report erp_manager","model_report_smtp_server","base.group_erp_manager",1,1,1,1
"access_res_company_address","res.company.address","model_res_company_address",,1,0,0,0
"access_res_company_address_erpmanager","res.company.address","model_res_company_address","base.group_erp_manager",1,1,1,1
"access_email_smtpclient_queue","Smtpclient_queue all","model_email_smtpclient_queue",,1,1,1,0
"access_email_smtpclient_queue_erpmanager","Smtpclient_queue erp_manager","model_email_smtpclient_queue","base.group_erp_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_smtpclient_all smtpclient all model_email_smtpclient 1 0 0 0
3 access_smtpclient_group_erpmanager smtpclient erp_manager model_email_smtpclient base.group_erp_manager 1 1 1 1
4 access_smtpclient_history_all smtpclient_history all model_email_smtpclient_history 1 0 0 0
5 access_smtpclient_history_group_erpmanager smtpclient_history erp_manager model_email_smtpclient_history base.group_erp_manager 1 1 1 1
6 access_smtpclient_report_all smtpclient_report all model_report_smtp_server 1 0 0 0
7 access_smtpclient_report_group_erpmanager smtpclient_report erp_manager model_report_smtp_server base.group_erp_manager 1 1 1 1
8 access_res_company_address res.company.address model_res_company_address 1 0 0 0
9 access_res_company_address_erpmanager res.company.address model_res_company_address base.group_erp_manager 1 1 1 1
10 access_email_smtpclient_queue Smtpclient_queue all model_email_smtpclient_queue 1 1 1 0
11 access_email_smtpclient_queue_erpmanager Smtpclient_queue erp_manager model_email_smtpclient_queue base.group_erp_manager 1 1 1 1

View File

@ -0,0 +1,107 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from osv import osv
from osv import fields
import netsvc
import time
class email_headers(osv.osv):
_inherit = 'email.headers'
_columns = {
'action_id':fields.many2one('ir.actions.server', 'Server Action'),
}
email_headers()
class server_action(osv.osv):
_inherit = 'ir.actions.server'
_description = 'Email Client'
_columns = {
'email_server':fields.many2one('email.smtpclient', 'Email Server'),
'report_id':fields.many2one('ir.actions.report.xml', 'Report', required=False),
'file_ids':fields.many2many('ir.attachment', 'serveraction_attachment_rel', 'action_id', 'file_id', 'Attachments'),
'header_ids':fields.one2many('email.headers', 'action_id', 'Default Headers'),
}
def run(self, cr, uid, ids, context={}):
logger = netsvc.Logger()
act_ids = []
for action in self.browse(cr, uid, ids, context):
obj_pool = self.pool.get(action.model_id.model)
obj = obj_pool.browse(cr, uid, context['active_id'], context=context)
cxt = {
'context':context,
'object': obj,
'time':time,
'cr': cr,
'pool' : self.pool,
'uid' : uid
}
expr = eval(str(action.condition), cxt)
if not expr:
continue
if action.state == 'email':
address = str(action.email)
try:
address = eval(str(action.email), cxt)
except:
pass
if not address:
logger.notifyChannel('email', netsvc.LOG_INFO, 'Partner Email address not Specified!')
continue
subject = self.merge_message(cr, uid, action.subject, action, context)
body = self.merge_message(cr, uid, action.message, action, context)
smtp_pool = self.pool.get('email.smtpclient')
reports = []
if action.report_id:
reports.append(('report.'+action.report_id.report_name, [context['active_id']]))
ir_attach_ids = []
if action.file_ids:
for ir_file in action.file_ids:
ir_attach_ids.append(ir_file.id)
headers = { }
for key in action.header_ids:
val = eval(key.value, cxt)
headers[key.key] = val
context['headers'] = headers
if smtp_pool.send_email(cr, uid, action.email_server.id, address, subject, body, [], reports=reports, ir_attach=ir_attach_ids, context=context) == True:
logger.notifyChannel('smtp', netsvc.LOG_INFO, 'Email successfully send to : %s' % (address))
else:
logger.notifyChannel('smtp', netsvc.LOG_ERROR, 'Failed to send email to : %s' % (address))
else:
act_ids.append(action.id)
if act_ids:
return super(server_action,self).run(cr, uid, act_ids, context)
else:
return False
server_action()

View File

@ -0,0 +1,42 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_server_report_inherit">
<field name="name">ir.actions.server.form.inherit</field>
<field name="model">ir.actions.server</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_server_action_form"/>
<field name="arch" type="xml">
<field name="email" position="after">
<field name="email_server" select="1" attrs="{'required':[('state','=','email')]}"/>
<field name="report_id"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="view_server_attachment_inherit">
<field name="name">ir.actions.server.form.inherit</field>
<field name="model">ir.actions.server</field>
<field name="type">form</field>
<field name="inherit_id" ref="view_server_report_inherit"/>
<field name="arch" type="xml">
<field name="message" position="after">
<group colspan="2" col="2">
<separator string="Attachments" colspan="2"/>
<field name="file_ids" colspan="2" nolabel="1"/>
</group>
<group colspan="2" col="2">
<separator string="Headers" colspan="2"/>
<field name="header_ids" colspan="2" nolabel="1">
<tree string="Custom Headers" editable="top">
<field name="key"/>
<field name="value"/>
</tree>
</field>
</group>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,671 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import os
import sys
import bz2
import time
from datetime import datetime
from datetime import timedelta
import release
import socket
import base64
import binascii
import random
import smtplib
import mimetypes
from email import Encoders
from optparse import OptionParser
from email.Message import Message
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.Utils import COMMASPACE, formatdate
import netsvc
import pooler
import tools
from osv import fields
from osv import osv
from tools.translate import _
error_msg = {'not_active' : "Please activate Email Server, without activating you can not send Email(s).",
'server_stop' : 'Please start Email Server, without starting you can not send Email(s).',
'server_not_confirm' : 'Please Verify Email Server, without verifying you can not send Email(s).'}
logger = netsvc.Logger()
class smtpclient(osv.osv):
_name = 'email.smtpclient'
_description = 'Email Client'
_columns = {
'name' : fields.char('Server Name', size=256, required=True),
'from_email' : fields.char('Email From', size=256),
'email' : fields.char('Email Address', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
'user' : fields.char('User Name', size=256, readonly=True, states={'new':[('readonly',False)]}),
'password' : fields.char('Password', size=1024, invisible=True, readonly=True, states={'new':[('readonly',False)]}),
'server' : fields.char('SMTP Server', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
'auth' : fields.boolean("Use Auth", readonly=True, states={'new':[('readonly',False)]}),
'port' : fields.char('SMTP Port', size=256, required=True, readonly=True, states={'new':[('readonly',False)]}),
'ssl' : fields.boolean("Use SSL?", readonly=True, states={'new':[('readonly',False)]}),
'users_id': fields.many2many('res.users', 'res_smtpserver_group_rel', 'sid', 'uid', 'Users Allowed'),
'state': fields.selection([
('new','Not Verified'),
('waiting','Waiting for Verification'),
('confirm','Verified'),
],'Server Status', select=True, readonly=True),
'auth_type':fields.selection([('gmail','Google Server'), ('yahoo','Yahoo!!! Server'), ('unknown','Other Mail Servers')], string="Server Type", readonly=True, states={'new':[('readonly',False)]}),
'active' : fields.boolean("Active"),
'date_create': fields.date('Date Create', required=True, readonly=True),
'test_email' : fields.text('Test Message', translate=True),
'body' : fields.text('Message', translate=True, help="The message text that will be send along with the email which is send through this server"),
'verify_email' : fields.text('Verify Message', translate=True, readonly=True, states={'new':[('readonly',False)]}),
'code' : fields.char('Verification Code', size=1024),
'type' : fields.selection([("default", "Default"),("account", "Account"),("sale","Sale"),("stock","Stock")], "Server Type",required=True),
'history_line': fields.one2many('email.smtpclient.history', 'server_id', 'History'),
'server_statistics': fields.one2many('report.smtp.server', 'server_id', 'Statistics'),
'delete_queue': fields.selection([
('never','Never Delete Message'),
('content','Delete Content After'),
('all','Clear All After'),
('after_send','Delete when Email Sent'),
],'Queue Option', select=True),
'priority': fields.integer('Server Priority', readonly=True, states={'new':[('readonly',False)]}, help="Priority between 0 to 10, will be used to define the MTA process priotiry"),
'header_ids':fields.one2many('email.headers', 'server_id', 'Default Headers'),
'disclaimers': fields.text('Disclaimers'),
'process_id': fields.many2one('ir.cron', 'MTA Process', readonly=True, help="Mail Transport Agent Process"),
'pstate': fields.selection([
('running','Running'),
('stop','Stop'),
],'Server Statue', select=True, readonly=True),
'delete_queue_period': fields.integer('Delete after', help="delete emails/contents from email queue after specified no of days"),
}
def _get_users(self, cr, uid, context={}):
return self.pool.get('res.users').search(cr, uid, [])
_defaults = {
'date_create': lambda *a: time.strftime('%Y-%m-%d'),
'state': lambda *a: 'new',
'type': lambda *a: 'default',
'port': lambda *a: '25',
'pstate':lambda *a: 'stop',
'priority': lambda *a: 5,
'delete_queue_period': lambda *a: 30,
'auth': lambda *a: True,
'active': lambda *a: True,
'delete_queue': lambda *a: 'never',
'users_id': _get_users,
'verify_email': lambda *a: _("Verification Message. This is the code\n\n__code__\n\nyou must copy in the OpenERP Email Server (Verify Server wizard).\n\nCreated by user __user__"),
}
server = {}
smtpServer = {}
def create(self, cr, user, vals, context={}):
if vals.get('password', False) != False:
vals['password'] = base64.b64encode(vals.get('password'))
res_id = super(smtpclient, self).create(cr, user, vals, context)
return res_id
def write(self, cr, user, ids, vals, context=None):
flag = False
if vals.get('password', False) != False:
for pass_char in vals.get('password'):
if pass_char != '*':
flag= True
break
if flag:
vals['password'] = base64.b64encode(vals.get('password'))
else:
del vals['password']
res = super(smtpclient, self).write(cr, user, ids, vals, context)
return res
def read(self,cr, uid, ids, fields=None, context=None, load='_classic_read'):
def override_password(o):
if len(o) > 0:
for field in o[0]:
if field == 'password':
o[0][field] = '********'
return o
result = super(smtpclient, self).read(cr, uid, ids, fields, context, load)
result = override_password(result)
return result
def change_servertype(self, cr, uid, ids, server):
if server == 'gmail':
return {'value':{'server':'smtp.gmail.com', 'port':'25', 'ssl':True, 'auth':True}}
elif server== 'yahoo':
return {'value':{'server':'smtp.mail.yahoo.co.in', 'ssl':False, 'port':'587', 'auth':True}}
else:
return {'value':{'server':'localhost', 'port':'25', 'ssl':False, 'auth':False}}
def change_email(self, cr, uid, ids, email):
email_from = self.pool.get('res.users').browse(cr, uid, uid).name
if len(email) > 0 and email.find('@') > -1 and email.index('@') > 0:
user = email[0:email.index('@')]
return {'value':{'user':user, 'from_email':email_from+' <'+email+'>'}}
else:
return {'value':{'user':email, 'from_email':email_from+' <'+email+'>'}}
def check_permissions(self, cr, uid, ids):
if uid == 1:
return True
cr.execute('select * from res_smtpserver_group_rel where sid=%s and uid=%s' % (ids[0], uid))
data = cr.fetchall()
if len(data) <= 0:
return False
return True
def gen_private_key(self, cr, uid, ids):
new_key = []
for i in time.strftime('%Y-%m-%d %H:%M:%S'):
ky = i
if ky in (' ', '-', ':'):
keys = random.random()
key = str(keys).split('.')[1]
ky = key
new_key.append(ky)
new_key.sort()
key = ''.join(new_key)
return key
def _set_error(self, cr, uid, server_id, context={}):
server_obj = self.browse(cr, uid, server_id)
if not server_obj.active:
return 'not_active'
if server_obj.pstate == 'stop' :
return 'server_stop'
if server_obj.state != 'confirm':
return 'server_not_confirm'
return True
def test_verify_email(self, cr, uid, ids, toemail, test=False, code=False):
serverid = ids[0]
self.open_connection(cr, uid, ids, serverid)
key = False
if test and self.server[serverid]['state'] == 'confirm':
body = self.server[serverid]['test_email'] or ''
else:
body = self.server[serverid]['verify_email'] or ''
#ignore the code
key = self.gen_private_key(cr, uid, ids)
#md5(time.strftime('%Y-%m-%d %H:%M:%S') + toemail).hexdigest();
body = body.replace("__code__", key)
user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, [uid])[0]
body = body.replace("__user__", user.name)
if len(body.strip()) <= 0:
raise osv.except_osv(_('Message Error!'), _('Please configure Email Server Messages [Verification / Test]'))
try:
msg = MIMEText(body.encode('utf8') or '',_subtype='plain',_charset='utf-8')
except:
msg = MIMEText(body or '',_subtype='plain',_charset='utf-8')
if not test and not self.server[serverid]['state'] == 'confirm':
msg['Subject'] = _('OpenERP SMTP server Email Registration Code!')
else:
msg['Subject'] = _('OpenERP Test Email!')
msg['To'] = toemail
msg['From'] = tools.ustr(self.server[serverid]['from_email'])
message = msg.as_string()
if self.server[serverid]['disclaimers']:
body = body + "\n" + self.server[serverid]['disclaimers']
queue = pooler.get_pool(cr.dbname).get('email.smtpclient.queue')
queue.create(cr, uid, {
'to':toemail,
'server_id':serverid,
'name':msg['Subject'],
'body':body,
'serialized_message':message,
'priority':1,
'type':'system'
})
if self.server[serverid]['state'] != 'confirm':
self.write(cr, uid, ids, {'state':'waiting', 'code':key})
return True
def getpassword(self, cr, uid, ids):
data = {}
cr.execute("select * from email_smtpclient where id = %s" , (str(ids[0]),))
data = cr.dictfetchall()
return data
def open_connection(self, cr, uid, ids, serverid=False, permission=True):
if serverid:
self.server[serverid] = self.getpassword(cr, uid, [serverid])[0]
else:
raise osv.except_osv(_('Read Error!'), _('Unable to read Server Settings'))
if permission:
if not self.check_permissions(cr, uid, [serverid]):
raise osv.except_osv(_('Permission Error!'), _('You have no permission to access SMTP Server : %s ') % (self.server[serverid]['name'],) )
if self.server[serverid]:
try:
self.smtpServer[serverid] = smtplib.SMTP()
self.smtpServer[serverid].debuglevel = 0
self.smtpServer[serverid].connect(str(self.server[serverid]['server']),str(self.server[serverid]['port']))
if self.server[serverid]['ssl']:
self.smtpServer[serverid].ehlo()
self.smtpServer[serverid].starttls()
self.smtpServer[serverid].ehlo()
if self.server[serverid]['auth']:
password = self.server[serverid]['password']
password = base64.b64decode(password)
self.smtpServer[serverid].login(str(self.server[serverid]['user']), password)
except Exception, e:
logger.notifyChannel('imap', netsvc.LOG_WARNING, e)
return True
def selectAddress(self, cr, uid, partner=None, contact=None, ):
email = 'none@none.com'
if partner is None and contact is None:
return 'none@none.com'
if partner is not None and contact is None:
pool = self.pool.get('res.partner')
data = pool.read(cr, uid, [partner])[0]
if data:
contact = data['address']
if contact is not None:
pool = self.pool.get('res.partner.address')
data = pool.read(cr, uid, contact)[0]
email = data['email']
return email
def select(self, cr, uid, type):
pool = self.pool.get('email.smtpclient')
ids = pool.search(cr, uid, [('type','=',type)], context=False)
if not ids:
ids = pool.search(cr, uid, [('type','=','default')], context=False)
if not ids:
return False
return ids[0]
# Reports is a list of tuples,where first arguement of tuple is the name of the report,second is the list of ids of the object
def send_email(self, cr, uid, server_id, emailto, subject, body='', attachments=[], reports=[], ir_attach=[], charset='utf-8', headers={}, context={}):
if not emailto:
raise osv.except_osv(_('SMTP Data Error !'), _('Email TO Address not Defined !'))
def createReport(cr, uid, report, ids, name=False):
files = []
for id in ids:
try:
service = netsvc.LocalService(report)
(result, format) = service.create(cr, uid, [id], {}, {})
if not name:
report_file = '/tmp/reports'+ str(id) + '.pdf'
else:
report_file = name
fp = open(report_file,'wb+')
fp.write(result);
fp.close();
files += [report_file]
except Exception,e:
continue
return files
smtp_server = self.browse(cr, uid, server_id)
if smtp_server.state != 'confirm':
raise osv.except_osv(_('SMTP Server Error !'), _('Server is not Verified, Please Verify the Server !'))
if not subject:
subject = "OpenERP Email: [Unknown Subject]"
try:
subject = subject.encode(charset)
except:
subject = subject.decode()
#attachment from Reports
for rpt in reports:
if len(rpt) == 3:
rpt_file = createReport(cr, uid, rpt[0], rpt[1], rpt[2])
elif len(rpt) == 2:
rpt_file = createReport(cr, uid, rpt[0], rpt[1])
attachments += rpt_file
if isinstance(emailto, str) or isinstance(emailto, unicode):
emailto = [emailto]
ir_pool = self.pool.get('ir.attachment')
for to in emailto:
msg = MIMEMultipart()
msg['Subject'] = tools.ustr(subject)
msg['To'] = to
msg['From'] = context.get('email_from', smtp_server.from_email)
if body == False:
body = ''
if smtp_server.disclaimers != False:
body = body + "\n" + smtp_server.disclaimers
try:
msg.attach(MIMEText(body.encode(charset) or '', _charset=charset, _subtype="html"))
except:
msg.attach(MIMEText(body or '', _charset=charset, _subtype="html"))
#add custom headers to email
for hk in headers.keys():
msg[hk] = headers[hk]
for hk in smtp_server.header_ids:
msg[hk.key] = hk.value
context_headers = context.get('headers', [])
for hk in context_headers:
msg[hk] = context_headers[hk]
# 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
msg['Message-Id'] = "<%s-openerp-@%s>" % (time.time(), socket.gethostname())
#attach files from disc
for file in attachments:
part = MIMEBase('application', "octet-stream")
part.set_payload(open(file,"rb").read())
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
msg.attach(part)
#attach files from ir_attachments
for ath in ir_pool.browse(cr, uid, ir_attach):
part = MIMEBase('application', "octet-stream")
datas = base64.decodestring(ath.datas)
part.set_payload(datas)
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' %(ath.name))
msg.attach(part)
message = msg.as_string()
data = {
'to':to,
'server_id':server_id,
'cc':False,
'bcc':False,
'name':subject,
'body':body,
'serialized_message':message,
'priority':smtp_server.priority,
}
self.create_queue_enrty(cr, uid, data, context)
return True
def create_queue_enrty(self, cr, uid, data, context={}):
queue = pooler.get_pool(cr.dbname).get('email.smtpclient.queue')
return queue.create(cr, uid, data, context)
def _check_history(self, cr, uid, ids=False, context={}):
result = True
server = self.pool.get('email.smtpclient')
queue = self.pool.get('email.smtpclient.queue')
sids = self.search(cr, uid, [])
for server in self.browse(cr, uid, sids):
if server.delete_queue == 'never':
continue
now = datetime.today()
days = timedelta(days=server.delete_queue_period)
day = now - days
kday = day.__str__().split(' ')[0]
if server.delete_queue == 'content':
qids = queue.search(cr, uid, [('server_id','=',server.id), ('date_create','<=',kday)])
queue.write(cr, uid, qids, {'serialized_message':False})
continue
if server.delete_queue == 'all':
qids = queue.search(cr, uid, [('server_id','=',server.id), ('date_create','<=',kday)])
queue.unlink(cr, uid, qids)
return result
def _send_emails(self, cr, uid, ids, context={}):
fp = os.popen('ping www.google.com -c 1 -w 5',"r")
if not fp.read():
return False
queue = self.pool.get('email.smtpclient.queue')
history = self.pool.get('email.smtpclient.history')
queue.write(cr, uid, ids, {'state':'sending'})
error = []
sent = []
remove = []
open_server = []
for email in queue.browse(cr, uid, ids):
if not email.server_id.id in open_server:
open_server.append(email.server_id.id)
self.open_connection(cr, uid, ids, email.server_id.id)
try:
self.smtpServer[email.server_id.id].sendmail(email.server_id.email, email.to, tools.ustr(email.serialized_message))
message = "message sent successfully to %s from %s server" % (email.to, email.server_id.name)
logger.notifyChannel('smtp', netsvc.LOG_INFO, message)
except Exception, e:
queue.write(cr, uid, [email.id], {'error':e, 'state':'error'})
continue
history.create(cr, uid, {
'name':email.body,
'user_id':uid,
'server_id': email.server_id.id,
'email':email.to
})
if email.server_id.delete_queue == 'after_send':
remove.append(email.id)
else:
sent.append(email.id)
queue.unlink(cr, uid, remove)
queue.write(cr, uid, sent, {'state':'send'})
return True
def _check_queue(self, cr, uid, ids=False):
queue = self.pool.get('email.smtpclient.queue')
sids = []
if not ids:
sids = queue.search(cr, uid, [('state','not in',['send','sending']), ('type','=','system')], order="priority", limit=30)
ids =[]
else:
sids = queue.search(cr, uid, [('state','not in',['send','sending']), ('server_id','in',ids)], order="priority", limit=30)
message = ""
if len(ids) > 0:
message = "sending %s emails from message queuq !" % (len(ids))
logger.notifyChannel('smtp', netsvc.LOG_INFO, message)
result = self. _send_emails(cr, uid, sids, {})
return result
def set_to_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'new', 'code':False})
return True
def create_process(self, cr, uid, ids, context={}):
svr = self.browse(cr, uid, ids[0])
if not svr.process_id:
res = {
'name':'Process : ' + svr.name,
'model':'email.smtpclient',
'args': repr([ids]),
'function':'_check_queue',
'priority':5,
'interval_number':1,
'interval_type':'minutes',
'user_id':uid,
'numbercall':-1
}
id = self.pool.get('ir.cron').create(cr, uid, res)
self.write(cr, uid, ids, {'process_id':id})
return True
def start_process(self, cr, uid, ids, context={}):
process = self.browse(cr, uid, ids[0], context)
if not process.process_id:
raise osv.except_osv(_('SMTP Server Error !'), _('Server is not Verified, Please Verify the Server !'))
pid = process.process_id.id
self.pool.get('ir.cron').write(cr, uid, [pid], {'active':True})
self.write(cr, uid, ids, {'pstate':'running'})
return True
def stop_process(self, cr, uid, ids, context={}):
pid = self.browse(cr, uid, ids[0], context).process_id.id
self.pool.get('ir.cron').write(cr, uid, [pid], {'active':False})
self.write(cr, uid, ids, {'pstate':'stop'})
return True
smtpclient()
class email_headers(osv.osv):
_name = 'email.headers'
_description = 'Email Headers'
_columns = {
'server_id':fields.many2one('email.smtpclient', 'SMTP Server'),
'key':fields.char('Header', size=64, required=True),
'value':fields.char('Value', size=1024, required=False),
}
email_headers()
class email_history(osv.osv):
_name = 'email.smtpclient.history'
_description = 'Email Client History'
_order = 'id desc'
_columns = {
'name' : fields.text('Description',required=True, readonly=True),
'date_create': fields.datetime('Date',readonly=True),
'user_id':fields.many2one('res.users', 'Username', readonly=True, select=True),
'server_id' : fields.many2one('email.smtpclient', 'Smtp Server', ondelete='set null', readonly=True, required=True),
'model':fields.many2one('ir.model', 'Model', readonly=True, select=True),
'resource_id':fields.integer('Resource ID', readonly=True),
'email':fields.char('Email',size=64,readonly=True),
}
_defaults = {
'date_create': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'user_id': lambda obj, cr, uid, context: uid,
}
def create(self, cr, uid, vals, context=None):
super(email_history,self).create(cr, uid, vals, context)
cr.commit()
email_history()
class message_queue(osv.osv):
_name = 'email.smtpclient.queue'
_description = 'Email Queue'
_order = '"to"'
_columns = {
'to' : fields.char('Mail to', size=1024, readonly=True, states={'draft':[('readonly',False)], 'error':[('readonly',False)]}),
'server_id':fields.many2one('email.smtpclient', 'SMTP Server', readonly=True, states={'draft':[('readonly',False)]}),
'cc' : fields.char('CC to', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
'bcc' : fields.char('BCC to', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
'name' : fields.char('Subject', size=1024, readonly=True, states={'draft':[('readonly',False)]}),
'body' : fields.text('Email Text', readonly=True, states={'draft':[('readonly',False)]}),
'serialized_message':fields.text('Message', readonly=True, states={'draft':[('readonly',False)]}),
'state':fields.selection([
('draft','Queued'),
('sending','Waiting'),
('send','Sent'),
('error','Error'),
],'Message Status', select=True, readonly=True),
'type':fields.selection([
('default','Default Message'),
('system','System Message'),
],'Message Type', select=True, readonly=True),
'error':fields.text('Last Error', size=256, readonly=True, states={'draft':[('readonly',False)]}),
'date_create': fields.datetime('Date', readonly=True),
'priority':fields.integer('Message Priority', readonly=True),
}
_defaults = {
'date_create': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'state': lambda *a: 'draft',
'priority': lambda *a: '10',
'type': lambda *a: 'default',
}
message_queue()
class report_smtp_server(osv.osv):
_name = "report.smtp.server"
_description = "Server Statistics"
_auto = False
_columns = {
'server_id':fields.many2one('email.smtpclient','Server ID',readonly=True),
'name': fields.char('Server',size=64,readonly=True),
'history':fields.char('History',size=64, readonly=True),
'no':fields.integer('Total No.',readonly=True),
}
def init(self, cr):
cr.execute("""
create or replace view report_smtp_server as (
select min(h.id) as id, c.id as server_id, h.name as history, h.name as name, count(h.name) as no from email_smtpclient c inner join email_smtpclient_history h on c.id=h.server_id group by h.name, c.id
)
""")
report_smtp_server()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data noupdate="1">
<record id="ir_cron_email_scheduler" model="ir.cron">
<field name="name">Send Email</field>
<field name="interval_number">1</field>
<field name="interval_type">minutes</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
<field eval="'email.smtpclient'" name="model"/>
<field eval="'_check_queue'" name="function"/>
<field eval="'()'" name="args"/>
</record>
<record id="ir_cron_history_checker" model="ir.cron">
<field name="name">Queue Cleaner</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
<field eval="'email.smtpclient'" name="model"/>
<field eval="'_check_history'" name="function"/>
<field eval="'()'" name="args"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" ?>
<openerp>
<data noupdate="1">
<record id="email_smtpclient_sendmailserver0" model="email.smtpclient">
<field eval="0" name="auth_type"/>
<field eval="&quot;&quot;&quot;SendMail Server&quot;&quot;&quot;" name="name"/>
<field eval="0" name="ssl"/>
<field eval="&quot;&quot;&quot;localhost&quot;&quot;&quot;" name="server"/>
<field eval="0" name="auth"/>
<field eval="&quot;&quot;&quot;Administrator &lt;admin@company.com&gt;&quot;&quot;&quot;" name="from_email"/>
<field eval="&quot;&quot;&quot;admin@company.com&quot;&quot;&quot;" name="email"/>
<field eval="&quot;&quot;&quot;new&quot;&quot;&quot;" name="state"/>
<field eval="&quot;&quot;&quot;admin&quot;&quot;&quot;" name="user"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Verification Message. This is the code\n__code__ \nyou must copy in the OpenERP Email Server (Verify Server wizard).\nCreated by user __user__&quot;&quot;&quot;" name="verify_email"></field>
<field eval="&quot;&quot;&quot;default&quot;&quot;&quot;" name="type"/>
<field eval="25" name="port"/>
<field eval="[(6,0,[ref('base.user_root')])]" name="users_id"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,294 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_server_statistics_graph">
<field name="name">report.smtp.server.graph</field>
<field name="model">report.smtp.server</field>
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Server Statistics" type="bar">
<field name="no" operator="+" />
<field name="history" operator="+" group="True" />
</graph>
</field>
</record>
<record model="ir.ui.view" id="view_server_statistics_tree">
<field name="name">report.smtp.server.tree</field>
<field name="model">report.smtp.server</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Server Statistics">
<field name="no" />
<field name="history" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_server_statistics_form">
<field name="name">report.smtp.server.form</field>
<field name="model">report.smtp.server</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Server Statistics">
<field name="no" />
<field name="history" select="1" />
</form>
</field>
</record>
<record model="ir.actions.act_window"
id="action_view_server_statistics_graph">
<field name="res_model">report.smtp.server</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="view_id" ref="view_server_statistics_graph" />
</record>
<record model="ir.ui.view" id="company_form">
<field name="name">smtp.company.form</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="base.view_company_form" />
<field name="type">form</field>
<field name="arch" type="xml">
<notebook position="inside">
<page string="SMTP Settings">
<field name="addresses" colspan="4"
nolabel="1">
<tree string="Email Address">
<field name="name" />
<field name="email" />
</tree>
<form string="Email Address">
<field name="name" />
<field name="email"
domain="[('state','=','confirm')]" />
</form>
</field>
</page>
</notebook>
</field>
</record>
<record model="ir.ui.view" id="email_smtpclient_form_new">
<field name="name">email.smtpclient.form</field>
<field name="model">email.smtpclient</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="SMTP Server">
<group col="6" colspan="4">
<field name="name" select="1" />
<field name="date_create" select="1"/>
<field name="priority"/>
</group>
<notebook colspan="4">
<page string="Configuration">
<separator string="Server Information"
colspan="4" />
<field name="auth_type" on_change="change_servertype(auth_type)"/>
<field name="server" select="2" />
<field name="ssl" select="2" />
<field name="port" select="2" />
<separator string="User Information"
colspan="4" />
<field name="email" select="1"
on_change="change_email(email)"/>
<field name="from_email" select="1"/>
<field name="auth" select="2"/>
<newline/>
<field name="user" select="1" attrs="{'required': [('auth_type','in',['gmail','yahoo'])]}"/>
<field name="password" password="True" attrs="{'required': [('auth_type','in',['gmail','yahoo'])]}"/>
<newline />
<separator string="Other Information"
colspan="4" />
<field name="type" select="1" />
<field name="active" select="2" />
<field name="delete_queue" select="2" />
<field name="delete_queue_period" select="2" attrs="{'readonly':[('delete_queue','not in',['content','all'])]}"/>
<separator string="Server Information" colspan="4"/>
<group col="3" colspan="4">
<field name="state" select="1"/>
<button name="set_to_draft" string="Set to Draft" type="object" states="waiting,confirm"/>
</group>
<group col="4" colspan="4">
<field name="process_id"/>
<button name="start_process" string="Start Server" attrs="{'invisible':[('pstate','=','running')]}" type="object"/>
<button name="stop_process" string="Stop Server" attrs="{'invisible':[('pstate','=','stop')]}" type="object"/>
</group>
</page>
<page string="Message Headers">
<field name="header_ids" colspan="4" nolabel="1">
<form string="Message Headers">
<field name="key"/>
<field name="value"/>
</form>
<tree string="Message Headers">
<field name="key"/>
<field name="value"/>
</tree>
</field>
</page>
<page string="Messages">
<separator string="Verification Message" colspan="4" />
<field name="verify_email" select="2" colspan="4" nolabel="1" />
<label string="__code__ for Verification Code" />
<separator string="Test Message" colspan="4" />
<field name="test_email" select="2" colspan="4" nolabel="1" />
<separator string="Message" colspan="4" />
<field name="body" select="2" colspan="4" nolabel="1" />
<label string="__name__ for Customer Name" />
<label string="__number__ for Invoice / Sales Number" />
<label string="__user__ for User Name" />
</page>
<page string="Disclaimers">
<separator string="Disclaimers Message" colspan="4" />
<field name="disclaimers" colspan="4" nolabel="1"/>
</page>
<page string="Permission">
<separator string="Access Permission"
colspan="4" />
<field name="users_id" select="1"
colspan="4" nolabel="1" />
</page>
<!--page string="Statistics">
<field name="server_statistics"
mode="graph,tree" colspan="4" nolabel="1" />
</page-->
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="email_smtpclient_tree">
<field name="name">email.smtpclient.form</field>
<field name="model">email.smtpclient</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SMTP Server">
<field name="name" />
<field name="pstate"/>
<field name="from_email" />
<field name="user" />
<field name="server" />
<field name="port" />
<field name="type" />
<field name="ssl" />
</tree>
</field>
</record>
<record model="ir.actions.act_window"
id="action_email_smtpclient_tree">
<field name="name">Email Server</field>
<field name="res_model">email.smtpclient</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_smtpclient_tree" />
</record>
<menuitem name="Email Services" id="menu_smtpclient_administration_server" parent="base.menu_config"/>
<menuitem name="SMTP Servers" id="menu_smtpclient_administration_smtp_server" parent="menu_smtpclient_administration_server" action="action_email_smtpclient_tree"/>
<record model="ir.ui.view" id="email_smtpclient_history_tree">
<field name="name">email.smtpclient.history.tree</field>
<field name="model">email.smtpclient.history</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Server History">
<field name="server_id" />
<field name="user_id" />
<field name="date_create" />
<field name="name" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="email_smtpclient_history_form">
<field name="name">email.smtpclient.history.form</field>
<field name="model">email.smtpclient.history</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Server History">
<field name="server_id"
domain="[('id','=',parent.id)]" select="1"/>
<field name="date_create" select="1"/>
<field name="name" colspan="4" select="1"/>
</form>
</field>
</record>
<record model="ir.actions.act_window"
id="action_email_smtpclient_history_tree">
<field name="name">Sent Email History</field>
<field name="res_model">email.smtpclient.history</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_smtpclient_history_tree" />
</record>
<menuitem name="Sent Email History" id="menu_smtpclient_administration_server_history" parent="menu_smtpclient_administration_smtp_server" action="action_email_smtpclient_history_tree"/>
<act_window context="{'server_id': active_id}" domain="[('server_id', '=', active_id)]" id="act_mail_server_2_mail_history" name="Email History" res_model="email.smtpclient.history" src_model="email.smtpclient"/>
<!-- MessageQueue Views -->
<record model="ir.ui.view" id="email_smtpclient_queue_tree">
<field name="name">email.smtpclient.queue.tree</field>
<field name="model">email.smtpclient.queue</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Message Queue">
<field name="date_create" />
<field name="priority"/>
<field name="to" />
<field name="name" />
<field name="server_id" />
<field name="state" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="email_smtpclient_queue_form">
<field name="name">email.smtpclient.queue.form</field>
<field name="model">email.smtpclient.queue</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Message Queue">
<notebook>
<page string="General">
<field name="server_id" select="1"/>
<field name="to" select="1"/>
<field name="priority"/>
<field name="name" colspan="4" select="1"/>
<separator string="Message" colspan="4" />
<field name="body" colspan="4" select="1" nolabel="1"/>
<field name="state" select="1"/>
<field name="date_create" select="1"/>
</page>
<page string="Error">
<separator string="Last Error occured" colspan="4"/>
<field name="error" select="2" nolabel="1"/>
</page>
<page string="Message">
<separator string="Message with All Headers" colspan="4"/>
<field name="serialized_message" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_email_smtpclient_queue_tree">
<field name="name">Message Queue</field>
<field name="res_model">email.smtpclient.queue</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="email_smtpclient_queue_tree" />
</record>
<menuitem name="Message Queue" id="menu_smtpclient_administration_smtp_server_queue" parent="menu_smtpclient_administration_smtp_server" action="action_email_smtpclient_queue_tree"/>
<act_window context="{'server_id': active_id}" domain="[('server_id', '=', active_id), ('state','!=', 'send')]" id="act_mail_server_2_mail_queue" name="Message Queus" res_model="email.smtpclient.queue" src_model="email.smtpclient"/>
</data>
</openerp>

View File

@ -0,0 +1,28 @@
<?xml version="1.0"?>
<openerp>
<data>
<wizard
string="Send Verification Code"
model="email.smtpclient"
name="email.sendcode"
id="wizard_email_sendcode"/>
<wizard
string="Verify Server"
model="email.smtpclient"
name="email.verifycode"
id="wizard_email_verifycode"/>
<wizard
string="Send Test Email"
model="email.smtpclient"
name="email.testemail"
id="wizard_email_testemail"/>
<wizard id="base.res_partner_mass_mailing_wizard"
model="res.partner"
name="res.partner.spam_send.smtpclient"
string="Mass Mailing"/>
</data>
</openerp>

View File

@ -0,0 +1,26 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import sendcode
import verifycode
import testemail
import wizard_spam
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,67 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import wizard
import pooler
from osv import osv
import time
import sys
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Send Code">
<field name="emailto" colspan="4"/>
</form>'''
fields = {
'emailto': {'string': 'Email Address', 'required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the address Email where you want to get the Verification Code'}
}
class sendcode(wizard.interface):
def check_code(self, cr, uid, data, context):
code = pooler.get_pool(cr.dbname).get('email.smtpclient').browse(cr, uid, [data['id']])[0].code
if code:
raise osv.except_osv(_('Error'), _('Verification Code Already Generated !'))
return {}
def send_code(self, cr, uid, data, context):
state = pooler.get_pool(cr.dbname).get('email.smtpclient').test_verify_email(cr, uid, [data['id']], data['form']['emailto'])
if not state:
raise osv.except_osv(_('Error'), _('Verification Failed. Please check the Server Configuration!'))
return {}
states = {
'init': {
'actions': [check_code],
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('send','Send Code')]}
},
'send': {
'actions': [send_code],
'result': {'type':'state', 'state':'end'}
}
}
sendcode('email.sendcode')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,57 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import wizard
import pooler
from osv import osv
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Test Email">
<field name="emailto" colspan="4"/>
</form>'''
fields = {
'emailto': {'string': 'Email Address', 'required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the address Email where you want to get the Test Email'}
}
class testemail(wizard.interface):
def send_code(self, cr, uid, data, context):
state = pooler.get_pool(cr.dbname).get('email.smtpclient').test_verify_email(cr, uid, [data['id']], data['form']['emailto'], test=True)
if not state:
raise osv.except_osv(_('Error'), _('Verification Failed. Please check the Server Configuration!'))
return {}
states = {
'init': {
'actions': [],
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('send','Send Email')]}
},
'send': {
'actions': [send_code],
'result': {'type':'state', 'state':'end'}
}
}
testemail('email.testemail')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,71 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import wizard
import pooler
from osv import osv
from tools.translate import _
form = '''<?xml version="1.0"?>
<form string="Verify Code">
<field name="code" colspan="4"/>
</form>'''
fields = {
'code': {'string': 'Verification Code','required':True, 'size': 255 , 'type': 'char', 'help': 'Enter the verification code thay you get in your verification Email'}
}
class verifycode(wizard.interface):
def checkcode(self, cr, uid, data, context):
server_pool = pooler.get_pool(cr.dbname).get('email.smtpclient')
cron_pool = pooler.get_pool(cr.dbname).get('ir.cron')
server = server_pool.browse(cr, uid, data['id'], context)
state = server.state
if state == 'confirm':
raise osv.except_osv(_('Error'), _('Server already verified!'))
code = server.code
if code == data['form']['code']:
if server_pool.create_process(cr, uid, [data['id']], context={}):
server_pool.write(cr, uid, [data['id']], {'state':'confirm', 'pstate':'running'})
print 'process created'
else:
raise osv.except_osv(_('Error'), _('Verification failed. Invalid Verification Code!'))
return {}
states = {
'init': {
'actions': [],
'result': {'type':'form', 'arch':form, 'fields':fields, 'state':[('end','Cancel'),('check','Verify Code')]}
},
'check': {
'actions': [checkcode],
'result': {'type':'state', 'state':'end'}
}
}
verifycode('email.verifycode')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,92 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import wizard
import pooler
import tools
import re
email_send_form = '''<?xml version="1.0"?>
<form string="Mass Mailing">
<field name="smtp_server" colspan="4"/>
<newline/>
<field name="subject" colspan="4"/>
<newline/>
<field name="text" colspan="4"/>
</form>'''
email_send_fields = {
'smtp_server': {'string':"SMTP Server", 'type':'many2one', 'relation':'email.smtpclient', 'required':True},
'subject': {'string':'Subject', 'type':'char', 'size':64, 'required':True},
'text': {'string':'Message', 'type':'text_tag', 'required':True}
}
def merge_message(self, cr, uid, message, object, partner):
def merge(match):
exp = str(match.group()[2:-2]).strip()
result = eval(exp, {'object':object, 'partner':partner})
if result in (None, False):
return str("--------")
return str(result)
com = re.compile('(\[\[.+?\]\])')
msg = com.sub(merge, message)
return msg
# this sends an email to ALL the addresses of the selected partners.
def _mass_mail_send(self, cr, uid, data, context):
nbr = 0
partners = pooler.get_pool(cr.dbname).get('res.partner').browse(cr, uid, data['ids'], context)
email_server = pooler.get_pool(cr.dbname).get('email.smtpclient')
for partner in partners:
for adr in partner.address:
if adr.email:
name = adr.name or partner.name
to = adr.email
subject = merge_message(self, cr, uid, data['form']['subject'], adr, partner)
message = merge_message(self, cr, uid, data['form']['text'], adr, partner)
email_server.send_email(cr, uid, data['form']['smtp_server'], to, subject, message)
nbr += 1
pooler.get_pool(cr.dbname).get('res.partner.event').create(cr, uid,
{'name': 'Email sent through mass mailing',
'partner_id': partner.id,
'description': data['form']['text'], })
#TODO: log number of message sent
return {'email_sent': nbr}
class part_email(wizard.interface):
states = {
'init': {
'actions': [],
'result': {'type': 'form', 'arch': email_send_form, 'fields': email_send_fields, 'state':[('end','Cancel'), ('send','Send Email')]}
},
'send': {
'actions': [_mass_mail_send],
'result': {'type': 'state', 'state':'end'}
}
}
part_email('res.partner.spam_send.smtpclient')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-01-28 14:28+0000\n"
"PO-Revision-Date: 2010-04-15 13:35+0000\n"
"Last-Translator: Ferdinand @ ChriCar <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 03:53+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
@ -370,7 +370,7 @@ msgstr "Beschaffungslager"
#: model:ir.actions.act_window,name:stock.action_production_lot_form
#: model:ir.ui.menu,name:stock.menu_action_production_lot_form
msgid "Production Lots"
msgstr "Fertigungslos"
msgstr "Fertigungslose"
#. module: stock
#: rml:stock.picking.list:0
@ -688,7 +688,6 @@ msgstr "Lagerort beim Partner"
msgid ""
"Tracking lot is the code that will be put on the logistical unit/pallet"
msgstr ""
"Losnummer ist der Code, der die logistische Einheit / Palette identifiziert"
#. module: stock
#: view:stock.tracking:0
@ -1888,7 +1887,7 @@ msgstr "STOCK_MEDIA_PAUSE"
#. module: stock
#: view:product.product:0
msgid "Lots"
msgstr "Lose"
msgstr "Fertigungslose"
#. module: stock
#: selection:stock.picking,move_type:0
@ -1898,7 +1897,7 @@ msgstr "Alles zusammenpacken"
#. module: stock
#: field:product.product,track_outgoing:0
msgid "Track Outging Lots"
msgstr "Verfolge Warenversand"
msgstr "Verfolge Warenversand (Lose)"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_stock_line_date
@ -2113,7 +2112,7 @@ msgstr "Projekt Administrator"
#: model:ir.ui.menu,name:stock.menu_stock_report_prodlots
#: view:stock.report.prodlots:0
msgid "Stock by Lots"
msgstr "Bestand Fertigungslos"
msgstr "Bestand je Fertigungslos"
#. module: stock
#: field:stock.move,auto_validate:0
@ -2226,7 +2225,7 @@ msgstr "STOCK_REVERT_TO_SAVED"
#. module: stock
#: field:product.product,track_production:0
msgid "Track Production Lots"
msgstr "Fertigungsserie"
msgstr "Verfolge Produktion (Lose)"
#. module: stock
#: view:stock.picking:0

View File

@ -7,77 +7,81 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
"Last-Translator: <>\n"
"PO-Revision-Date: 2010-04-15 11:04+0000\n"
"Last-Translator: geopop65 <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-03-30 04:14+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
#: help:stock.location.path,delay:0
msgid "Number of days to do this transition"
msgstr ""
msgstr "Număr de zile pentru efectuarea acestei tranziţii"
#. module: stock_location
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "XML invalid pentru arhitectura machetei de afișare !"
#. module: stock_location
#: model:ir.module.module,shortdesc:stock_location.module_meta_information
msgid "Stock Location Paths"
msgstr ""
msgstr "Trasee locaţii de stocare"
#. module: stock_location
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"Numele obiectului trebuie să înceapă cu x_ şi să nu conţină nici un caracter "
"special !"
#. module: stock_location
#: selection:stock.location.path,auto:0
msgid "Automatic No Step Added"
msgstr ""
msgstr "Automatic fără adăugare de paşi"
#. module: stock_location
#: help:product.product,path_ids:0
msgid ""
"These rules set the right path of the product in the whole location tree."
msgstr ""
"Aceste reguli stabilesc traseul corect spre produs în întregul arbore de "
"locaţii."
#. module: stock_location
#: field:stock.location.path,location_from_id:0
msgid "Source Location"
msgstr ""
msgstr "Locaţie Sursă"
#. module: stock_location
#: field:stock.location.path,location_dest_id:0
msgid "Destination Location"
msgstr ""
msgstr "Locaţie destinaţie"
#. module: stock_location
#: field:stock.location.path,auto:0
#: selection:stock.location.path,auto:0
msgid "Automatic Move"
msgstr ""
msgstr "Mişcare automată"
#. module: stock_location
#: field:stock.location.path,product_id:0
msgid "Products"
msgstr ""
msgstr "Produse"
#. module: stock_location
#: selection:stock.location.path,auto:0
msgid "Manual Operation"
msgstr ""
msgstr "Operare manuală"
#. module: stock_location
#: model:ir.model,name:stock_location.model_stock_location_path
msgid "stock.location.path"
msgstr ""
msgstr "stock.location.path"
#. module: stock_location
#: help:stock.location.path,auto:0
@ -89,25 +93,31 @@ msgid ""
"move has to be validated by a worker. With 'Automatic No Step Added', the "
"location is replaced in the original move."
msgstr ""
"Se foloseşte pentru definirea traseului de urmat pentru produs în arborele "
"de locaţii.\n"
"Valoarea 'Mişcare automată' va crea o mişcare de stoc după cea curentă şi va "
"fi validată automat. Cu 'Operare manuală', mişcarea de stoc va trebui "
"validată de un operator. Cu 'Automat fără adăugare de paşi' locaţia este "
"înlocuită în mişcarea originală."
#. module: stock_location
#: field:stock.location.path,name:0
msgid "Operation"
msgstr ""
msgstr "Operație"
#. module: stock_location
#: view:product.product:0
#: field:product.product,path_ids:0
#: view:stock.location.path:0
msgid "Location Paths"
msgstr ""
msgstr "Trasee locaţii"
#. module: stock_location
#: field:stock.location.path,delay:0
msgid "Delay (days)"
msgstr ""
msgstr "Întârziere (zile)"
#. module: stock_location
#: view:product.product:0
msgid "Procurement & Locations"
msgstr ""
msgstr "Aprovizionare & Locaţii"

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_no_autopicking

View File

@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-15 03:58+0000\n"
"X-Launchpad-Export-Date: 2010-04-16 03:54+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: subscription