feat(odoo-mailgate): add support for custom mail thread model and thread id
This commit is contained in:
5 files changed
+38
-10
No files matched your search
@@ -9,15 +9,17 @@ Source: <https://github.com/Mint-System/Odoo-Build/tree/main/images/odoo-mailgat
|
||||
|
||||
## Usage
|
||||
|
||||
Setup environment vaiables:
|
||||
Setup environment variables:
|
||||
|
||||
```bash
|
||||
export ODOO_URL="http://odoo:8069"
|
||||
export ODOO_DATABASE="odoo"
|
||||
export ODOO_USERNAME="admin"
|
||||
export ODOO_PASSWORD="admin"
|
||||
export MAIL_DOMAIN="yourcompany.com"
|
||||
export MAIL_ALIASES="info invoice contact support"
|
||||
export ODOO_URL="https://odoo.example.com" # default: "http://odoo:8069""
|
||||
export ODOO_DATABASE="example" # default: "odoo"
|
||||
export ODOO_USERNAME="demo" # default: "admin"
|
||||
export ODOO_PASSWORD="demo" # default: "admin"
|
||||
export MAIL_MODEL="res.partner" # default: False
|
||||
export MAIL_THREAD_ID=10 # default: False
|
||||
export MAIL_DOMAIN="yourcompany.com" # default: "yourcompany.com"
|
||||
export MAIL_ALIASES="info invoice contact support" # default: "info"
|
||||
```
|
||||
|
||||
Run the upgrade script:
|
||||
@@ -28,6 +30,8 @@ docker run -d --name odoo-mailgate -p 25:25 -p 587:587 \
|
||||
-e ODOO_DATABASE=$ODOO_DATABASE \
|
||||
-e ODOO_USERNAME=$ODOO_USERNAME \
|
||||
-e ODOO_PASSWORD=$ODOO_PASSWORD \
|
||||
-e MAIL_MODEL=$MAIL_MODEL \
|
||||
-e MAIL_THREAD_ID=$MAIL_THREAD_ID \
|
||||
-e MAIL_DOMAIN=$MAIL_DOMAN \
|
||||
-e MAIL_ALIASES=$MAIL_ALIASES \
|
||||
mintsystem/odoo-mailgate
|
||||
@@ -57,7 +61,7 @@ The mail will be forwarded to Odoo and shown as a discuss channel.
|
||||
Trace the mailgate log:
|
||||
|
||||
```bash
|
||||
docker exec mailgate tail -f /var/log/mail.log
|
||||
docker exec mailgate tail -f /var/log/mail.log
|
||||
```
|
||||
|
||||
You can also send a mail with tls encryption:
|
||||
|
||||
@@ -12,6 +12,8 @@ syslogd -O /var/log/mail.log
|
||||
: ${ODOO_DATABASE:=${ODOO_DB:="odoo"}}
|
||||
: ${ODOO_USERNAME:=${ODOO_USERNAME:="admin"}}
|
||||
: ${ODOO_PASSWORD:=${ODOO_PASSWORD:="admin"}}
|
||||
: ${MAIL_MODEL:=${MAIL_MODEL:=""}}
|
||||
: ${MAIL_THREAD_ID:=${MAIL_THREAD_ID:=""}}
|
||||
: ${MAIL_DOMAIN:=${MAIL_DOMAIN:="yourcompany.com"}}
|
||||
: ${MAIL_ALIASES:=${MAIL_ALIASES:="info"}}
|
||||
|
||||
@@ -47,9 +49,19 @@ if ! grep -q "^submission" /etc/postfix/master.cf; then
|
||||
-o smtpd_tls_wrappermode=no" >> /etc/postfix/master.cf
|
||||
fi
|
||||
|
||||
|
||||
# Set optional parameters
|
||||
if [ $MAIL_MODEL != "" ];then
|
||||
MAIL_MODEL_PARAM=" -m $MAIL_MODEL"
|
||||
fi
|
||||
|
||||
if [ $MAIL_THREAD_ID != "" ];then
|
||||
MAIL_THREAD_ID_PARAM=" -i $MAIL_THREAD_ID"
|
||||
fi
|
||||
|
||||
# Setup aliases
|
||||
for MAIL_ALIAS in $MAIL_ALIASES; do
|
||||
echo "$MAIL_ALIAS: \"|/usr/local/bin/odoo-mailgate.py -l ${ODOO_URL} -d ${ODOO_DATABASE} -u ${ODOO_USERNAME} -p ${ODOO_PASSWORD}\"" >> /etc/aliases
|
||||
echo "$MAIL_ALIAS: \"|/usr/local/bin/odoo-mailgate.py -l ${ODOO_URL} -d ${ODOO_DATABASE} -u ${ODOO_USERNAME} -p ${ODOO_PASSWORD}${MAIL_MODEL_PARAM}${MAIL_THREAD_ID_PARAM}\"" >> /etc/aliases
|
||||
newaliases
|
||||
entrypoint-log "Forward alias $MAIL_ALIAS to Odoo database $ODOO_DATABASE at ${ODOO_HOST}:${ODOO_PORT}."
|
||||
done
|
||||
|
||||
@@ -11,6 +11,8 @@ def main():
|
||||
op.add_option("-d", "--database", dest="database", help="Odoo database name (default: %default)", default='odoo')
|
||||
op.add_option("-u", "--username", dest="username", help="Odoo user id to connect with (default: %default)", default='admin')
|
||||
op.add_option("-p", "--password", dest="password", help="Odoo user password (default: %default)", default='admin')
|
||||
op.add_option("-m", "--model", dest="model", help="Odoo mail thread model (default: %default)", default=False)
|
||||
op.add_option("-i", "--thread-id", dest="thread_id", help="Odoo mail thread id (default: %default)", default=None)
|
||||
(o, args) = op.parse_args()
|
||||
|
||||
try:
|
||||
@@ -18,7 +20,7 @@ def main():
|
||||
common = xmlrpclib.ServerProxy(f"{o.url}/xmlrpc/2/common")
|
||||
uid = common.authenticate(o.database, o.username, o.password, {})
|
||||
models = xmlrpclib.ServerProxy(f"{o.url}/xmlrpc/2/object", allow_none=True)
|
||||
models.execute_kw(o.database, uid, o.password, "mail.thread", "message_process", [False, xmlrpclib.Binary(msg)], {})
|
||||
models.execute_kw(o.database, uid, o.password, "mail.thread", "message_process", [o.model, xmlrpclib.Binary(msg), None, False, False, o.thread_id], {})
|
||||
except xmlrpclib.Fault as e:
|
||||
print(f"XML-RPC Fault: {e.faultCode} - {e.faultString}")
|
||||
sys.exit(1)
|
||||
|
||||
@@ -11,6 +11,13 @@ export WORKERS=${WORKERS:=0}
|
||||
export LIMIT_REQUEST=${LIMIT_REQUEST:=8192}
|
||||
export LIMIT_TIME_CPU=${LIMIT_TIME_CPU:=60}
|
||||
export LIMIT_TIME_REAL=${LIMIT_TIME_REAL:=120}
|
||||
export MODULE_AUTO_INSTALL_DISABLED=${MODULE_AUTO_INSTALL_DISABLED:=""}
|
||||
export SMTP_SERVER=${SMTP_SERVER:=""}
|
||||
export SMTP_PORT=${SMTP_PORT:=""}
|
||||
export SMTP_SSL=${SMTP_SSL:=""}
|
||||
export SMTP_USER=${SMTP_USER:=""}
|
||||
export SMTP_PASSWORD=${SMTP_PASSWORD:=""}
|
||||
export EMAIL_FROM=${EMAIL_FROM:=""}
|
||||
|
||||
TEMPLATE_FILE="${ODOO_ENVSUBST_TEMPLATE_FILE:-/etc/odoo/odoo.conf.template}"
|
||||
OUTPUT_FILE="${ODOO_ENVSUBST_OUTPUT_FILE:-/etc/odoo/odoo.conf}"
|
||||
|
||||
Reference in new issue
Block a user