[11.0] [MIG] [fetchmail_notify_error_to_sender] - readme, tests, fix template tech. msg issue

pull/2982/head
Nedas 2018-07-03 22:01:45 +03:00 committed by BT-cjimeno
parent 92a0ecd37c
commit 0d0e31bf16
No known key found for this signature in database
20 changed files with 809 additions and 165 deletions

View File

@ -1,11 +1,30 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
================================ ================================
Fetchmail Notify Error to Sender 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/11.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-11-0/server-tools-11-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/11.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
If fetchmail is not able to correctly route an email, the email is If fetchmail is not able to correctly route an email, the email is
"silently" lost (you get an error message in server log). "silently" lost (you get an error message in server log).
@ -17,6 +36,10 @@ This module extends the functionality of fetchmail to allow you to
automatically send a notification email to sender, when odoo can't automatically send a notification email to sender, when odoo can't
correctly process the received email. correctly process the received email.
**Table of contents**
.. contents::
:local:
Configuration Configuration
============= =============
@ -26,51 +49,46 @@ To configure this module, you need to:
#. Configure your fetchmail server setting 'Error notice template' = 'Fetchmail - error notice'. #. Configure your fetchmail server setting 'Error notice template' = 'Fetchmail - error notice'.
#. You can edit the 'Fetchmail - error notice' email template according to your needs. #. You can edit the 'Fetchmail - error notice' email template according to your needs.
.. figure:: path/to/local/image.png
:alt: alternative description
:width: 600 px
Usage
=====
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/149/11.0
Bug Tracker Bug Tracker
=========== ===========
Bugs are tracked on `GitHub Issues Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
<https://github.com/OCA/server-tools/issues>`_. In case of trouble, please In case of trouble, please check there if your issue has already been reported.
check there if your issue has already been reported. If you spotted it first, If you spotted it first, help us smashing it by providing a detailed and welcomed
help us smash it by providing detailed and welcomed feedback. `feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20fetchmail_notify_error_to_sender%0Aversion:%2011.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 Credits
======= =======
Images Authors
------ ~~~~~~~
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_. * Agile Business Group
* Eficent
Contributors Contributors
------------ ~~~~~~~~~~~~
* Lorenzo Battistini <lorenzo.battistini@agilebg.com> * Lorenzo Battistini <lorenzo.battistini@agilebg.com>
* Miquel Raïch <miquel.raich@eficent.com> (migration to v9 and v10) * Miquel Raïch <miquel.raich@eficent.com> (migration to v9 and v10)
* Hai Dinh <haidd.uit@gmail.com> (migration to V11) * Hai Dinh <haidd.uit@gmail.com> (migration to V11)
* Nedas Zilinskas <nedas.zilinskas@xpansa.com> (Ventor, Xpansa Group <https://ventor.tech/>)
Maintainer Maintainers
---------- ~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png .. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association :alt: Odoo Community Association
:target: https://odoo-community.org :target: https://odoo-community.org
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
To contribute to this module, please visit https://odoo-community.org. This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/11.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.

View File

@ -17,7 +17,7 @@
<p>Maybe you used a wrong recipient address?</p> <p>Maybe you used a wrong recipient address?</p>
<p><br/></p> <p><br/></p>
<p>Technical details:</p> <p>Technical details:</p>
<p><i>${ctx.get('route_exception').message}</i></p> <p><i>${ctx.get('route_exception')}</i></p>
</div> </div>
]]></field> ]]></field>
</record> </record>

View File

@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-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" "Last-Translator: Marc Tormo i Bochaca <mtbochaca@gmail.com>, 2017\n"
"Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n" "Language-Team: Catalan (https://www.transifex.com/oca/teams/23907/ca/)\n"
"Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
@ -24,11 +24,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -12,10 +12,10 @@ msgstr ""
"PO-Revision-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" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n"
"Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
@ -24,11 +24,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -40,27 +40,41 @@ msgstr ""
"POT-Creation-Date: 2016-04-14 07:02+0000\n" "POT-Creation-Date: 2016-04-14 07:02+0000\n"
"PO-Revision-Date: 2016-04-07 17:54+0000\n" "PO-Revision-Date: 2016-04-07 17:54+0000\n"
"Last-Translator: Antonio Trueba\n" "Last-Translator: Antonio Trueba\n"
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-server-tools-8-0/language/es/)\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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid "" msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</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" " <p><i>${ctx.get('route_exception').message}</i></p>\n"
"</div>\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 #. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread #: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
@ -68,7 +82,7 @@ msgid "Email Thread"
msgstr "Hilo correo electrónico" msgstr "Hilo correo electrónico"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: field:fetchmail.server,error_notice_template_id:0 #: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template" msgid "Error notice template"
msgstr "" msgstr ""
@ -83,7 +97,7 @@ msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr "" msgstr ""
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: help:fetchmail.server,error_notice_template_id:0 #: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "" msgid ""
"Set here the template to use to send notice to sender when errors occur " "Set here the template to use to send notice to sender when errors occur "
"while fetching email" "while fetching email"

View File

@ -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 ""

View File

@ -12,30 +12,33 @@ msgstr ""
"PO-Revision-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" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
"Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid "" msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
"<div>\n" "<div>\n"
"<p>Bonjour ${ctx.get('sender_message').get('from')},</p>\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>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>Peut-être avez-vous utilisé une mauvaise adresse de destinataire?</p>\n"
"<p><br/></p>\n" "<p><br/></p>\n"
"<p>Détails techniques:</p>\n" "<p>Détails techniques:</p>\n"

View File

@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-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" "Last-Translator: Bole <bole@dajmi5.com>, 2017\n"
"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" "Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n"
"Language: hr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
@ -24,11 +25,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -12,30 +12,33 @@ msgstr ""
"PO-Revision-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" "Last-Translator: Paolo Valier <paolo.valier@hotmail.it>, 2018\n"
"Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n" "Language-Team: Italian (https://www.transifex.com/oca/teams/23907/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid "" msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
"<div>\n" "<div>\n"
" <p>Salve ${ctx.get('sender_message').get('from')},</p>\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>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>Forse hai usato un indirizzo errato?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Dettagli tecnici:</p>\n" " <p>Dettagli tecnici:</p>\n"
@ -61,8 +64,7 @@ msgstr "Server POP/IMAP"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,subject:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}" msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr "" msgstr "Ricezione errore con: ${ctx.get('sender_message').get('subject')|safe}"
"Ricezione errore con: ${ctx.get('sender_message').get('subject')|safe}"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id #: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id

View File

@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-12-01 02:10+0000\n" "POT-Creation-Date: 2017-12-01 02:10+0000\n"
"PO-Revision-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" "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-Team: Portuguese (Brazil) (https://www.transifex.com/oca/"
"teams/23907/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
@ -24,11 +25,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -10,11 +10,12 @@ msgstr ""
"POT-Creation-Date: 2016-09-16 09:29+0000\n" "POT-Creation-Date: 2016-09-16 09:29+0000\n"
"PO-Revision-Date: 2015-09-18 13:55+0000\n" "PO-Revision-Date: 2015-09-18 13:55+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/oca/OCA-server-tools-8-0/language/pt_PT/)\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" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: pt_PT\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
@ -23,11 +24,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""
@ -38,7 +40,7 @@ msgid "Email Thread"
msgstr "Tópico de Email" msgstr "Tópico de Email"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: field:fetchmail.server,error_notice_template_id:0 #: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "Error notice template" msgid "Error notice template"
msgstr "" msgstr ""
@ -53,7 +55,7 @@ msgid "Receiving error with: ${ctx.get('sender_message').get('subject')|safe}"
msgstr "" msgstr ""
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: help:fetchmail.server,error_notice_template_id:0 #: model:ir.model.fields,help:fetchmail_notify_error_to_sender.field_fetchmail_server_error_notice_template_id
msgid "" msgid ""
"Set here the template to use to send notice to sender when errors occur " "Set here the template to use to send notice to sender when errors occur "
"while fetching email" "while fetching email"

View File

@ -12,11 +12,12 @@ msgstr ""
"PO-Revision-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" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n"
"Language: sl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "%100==4 ? 2 : 3);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
@ -24,11 +25,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -12,30 +12,33 @@ msgstr ""
"PO-Revision-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" "Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n" "Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
"Language: tr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice #: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
#, fuzzy
msgid "" msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""
"\n" "\n"
"<div>\n" "<div>\n"
" <p>Merhaba ${ctx.get('sender_message').get('from')},</p>\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>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>Belki alıcı adresi yanlıştır?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Teknik detaylar:</p>\n" " <p>Teknik detaylar:</p>\n"

View File

@ -11,11 +11,12 @@ msgstr ""
"POT-Creation-Date: 2017-07-15 02:48+0000\n" "POT-Creation-Date: 2017-07-15 02:48+0000\n"
"PO-Revision-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" "Last-Translator: Jeffery CHEN <jeffery9@gmail.com>, 2017\n"
"Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/zh_CN/)\n" "Language-Team: Chinese (China) (https://www.transifex.com/oca/teams/23907/"
"zh_CN/)\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n" "Content-Transfer-Encoding: \n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
#. module: fetchmail_notify_error_to_sender #. module: fetchmail_notify_error_to_sender
@ -24,11 +25,12 @@ msgid ""
"\n" "\n"
" <div>\n" " <div>\n"
" <p>Hello ${ctx.get('sender_message').get('from')},</p>\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>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>Maybe you used a wrong recipient address?</p>\n"
" <p><br/></p>\n" " <p><br/></p>\n"
" <p>Technical details:</p>\n" " <p>Technical details:</p>\n"
" <p><i>${ctx.get('route_exception').message}</i></p>\n" " <p><i>${ctx.get('route_exception')}</i></p>\n"
" </div>\n" " </div>\n"
" " " "
msgstr "" msgstr ""

View File

@ -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.

View File

@ -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/>)

View File

@ -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.

View File

@ -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.14: 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/11.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-11-0/server-tools-11-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/11.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 cant
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:%2011.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/11.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>

View File

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

View File

@ -0,0 +1,78 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import socket
from odoo.addons.mail.tests.common import TestMail
from odoo.addons.mail.tests.test_mail_gateway import MAIL_TEMPLATE
from odoo.tools import mute_logger
class TestFetchmailNotifyErrorToSender(TestMail):
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', target_field='name', ctx=False,
):
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 = 'valid.lelitre@agrolait.com'
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@%s>' % (
self.test_public.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,
)