Browse Source

Merge pull request #1485 from Eficent/12.0-mig-fetchmail_notify_error_to_sender

[12.0] [MIG] fetchmail_notify_error_to_sender
pull/1593/merge
Pedro M. Baeza 5 years ago
committed by GitHub
parent
commit
382bcd63ea
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 94
      fetchmail_notify_error_to_sender/README.rst
  2. 3
      fetchmail_notify_error_to_sender/__init__.py
  3. 27
      fetchmail_notify_error_to_sender/__manifest__.py
  4. 24
      fetchmail_notify_error_to_sender/data/email_template_data.xml
  5. 62
      fetchmail_notify_error_to_sender/i18n/ca.po
  6. 62
      fetchmail_notify_error_to_sender/i18n/de.po
  7. 104
      fetchmail_notify_error_to_sender/i18n/es.po
  8. 54
      fetchmail_notify_error_to_sender/i18n/fetchmail_notify_error_to_sender.pot
  9. 76
      fetchmail_notify_error_to_sender/i18n/fr.po
  10. 63
      fetchmail_notify_error_to_sender/i18n/hr.po
  11. 76
      fetchmail_notify_error_to_sender/i18n/it.po
  12. 63
      fetchmail_notify_error_to_sender/i18n/pt_BR.po
  13. 62
      fetchmail_notify_error_to_sender/i18n/pt_PT.po
  14. 63
      fetchmail_notify_error_to_sender/i18n/sl.po
  15. 76
      fetchmail_notify_error_to_sender/i18n/tr.po
  16. 63
      fetchmail_notify_error_to_sender/i18n/zh_CN.po
  17. 4
      fetchmail_notify_error_to_sender/models/__init__.py
  18. 15
      fetchmail_notify_error_to_sender/models/fetchmail.py
  19. 32
      fetchmail_notify_error_to_sender/models/mail_thread.py
  20. 4
      fetchmail_notify_error_to_sender/readme/CONFIGURE.rst
  21. 4
      fetchmail_notify_error_to_sender/readme/CONTRIBUTORS.rst
  22. 10
      fetchmail_notify_error_to_sender/readme/DESCRIPTION.rst
  23. BIN
      fetchmail_notify_error_to_sender/static/description/icon.png
  24. 439
      fetchmail_notify_error_to_sender/static/description/index.html
  25. 3
      fetchmail_notify_error_to_sender/tests/__init__.py
  26. 79
      fetchmail_notify_error_to_sender/tests/test_fetchmail_notify_error_to_sender.py
  27. 13
      fetchmail_notify_error_to_sender/views/fetchmail_view.xml

94
fetchmail_notify_error_to_sender/README.rst

@ -0,0 +1,94 @@
================================
Fetchmail Notify Error to Sender
================================
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
:target: https://github.com/OCA/server-tools/tree/12.0/fetchmail_notify_error_to_sender
:alt: OCA/server-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-fetchmail_notify_error_to_sender
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/149/12.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
If fetchmail is not able to correctly route an email, the email is
"silently" lost (you get an error message in server log).
For example, if you configure odoo mail system to route received emails
according to recipient address, it may happen users send emails to wrong
email address.
This module extends the functionality of fetchmail to allow you to
automatically send a notification email to sender, when odoo can't
correctly process the received email.
**Table of contents**
.. contents::
:local:
Configuration
=============
To configure this module, you need to:
#. Configure your fetchmail server setting 'Error notice template' = 'Fetchmail - error notice'.
#. You can edit the 'Fetchmail - error notice' email template according to your needs.
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20fetchmail_notify_error_to_sender%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* Agile Business Group
* Eficent
Contributors
~~~~~~~~~~~~
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
* Miquel Raïch <miquel.raich@eficent.com> (migration to v9 and v10)
* Hai Dinh <haidd.uit@gmail.com> (migration to V11)
* Nedas Zilinskas <nedas.zilinskas@xpansa.com> (Ventor, Xpansa Group <https://ventor.tech/>)
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/12.0/fetchmail_notify_error_to_sender>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

3
fetchmail_notify_error_to_sender/__init__.py

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import models

27
fetchmail_notify_error_to_sender/__manifest__.py

@ -0,0 +1,27 @@
# Copyright 2015 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 Eficent <http://www.eficent.com>
# Copyright 2018 Hai Dinh <haidd.uit@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Fetchmail Notify Error to Sender',
'summary': 'If fetching mails gives error, send an email to sender',
'version': '12.0.1.0.0',
'category': 'Tools',
'author':
"Agile Business Group,Eficent,Odoo Community Association (OCA)",
'website': 'https://github.com/OCA/server-tools',
'license': 'AGPL-3',
'depends': [
'fetchmail',
'test_mail',
],
'data': [
'views/fetchmail_view.xml',
'data/email_template_data.xml',
],
'qweb': [
],
'installable': True,
'application': False,
}

24
fetchmail_notify_error_to_sender/data/email_template_data.xml

@ -0,0 +1,24 @@
<?xml version="1.0" ?>
<odoo noupdate="1">
<!--Email template -->
<record id="email_template_error_notice" model="mail.template">
<field name="name">Fetchmail - error notice</field>
<field name="email_from">${ctx.get('sender_message').get('to')|safe}</field>
<field name="email_to">${ctx.get('sender_message').get('from')|safe}</field>
<field name="subject">Receiving error with: ${ctx.get('sender_message').get('subject')|safe}</field>
<field name="model_id" ref="fetchmail.model_fetchmail_server"/>
<field name="auto_delete" eval="True"/>
<field name="user_signature" eval="True"/>
<field name="lang">${ctx.get('lang')}</field>
<field name="body_html"><![CDATA[
<div>
<p>Hello ${ctx.get('sender_message').get('from')},</p>
<p>we got a problem with your email: <i>${ctx.get('sender_message').get('subject')}</i></p>
<p>Maybe you used a wrong recipient address?</p>
<p><br/></p>
<p>Technical details:</p>
<p><i>${ctx.get('route_exception')}</i></p>
</div>
]]></field>
</record>
</odoo>

62
fetchmail_notify_error_to_sender/i18n/ca.po

@ -0,0 +1,62 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# Marc Tormo i Bochaca <mtbochaca@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-Date: 2017-07-15 02:48+0000\n"
"Last-Translator: Marc Tormo i Bochaca <mtbochaca@gmail.com>, 2017\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Tema del Correu electrònic "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "Servidor POP/IMAP"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

62
fetchmail_notify_error_to_sender/i18n/de.po

@ -0,0 +1,62 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:10+0000\n"
"PO-Revision-Date: 2017-12-01 02:10+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "POP/IMAP-Server"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

104
fetchmail_notify_error_to_sender/i18n/es.po

@ -0,0 +1,104 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# Ahmet Altınışık <aaltinisik@altinkaya.com.tr>, 2016
# Antonio Trueba, 2016
# Antonio Trueba, 2016
# bossnm11 <bossnm11@gmail.com>, 2014
# Carles Antoli <carlesantoli@hotmail.com>, 2015
# Chanseok <kcsgoodboy@gmail.com>, 2014
# Chul Park <parkchul@nate.com>, 2015
# David10000 <gameness@naver.com>, 2014
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012-2013
# Gil <gedwarp@gmail.com>, 2014
# Hongseob Lee <shevious@gmail.com>, 2015
# Hongseob Lee <shevreg@yahoo.com>, 2015
# Hotellook, 2014
# jeon <bluerespect@nate.com>, 2014
# JiyeonLee <leejiyeon00@gmail.com>, 2014
# Jong-Dae Park <jdpark7@gmail.com>, 2013
# Kevin Min <gr326887@graded.br>, 2015
# KimKyudong <choemh@nate.com>, 2014
# mariana1201 <gogo3135@naver.com>, 2014
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015-2016
# Nicole <dlruddk1112@gmail.com>, 2014
# Paolo Valier, 2016
# Pope, 2014
# Rudolf Schnapka <rs@techno-flex.de>, 2016
# Sarina Canelake <sarina@edx.org>, 2014
# Seok Jun Yoon <fake2real@dctribe.com>, 2015
# shin2012 <shin2013@gmail.com>, 2014
# Sujin Lee <sujinlee.me@gmail.com>, 2014
# Sunah Lim <whitetree70@snu.ac.kr>, 2013
# Young Kim <youngck.uw@gmail.com>, 2015
msgid ""
msgstr ""
"Project-Id-Version: server-tools (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-04-14 07:02+0000\n"
"PO-Revision-Date: 2016-04-07 17:54+0000\n"
"Last-Translator: Antonio Trueba\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/"
"language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
"\n"
"<div>\n"
" <p>Hola ${ctx.get('sender_message').get('from')},</p>\n"
" <p>tenemos un problema con su email: <i>${ctx.get('sender_message')."
"get('subject')}</i></p>\n"
" <p>¿Puede haber usado una dirección de destino incorrecta?</p>\n"
" <p><br/></p>\n"
" <p>Detalles técnicos:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n"
"</div>\n"
" "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Hilo correo electrónico"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "Servidor POP/IMAP"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

54
fetchmail_notify_error_to_sender/i18n/fetchmail_notify_error_to_sender.pot

@ -0,0 +1,54 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \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: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx.get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Set here the template to use to send notice to sender when errors occur while fetching email"
msgstr ""

76
fetchmail_notify_error_to_sender/i18n/fr.po

@ -0,0 +1,76 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-Date: 2017-07-15 02:48+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
"\n"
"<div>\n"
"<p>Bonjour ${ctx.get('sender_message').get('from')},</p>\n"
"<p>nous avons de la difficulté avec votre adresse de courriel: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
"<p>Peut-être avez-vous utilisé une mauvaise adresse de destinataire?</p>\n"
"<p><br/></p>\n"
"<p>Détails techniques:</p>\n"
"<p><i>${ctx.get('route_exception').message}</i></p>\n"
"</div>"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Discussion de courriel"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr "Erreur dans le modèle de notice"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "Serveur POP/IMAP"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
"Reçu une erreur avec : ${ctx.get('sender_message').get('subject')|safe}"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""
"Choisissez ici le modèle à utiliser pour informer l'expéditeur lorsque des "
"erreurs surviennent lors de la récupération du courriel. "

63
fetchmail_notify_error_to_sender/i18n/hr.po

@ -0,0 +1,63 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# Bole <bole@dajmi5.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-Date: 2017-07-15 02:48+0000\n"
"Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "POP/IMAP Server"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

76
fetchmail_notify_error_to_sender/i18n/it.po

@ -0,0 +1,76 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# Paolo Valier <paolo.valier@hotmail.it>, 2018
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-01-06 02:25+0000\n"
"PO-Revision-Date: 2018-01-06 02:25+0000\n"
"Last-Translator: Paolo Valier <paolo.valier@hotmail.it>, 2018\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
"\n"
"<div>\n"
" <p>Salve ${ctx.get('sender_message').get('from')},</p>\n"
" <p>abbiamo avuto un problema con la tua mail: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Forse hai usato un indirizzo errato?</p>\n"
" <p><br/></p>\n"
" <p>Dettagli tecnici:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n"
"</div>\n"
" "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Discussione Mail"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr "Template Notifica Errore"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "Server POP/IMAP"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr "Ricezione errore con: ${ctx.get('sender_message').get('subject')|safe}"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""
"Imposta qui il template da usare per inviare una notifica al mittente quando "
"si verificano errori durante il recupero dell'e-mail"

63
fetchmail_notify_error_to_sender/i18n/pt_BR.po

@ -0,0 +1,63 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:10+0000\n"
"PO-Revision-Date: 2017-12-01 02:10+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "Servidor POP/IMAP"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

62
fetchmail_notify_error_to_sender/i18n/pt_PT.po

@ -0,0 +1,62 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: server-tools (8.0)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-09-16 09:29+0000\n"
"PO-Revision-Date: 2015-09-18 13:55+0000\n"
"Last-Translator: <>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/oca/OCA-"
"server-tools-8-0/language/pt_PT/)\n"
"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Tópico de Email"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

63
fetchmail_notify_error_to_sender/i18n/sl.po

@ -0,0 +1,63 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-12-01 02:10+0000\n"
"PO-Revision-Date: 2017-12-01 02:10+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "POP/IMAP strežnik"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

76
fetchmail_notify_error_to_sender/i18n/tr.po

@ -0,0 +1,76 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# OCA Transbot <transbot@odoo-community.org>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-Date: 2017-07-15 02:48+0000\n"
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
"\n"
"<div>\n"
" <p>Merhaba ${ctx.get('sender_message').get('from')},</p>\n"
" <p>E-postanız ile ilgili bir problem var: <i>${ctx.get('sender_message')."
"get('subject')}</i></p>\n"
" <p>Belki alıcı adresi yanlıştır?</p>\n"
" <p><br/></p>\n"
" <p>Teknik detaylar:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n"
"</div>\n"
" "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Eposta konuşması"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr "Hata bildirim şablonu"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "POP/IMAP sunucu"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr "Alınan hata : ${ctx.get('sender_message').get('subject')|safe}"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""
"E-posta alınırken oluşan hatalarda gönderilecek bildirim mesajı için şablonu "
"belirleyin."

63
fetchmail_notify_error_to_sender/i18n/zh_CN.po

@ -0,0 +1,63 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * fetchmail_notify_error_to_sender
#
# Translators:
# Jeffery CHEN <jeffery9@gmail.com>, 2017
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 9.0c\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-Date: 2017-07-15 02:48+0000\n"
"Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/"
"zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"\n"
" <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\n"
" <p>we got a problem with your email: <i>${ctx."
"get('sender_message').get('subject')}</i></p>\n"
" <p>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n"
" <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "POP/IMAP Server"
msgstr "POP/IMAP 服务器"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid ""
"Set here the template to use to send notice to sender when errors occur "
"while fetching email"
msgstr ""

4
fetchmail_notify_error_to_sender/models/__init__.py

@ -0,0 +1,4 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import fetchmail
from . import mail_thread

15
fetchmail_notify_error_to_sender/models/fetchmail.py

@ -0,0 +1,15 @@
# Copyright 2015 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 Eficent <http://www.eficent.com>
# Copyright 2018 Hai Dinh <haidd.uit@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class FetchmailServer(models.Model):
_inherit = 'fetchmail.server'
error_notice_template_id = fields.Many2one(
'mail.template', string="Error notice template",
help="Set here the template to use to send notice to sender when "
"errors occur while fetching email")

32
fetchmail_notify_error_to_sender/models/mail_thread.py

@ -0,0 +1,32 @@
# Copyright 2015-2017 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 Eficent <http://www.eficent.com>
# Copyright 2018 Hai Dinh <haidd.uit@gmail.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, models
class MailThread(models.AbstractModel):
_inherit = 'mail.thread'
@api.model
def message_route(self, message, message_dict, model=None, thread_id=None,
custom_values=None):
try:
res = super(MailThread, self).message_route(
message, message_dict, model=model, thread_id=thread_id,
custom_values=custom_values)
except ValueError as ve:
fetchmail_server_id = self.env.context.get('fetchmail_server_id')
if not fetchmail_server_id:
raise ve
fetchmail_server = self.env['fetchmail.server'].with_context({
'sender_message': message,
'route_exception': ve,
}).browse(fetchmail_server_id)
if not fetchmail_server.error_notice_template_id:
raise ve
fetchmail_server.error_notice_template_id.send_mail(
fetchmail_server.id)
raise ve
return res

4
fetchmail_notify_error_to_sender/readme/CONFIGURE.rst

@ -0,0 +1,4 @@
To configure this module, you need to:
#. Configure your fetchmail server setting 'Error notice template' = 'Fetchmail - error notice'.
#. You can edit the 'Fetchmail - error notice' email template according to your needs.

4
fetchmail_notify_error_to_sender/readme/CONTRIBUTORS.rst

@ -0,0 +1,4 @@
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
* Miquel Raïch <miquel.raich@eficent.com> (migration to v9 and v10)
* Hai Dinh <haidd.uit@gmail.com> (migration to V11)
* Nedas Zilinskas <nedas.zilinskas@xpansa.com> (Ventor, Xpansa Group <https://ventor.tech/>)

10
fetchmail_notify_error_to_sender/readme/DESCRIPTION.rst

@ -0,0 +1,10 @@
If fetchmail is not able to correctly route an email, the email is
"silently" lost (you get an error message in server log).
For example, if you configure odoo mail system to route received emails
according to recipient address, it may happen users send emails to wrong
email address.
This module extends the functionality of fetchmail to allow you to
automatically send a notification email to sender, when odoo can't
correctly process the received email.

BIN
fetchmail_notify_error_to_sender/static/description/icon.png

After

Width: 128  |  Height: 128  |  Size: 3.2 KiB

439
fetchmail_notify_error_to_sender/static/description/index.html

@ -0,0 +1,439 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.13.1: http://docutils.sourceforge.net/" />
<title>Fetchmail Notify Error to Sender</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: grey; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="fetchmail-notify-error-to-sender">
<h1 class="title">Fetchmail Notify Error to Sender</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/server-tools/tree/12.0/fetchmail_notify_error_to_sender"><img alt="OCA/server-tools" src="https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/server-tools-12-0/server-tools-12-0-fetchmail_notify_error_to_sender"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/149/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>If fetchmail is not able to correctly route an email, the email is
“silently” lost (you get an error message in server log).</p>
<p>For example, if you configure odoo mail system to route received emails
according to recipient address, it may happen users send emails to wrong
email address.</p>
<p>This module extends the functionality of fetchmail to allow you to
automatically send a notification email to sender, when odoo can’t
correctly process the received email.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#id1">Configuration</a></h1>
<p>To configure this module, you need to:</p>
<ol class="arabic simple">
<li>Configure your fetchmail server setting ‘Error notice template’ = ‘Fetchmail - error notice’.</li>
<li>You can edit the ‘Fetchmail - error notice’ email template according to your needs.</li>
</ol>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/server-tools/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/server-tools/issues/new?body=module:%20fetchmail_notify_error_to_sender%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
<ul class="simple">
<li>Agile Business Group</li>
<li>Eficent</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
<ul class="simple">
<li>Lorenzo Battistini &lt;<a class="reference external" href="mailto:lorenzo.battistini&#64;agilebg.com">lorenzo.battistini&#64;agilebg.com</a>&gt;</li>
<li>Miquel Raïch &lt;<a class="reference external" href="mailto:miquel.raich&#64;eficent.com">miquel.raich&#64;eficent.com</a>&gt; (migration to v9 and v10)</li>
<li>Hai Dinh &lt;<a class="reference external" href="mailto:haidd.uit&#64;gmail.com">haidd.uit&#64;gmail.com</a>&gt; (migration to V11)</li>
<li>Nedas Zilinskas &lt;<a class="reference external" href="mailto:nedas.zilinskas&#64;xpansa.com">nedas.zilinskas&#64;xpansa.com</a>&gt; (Ventor, Xpansa Group &lt;<a class="reference external" href="https://ventor.tech/">https://ventor.tech/</a>&gt;)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/server-tools/tree/12.0/fetchmail_notify_error_to_sender">OCA/server-tools</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

3
fetchmail_notify_error_to_sender/tests/__init__.py

@ -0,0 +1,3 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from . import test_fetchmail_notify_error_to_sender

79
fetchmail_notify_error_to_sender/tests/test_fetchmail_notify_error_to_sender.py

@ -0,0 +1,79 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import socket
from odoo.addons.test_mail.data.test_mail_data import MAIL_TEMPLATE
from odoo.addons.test_mail.tests.test_mail_gateway import TestMailgateway
from odoo.tools import mute_logger
from email.utils import formataddr
class TestFetchmailNotifyErrorToSender(TestMailgateway):
def setUp(self):
super(TestFetchmailNotifyErrorToSender, self).setUp()
self.fetchmail_server = self.env['fetchmail.server'].create({
'name': 'Test Fetchmail Server',
'type': 'imap',
'error_notice_template_id': self.env.ref('%s.%s' % (
'fetchmail_notify_error_to_sender',
'email_template_error_notice',
)).id
})
def format_and_process_with_context(
self, template, to_email='groups@example.com, other@gmail.com',
subject='Frogs', extra='',
email_from='Sylvie Lelitre <test.sylvie.lelitre@agrolait.com>',
cc_email='',
msg_id='<1198923581.41972151344608186760.JavaMail@agrolait.com>',
model=None, target_model='mail.test.simple', target_field='name',
ctx=None,
):
self.assertFalse(self.env[target_model].search([
(target_field, '=', subject),
]))
mail = template.format(
to=to_email,
subject=subject,
cc=cc_email,
extra=extra,
email_from=email_from,
msg_id=msg_id,
)
self.env['mail.thread'].with_context(ctx or {}).message_process(
model,
mail,
)
return self.env[target_model].search([(target_field, '=', subject)])
@mute_logger('odoo.addons.mail.models.mail_thread', 'odoo.models')
def test_message_process(self):
email_from = formataddr((self.partner_1.name, self.partner_1.email))
count_return_mails_before = self.env['mail.mail'].search_count([
('email_to', '=', email_from),
])
with self.assertRaises(ValueError):
self.format_and_process_with_context(
MAIL_TEMPLATE,
email_from=email_from,
to_email='noone@example.com',
subject='spam',
extra='In-Reply-To: <12321321-openerp-%d-mail.test.simple@%s'
'>' % (self.test_record.id,
socket.gethostname(),
),
ctx={
'fetchmail_server_id': self.fetchmail_server.id,
}
)
count_return_mails_after = self.env['mail.mail'].search_count([
('email_to', '=', email_from),
])
self.assertEqual(
count_return_mails_after,
count_return_mails_before + 1,
)

13
fetchmail_notify_error_to_sender/views/fetchmail_view.xml

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<odoo>
<record model="ir.ui.view" id="view_email_server_form">
<field name="name">fetchmail.server.form</field>
<field name="model">fetchmail.server</field>
<field name="inherit_id" ref="fetchmail.view_email_server_form"/>
<field name="arch" type="xml">
<field name="active" position="after">
<field name="error_notice_template_id"/>
</field>
</field>
</record>
</odoo>
Loading…
Cancel
Save