[add] mail_environment
This commit is contained in:
parent
4e5c50418f
commit
43a618b107
|
|
@ -0,0 +1,6 @@
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Author Nicolas Bessi. Copyright Camptocamp SA
|
||||||
|
##############################################################################
|
||||||
|
from . import env_mail
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Author Nicolas Bessi. Copyright Camptocamp SA
|
||||||
|
##############################################################################
|
||||||
|
{
|
||||||
|
'name': 'Server env config for mail + fetchmail',
|
||||||
|
'version': '0.1',
|
||||||
|
'category': 'Tools',
|
||||||
|
'description': """
|
||||||
|
extend mail and fetch mail with server env
|
||||||
|
""",
|
||||||
|
'author': 'Camptocamp',
|
||||||
|
'website': 'http://openerp.camptocamp.com',
|
||||||
|
'depends': ['mail', 'fetchmail', 'server_environment', 'server_environment_files', 'crm'],
|
||||||
|
'init_xml': [],
|
||||||
|
'update_xml': ['mail_view.xml'],
|
||||||
|
'demo_xml': [],
|
||||||
|
'installable': True,
|
||||||
|
'active': False,
|
||||||
|
}
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
@ -0,0 +1,142 @@
|
||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Author Nicolas Bessi. Copyright Camptocamp SA
|
||||||
|
##############################################################################
|
||||||
|
from osv import fields
|
||||||
|
from osv import osv
|
||||||
|
|
||||||
|
from server_environment import serv_config
|
||||||
|
|
||||||
|
|
||||||
|
class IRMAIL(osv.osv):
|
||||||
|
_inherit = "ir.mail_server"
|
||||||
|
|
||||||
|
def _get_smtp_conf(self, cursor, uid, ids, name, args, context=None):
|
||||||
|
"""
|
||||||
|
Return configuration
|
||||||
|
"""
|
||||||
|
res = {}
|
||||||
|
for conf in self.browse(cursor, uid, ids):
|
||||||
|
res_dict = dict(serv_config.items('outgoing_mail'))
|
||||||
|
res_dict['smtp_port'] = int(res_dict.get('smtp_port', 587))
|
||||||
|
res[conf.id] = res_dict
|
||||||
|
return res
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'smtp_host': fields.function(_get_smtp_conf,
|
||||||
|
method=True,
|
||||||
|
string='SMTP Server',
|
||||||
|
type="char",
|
||||||
|
multi='smtp_host',
|
||||||
|
size=128),
|
||||||
|
'smtp_port': fields.function(_get_smtp_conf,
|
||||||
|
method=True,
|
||||||
|
string='SMTP Port',
|
||||||
|
type="integer",
|
||||||
|
multi='smtp_port',
|
||||||
|
help="SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.",
|
||||||
|
size=5),
|
||||||
|
'smtp_user': fields.function(_get_smtp_conf,
|
||||||
|
method=True,
|
||||||
|
string='Username',
|
||||||
|
type="char",
|
||||||
|
multi='smtp_user',
|
||||||
|
help="Optional username for SMTP authentication",
|
||||||
|
size=64),
|
||||||
|
'smtp_pass': fields.function(_get_smtp_conf,
|
||||||
|
method=True,
|
||||||
|
string='Password',
|
||||||
|
type="char",
|
||||||
|
multi='smtp_pass',
|
||||||
|
help="Optional password for SMTP authentication",
|
||||||
|
size=64),
|
||||||
|
'smtp_encryption' :fields.function(_get_smtp_conf,
|
||||||
|
method=True,
|
||||||
|
string='smtp_encryption',
|
||||||
|
type="char",
|
||||||
|
multi='smtp_encryption',
|
||||||
|
help="Choose the connection encryption scheme:\n"
|
||||||
|
"- none: SMTP sessions are done in cleartext.\n"
|
||||||
|
"- starttls: TLS encryption is requested at start of SMTP session (Recommended)\n"
|
||||||
|
"- ssl: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)",
|
||||||
|
size=64)}
|
||||||
|
|
||||||
|
IRMAIL()
|
||||||
|
|
||||||
|
|
||||||
|
class FetchmailServer(osv.osv):
|
||||||
|
"""Incoming POP/IMAP mail server account"""
|
||||||
|
_inherit = 'fetchmail.server'
|
||||||
|
|
||||||
|
def _get_incom_conf(self, cursor, uid, ids, name, args, context=None):
|
||||||
|
"""
|
||||||
|
Return configuration
|
||||||
|
"""
|
||||||
|
res = {}
|
||||||
|
|
||||||
|
for conf in self.browse(cursor, uid, ids):
|
||||||
|
res_dict = dict(serv_config.items('incoming_mail'))
|
||||||
|
res_dict['port'] = int(res_dict.get('port', 993))
|
||||||
|
res_dict['is_ssl'] = bool(int(res_dict.get('is_ssl', 0)))
|
||||||
|
res_dict['attach'] = bool(int(res_dict.get('attach', 0)))
|
||||||
|
res_dict['original'] = bool(int(res_dict.get('original', 0)))
|
||||||
|
res[conf.id] = res_dict
|
||||||
|
return res
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'server': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Server',
|
||||||
|
type="char",
|
||||||
|
multi='server',
|
||||||
|
size=256, help="Hostname or IP of the mail server"),
|
||||||
|
'port': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Port',
|
||||||
|
type="integer",
|
||||||
|
multi='port',
|
||||||
|
help="Hostname or IP of the mail server"),
|
||||||
|
'type': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Type',
|
||||||
|
type="char",
|
||||||
|
multi='type',
|
||||||
|
size=64,
|
||||||
|
help="pop, imap, local"),
|
||||||
|
'is_ssl': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Is SSL',
|
||||||
|
type="boolean",
|
||||||
|
multi='is_ssl',
|
||||||
|
help='Connections are encrypted with SSL/TLS through'
|
||||||
|
' a dedicated port (default: IMAPS=993, POP3S=995)'),
|
||||||
|
'attach': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Keep Attachments',
|
||||||
|
type="boolean",
|
||||||
|
multi='attach',
|
||||||
|
help="Whether attachments should be downloaded. "
|
||||||
|
"If not enabled, incoming emails will be stripped of any attachments before being processed"),
|
||||||
|
'original': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Keep Original',
|
||||||
|
type="boolean",
|
||||||
|
multi='attach',
|
||||||
|
help="Whether a full original copy of each email should be kept for reference"
|
||||||
|
"and attached to each processed message. This will usually double the size of your message database."),
|
||||||
|
'user': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='Username',
|
||||||
|
type="char",
|
||||||
|
multi='user',
|
||||||
|
size=64),
|
||||||
|
'password': fields.function(_get_incom_conf,
|
||||||
|
method=True,
|
||||||
|
string='password',
|
||||||
|
type="char",
|
||||||
|
multi='password',
|
||||||
|
size=64)}
|
||||||
|
FetchmailServer()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<record model="ir.ui.view" id="inherit_fetchmail">
|
||||||
|
<!-- must be unique in this module. -->
|
||||||
|
<field name="name">inherit_fetchmail_for_env_support</field>
|
||||||
|
<field name="model">fetchmail.server</field>
|
||||||
|
<!--parent python entity -->
|
||||||
|
<field name="inherit_id" ref="fetchmail.view_email_server_form"/>
|
||||||
|
<!-- modulename.view -->
|
||||||
|
<field name="type">form</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<field name="server" attrs="{'required' : [('type', '!=', 'local')]}" position="replace">
|
||||||
|
<field name="server" />
|
||||||
|
</field>
|
||||||
|
<field name="port" attrs="{'required' : [('type', '!=', 'local')]}" position="replace">
|
||||||
|
<field name="port" />
|
||||||
|
</field>
|
||||||
|
<field name="user" attrs="{'required' : [('type', '!=', 'local')]}" position="replace">
|
||||||
|
<field name="user" />
|
||||||
|
</field>
|
||||||
|
<field name="password" attrs="{'required' : [('type', '!=', 'local')]}" position="replace">
|
||||||
|
<field name="password" />
|
||||||
|
</field>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
Loading…
Reference in New Issue