Merge PR #2982 into 17.0

Signed-off-by hbrunn
pull/3187/head
OCA-git-bot 2024-12-27 10:59:22 +00:00
commit 8a7727367e
34 changed files with 2257 additions and 0 deletions

View File

@ -0,0 +1,104 @@
================================
Fetchmail Notify Error to Sender
================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:1c969f6d2eb7adce78c73102bfaaed24d544227208a11ab70a841ef1f7b0b527
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/17.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-17-0/server-tools-17-0-fetchmail_notify_error_to_sender
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0
:alt: Try me on Runboat
|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:
1. Configure your fetchmail server setting 'Error notice template' =
'Fetchmail - error notice'.
2. 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 to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20fetchmail_notify_error_to_sender%0Aversion:%2017.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
* ForgeFlow
Contributors
------------
- Lorenzo Battistini <lorenzo.battistini@agilebg.com>
- Miquel Raïch <miquel.raich@forgeflow.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/>)
- Denis Valenchyts <denis@ventor.tech> (VentorTech OU
<https://ventor.tech>)
- Helly kapatel <helly.kapatel@initos.com>
- Carlos Jimeno <carlos.jimeno@braintec.com> (https://braintec.com/)
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/17.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

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

View File

@ -0,0 +1,19 @@
# Copyright 2015 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 ForgeFlow <http://www.forgeflow.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": "17.0.1.0.0",
"category": "Tools",
"author": "Agile Business Group,ForgeFlow,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-tools",
"license": "AGPL-3",
"depends": ["mail"],
"data": ["views/fetchmail_view.xml", "data/email_template_data.xml"],
"qweb": [],
"installable": True,
"application": False,
}

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8" ?>
<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')}}</field>
<field name="email_to">{{ctx.get('sender_message').get('from')}}</field>
<field
name="subject"
>Receiving error with: {{ctx.get('sender_message').get('subject')}}</field>
<field name="model_id" ref="mail.model_fetchmail_server" />
<field name="auto_delete" eval="True" />
<field name="lang">{{ctx.get('lang')}}</field>
<field name="body_html" type="html">
<div style="margin: 0px; padding: 0px;">
<p style="margin: 0px; padding: 0px; font-size: 13px;">
<div>
<p>Hello <t t-out="ctx.get('sender_message').get('from')" />,</p>
<p>we got a problem with your email: <i><t
t-out="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><t t-out="ctx.get('route_exception')" /></i></p>
</div>
</p>
</div>
</field>
</record>
</odoo>

View File

@ -0,0 +1,150 @@
# 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: 2023-10-11 18:38+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.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"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hola <t t-out=\"ctx.get('sender_message').get('from')\""
"/>,</p>\n"
" <p>Tenemos un problema con tu correo electrónico: <i><t "
"t-out=\"ctx.get('sender_message').get('subject')\"/></i></p>\n"
" <p>¿Quizás usaste una dirección de destinatario "
"incorrecta?</p>\n"
" <p><br/></p>\n"
" <p>Detalles técnicos:</p>\n"
" <p><i><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr "Cambios en el conjunto de modificaciones"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr "Conjuntos de cambios"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr "Contar los cambios del conjunto de cambios pendientes"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr "Contar conjuntos de cambios pendientes"
#. 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 "Plantilla de notificación de error"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr "Fetchmail - notificación de error"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail Server"
msgstr "Servidor de correo entrante"
#. 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')}}"
msgstr "Error de recepción con: {{ctx.get('sender_message').get('subject')}}"
#. 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 ""
"Establezca aquí la plantilla que se utilizará para enviar un aviso al "
"remitente cuando se produzcan errores al recuperar el correo electrónico"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr "Usuario puede ver conjunto de cambios"

View File

@ -0,0 +1,117 @@
# 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 15.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-05-25 20:09+0000\n"
"Last-Translator: Ignacio Buioli <ibuioli@gmail.com>\n"
"Language-Team: none\n"
"Language: es_AR\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"
"X-Generator: Weblate 4.17\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hola <t t-out=\"ctx.get('sender_message').get('from')\"/>,"
"</p>\n"
" <p>tuvimos un problema con su mail: <i><t t-out=\"ctx."
"get('sender_message').get('subject')\"/></i></p>\n"
" <p>¿Es posible que halla usado una dirección de remitente "
"errónea?</p>\n"
" <p><br/></p>\n"
" <p>Detalles técnicos:</p>\n"
" <p><i><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr "Cambios en el Conjunto de Cambios"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr "Conjunto de Cambios"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr "Contar los Cambios Pendientes del Conjunto de Cambios"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr "Contar Conjunto de Cambios Pendientes"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Hilo de 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 "Plantilla de aviso de error"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr "Fetchmail - aviso de error"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail Server"
msgstr "Servidor de Correo Entrante"
#. 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')}}"
msgstr "Error al recibir con: {{ctx.get('sender_message').get('subject')}}"
#. 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 ""
"Establezca aquí la plantilla que se usará para enviar un aviso al remitente "
"cuando se produzcan errores al obtener el correo electrónico"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr "El usuario puede ver el Conjunto de Cambios"

View File

@ -0,0 +1,94 @@
# 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 15.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 ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/>,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
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:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail 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')}}"
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 ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

@ -0,0 +1,103 @@
# 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
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr ""
#. 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:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail 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')}}"
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 ""
"Choisissez ici le modèle à utiliser pour informer l'expéditeur lorsque des "
"erreurs surviennent lors de la récupération du courriel. "
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

@ -0,0 +1,104 @@
# 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: 2022-12-30 11:46+0000\n"
"Last-Translator: Francesco Foresti <francesco.foresti@ooops404.com>\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"
"X-Generator: Weblate 4.14.1\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "Discussione e-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:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail 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')}}"
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 ""
"Imposta qui il template da usare per inviare una notifica al mittente quando "
"si verificano errori durante il recupero dell'e-mail"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

@ -0,0 +1,105 @@
# 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: 2019-09-03 01:23+0000\n"
"Last-Translator: Rodrigo Macedo <rmsolucoeseminformatic4@gmail.com>\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"
"X-Generator: Weblate 3.8\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
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 E-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 "Modelo de aviso de erro"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail Server"
msgstr "Servidor de Entrada de E-mail"
#. 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')}}"
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 ""
"Defina aqui o modelo a ser usado para enviar um aviso ao remetente quando "
"ocorrerem erros ao buscar email"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

@ -0,0 +1,103 @@
# 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
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr ""
#. 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:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail 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')}}"
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 ""
"E-posta alınırken oluşan hatalarda gönderilecek bildirim mesajı için şablonu "
"belirleyin."
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

@ -0,0 +1,103 @@
# 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: 2019-08-31 06:57+0000\n"
"Last-Translator: 黎伟杰 <674416404@qq.com>\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"
"X-Generator: Weblate 3.8\n"
#. module: fetchmail_notify_error_to_sender
#: model:mail.template,body_html:fetchmail_notify_error_to_sender.email_template_error_notice
msgid ""
"<div style=\"margin: 0px; padding: 0px;\">\n"
" <p style=\"margin: 0px; padding: 0px; font-size: 13px;\">\n"
" <div>\n"
" <p>Hello <t t-out=\"ctx.get('sender_message').get('from')\"/"
">,</p>\n"
" <p>we got a problem with your email: <i><t t-out=\"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><t t-out=\"ctx.get('route_exception')\"/></i></p>\n"
" </div>\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_change_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_change_ids
msgid "Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__changeset_ids
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__changeset_ids
msgid "Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changeset_changes
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changeset_changes
msgid "Count Pending Changeset Changes"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__count_pending_changesets
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__count_pending_changesets
msgid "Count Pending Changesets"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_mail_thread
msgid "Email Thread"
msgstr "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:mail.template,name:fetchmail_notify_error_to_sender.email_template_error_notice
msgid "Fetchmail - error notice"
msgstr ""
#. module: fetchmail_notify_error_to_sender
#: model:ir.model,name:fetchmail_notify_error_to_sender.model_fetchmail_server
msgid "Incoming Mail 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')}}"
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 "在此处设置模板,用于在获取电子邮件时发生错误时向发件人发送通知"
#. module: fetchmail_notify_error_to_sender
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_fetchmail_server__user_can_see_changeset
#: model:ir.model.fields,field_description:fetchmail_notify_error_to_sender.field_mail_thread__user_can_see_changeset
msgid "User Can See Changeset"
msgstr ""

View File

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

View File

@ -0,0 +1,17 @@
# Copyright 2015 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 ForgeFlow <http://www.forgeflow.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",
)

View File

@ -0,0 +1,37 @@
# Copyright 2015-2017 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 ForgeFlow <http://www.forgeflow.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
):
res = []
try:
res = super().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("default_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)
return res

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

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

View File

@ -0,0 +1,10 @@
- Lorenzo Battistini \<<lorenzo.battistini@agilebg.com>\>
- Miquel Raïch \<<miquel.raich@forgeflow.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/>\>)
- Denis Valenchyts \<<denis@ventor.tech>\> (VentorTech OU
\<<https://ventor.tech>\>)
- Helly kapatel \<<helly.kapatel@initos.com>\>
- Carlos Jimeno \<<carlos.jimeno@braintec.com>\> (https://braintec.com/)

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.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,450 @@
<!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: https://docutils.sourceforge.io/" />
<title>Fetchmail Notify Error to Sender</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/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: gray; } /* 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, pre.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. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:1c969f6d2eb7adce78c73102bfaaed24d544227208a11ab70a841ef1f7b0b527
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" 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 image-reference" 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 image-reference" href="https://github.com/OCA/server-tools/tree/17.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 image-reference" href="https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-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 image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-tools&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-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="toc-entry-1">Configuration</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-1">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="#toc-entry-2">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 to smash 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:%2017.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="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>Agile Business Group</li>
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">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;forgeflow.com">miquel.raich&#64;forgeflow.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>
<li>Denis Valenchyts &lt;<a class="reference external" href="mailto:denis&#64;ventor.tech">denis&#64;ventor.tech</a>&gt; (VentorTech OU
&lt;<a class="reference external" href="https://ventor.tech">https://ventor.tech</a>&gt;)</li>
<li>Helly kapatel &lt;<a class="reference external" href="mailto:helly.kapatel&#64;initos.com">helly.kapatel&#64;initos.com</a>&gt;</li>
<li>Carlos Jimeno &lt;<a class="reference external" href="mailto:carlos.jimeno&#64;braintec.com">carlos.jimeno&#64;braintec.com</a>&gt; (<a class="reference external" href="https://braintec.com/">https://braintec.com/</a>)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">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/17.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,13 @@
<?xml version="1.0" ?>
<odoo>
<record id="view_email_server_form" model="ir.ui.view">
<field name="name">fetchmail.server.form</field>
<field name="model">fetchmail.server</field>
<field name="inherit_id" ref="mail.view_email_server_form" />
<field name="arch" type="xml">
<field name="original" position="after">
<field name="error_notice_template_id" />
</field>
</field>
</record>
</odoo>

View File

@ -0,0 +1,87 @@
=====================================
Fetchmail Notify Error to Sender Test
=====================================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:80eaae66bdf34b2ec3bb826d6885f8ebabb168616e733c36db2afa726cb1b288
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |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/17.0/fetchmail_notify_error_to_sender_test
: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-17-0/server-tools-17-0-fetchmail_notify_error_to_sender_test
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=17.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows to test fetchmail_notify_error_to_sender without
installing test_mail. For more info please check comment:
https://github.com/OCA/server-tools/pull/1485#discussion_r289751883
**Table of contents**
.. contents::
:local:
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 to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20fetchmail_notify_error_to_sender_test%0Aversion:%2017.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
* ForgeFlow
Contributors
------------
- Lorenzo Battistini <lorenzo.battistini@agilebg.com>
- Miquel Raïch <miquel.raich@forgeflow.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/>)
- Denis Valenchyts <denis@ventor.tech> (VentorTech OU
<https://ventor.tech>)
- foram shah <foram.shah@initos.com>
- Carlos Jimeno carlos.jimeno@braintec.com (https://braintec.com)
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/17.0/fetchmail_notify_error_to_sender_test>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

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

View File

@ -0,0 +1,16 @@
# Copyright 2015 Lorenzo Battistini <lorenzo.battistini@agilebg.com>
# Copyright 2017 ForgeFlow <http://www.forgeflow.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 Test",
"summary": "Test for Fetchmail Notify Error to Sender",
"version": "17.0.1.0.0",
"category": "Tools",
"author": "Agile Business Group,ForgeFlow,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/server-tools",
"license": "AGPL-3",
"depends": ["fetchmail_notify_error_to_sender", "test_mail"],
"installable": True,
}

View File

@ -0,0 +1,13 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.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"

View File

@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"

View File

@ -0,0 +1,10 @@
- Lorenzo Battistini \<<lorenzo.battistini@agilebg.com>\>
- Miquel Raïch \<<miquel.raich@forgeflow.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/>\>)
- Denis Valenchyts \<<denis@ventor.tech>\> (VentorTech OU
\<<https://ventor.tech>\>)
- foram shah \<<foram.shah@initos.com>\>
- Carlos Jimeno <carlos.jimeno@braintec.com> (https://braintec.com)

View File

@ -0,0 +1,3 @@
This module allows to test fetchmail_notify_error_to_sender without
installing test_mail. For more info please check comment:
<https://github.com/OCA/server-tools/pull/1485#discussion_r289751883>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,434 @@
<!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: https://docutils.sourceforge.io/" />
<title>Fetchmail Notify Error to Sender Test</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/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: gray; } /* 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, pre.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-test">
<h1 class="title">Fetchmail Notify Error to Sender Test</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:80eaae66bdf34b2ec3bb826d6885f8ebabb168616e733c36db2afa726cb1b288
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" 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 image-reference" 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 image-reference" href="https://github.com/OCA/server-tools/tree/17.0/fetchmail_notify_error_to_sender_test"><img alt="OCA/server-tools" src="https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-tools-17-0/server-tools-17-0-fetchmail_notify_error_to_sender_test"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-tools&amp;target_branch=17.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module allows to test fetchmail_notify_error_to_sender without
installing test_mail. For more info please check comment:
<a class="reference external" href="https://github.com/OCA/server-tools/pull/1485#discussion_r289751883">https://github.com/OCA/server-tools/pull/1485#discussion_r289751883</a></p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-1">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-2">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-3">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-4">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-5">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-1">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 to smash 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_test%0Aversion:%2017.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="#toc-entry-2">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-3">Authors</a></h2>
<ul class="simple">
<li>Agile Business Group</li>
<li>ForgeFlow</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-4">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;forgeflow.com">miquel.raich&#64;forgeflow.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>
<li>Denis Valenchyts &lt;<a class="reference external" href="mailto:denis&#64;ventor.tech">denis&#64;ventor.tech</a>&gt; (VentorTech OU
&lt;<a class="reference external" href="https://ventor.tech">https://ventor.tech</a>&gt;)</li>
<li>foram shah &lt;<a class="reference external" href="mailto:foram.shah&#64;initos.com">foram.shah&#64;initos.com</a>&gt;</li>
<li>Carlos Jimeno <a class="reference external" href="mailto:carlos.jimeno&#64;braintec.com">carlos.jimeno&#64;braintec.com</a> (<a class="reference external" href="https://braintec.com">https://braintec.com</a>)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-5">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/17.0/fetchmail_notify_error_to_sender_test">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,101 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
import socket
from email.utils import formataddr
from odoo.tools import mute_logger
from odoo.addons.test_mail.data.test_mail_data import MAIL_TEMPLATE
from odoo.addons.test_mail.tests.test_mail_gateway import TestMailgateway
class TestFetchmailNotifyErrorToSender(TestMailgateway):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.fetchmail_server = cls.env["fetchmail.server"].create(
{
"name": "Test Fetchmail Server",
"server_type": "imap",
}
)
def format_and_process_with_context(
self,
template,
to_email="noone@example.com",
subject="spam",
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 = self.format(
template,
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))
extra = (
f"In-Reply-To: <12321321-openerp-{self.test_record.id}-"
f"mail.test.simple@{socket.gethostname()}>"
)
ctx = {"default_fetchmail_server_id": self.fetchmail_server.id}
count_return_mails_before = self.env["mail.mail"].search_count(
[("email_to", "=", email_from)]
)
# 1. Default fetchmail server not present in context
with self.assertRaises(ValueError):
self.format_and_process_with_context(
MAIL_TEMPLATE,
email_from=email_from,
extra=extra,
)
# 2. Field error_notice_template_id not set
with self.assertRaises(ValueError):
self.format_and_process_with_context(
MAIL_TEMPLATE,
email_from=email_from,
extra=extra,
ctx=ctx,
)
# 3. Everything is set, no error should be raised and an email should be sent
self.fetchmail_server.error_notice_template_id = self.env.ref(
"fetchmail_notify_error_to_sender.email_template_error_notice"
)
self.format_and_process_with_context(
MAIL_TEMPLATE,
email_from=email_from,
extra=extra,
ctx=ctx,
)
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,
)