-
39mailgun/README.rst
-
2mailgun/__init__.py
-
34mailgun/__manifest__.py
-
1mailgun/controllers/__init__.py
-
16mailgun/controllers/main.py
-
15mailgun/data/ir_cron_data.xml
-
10mailgun/doc/changelog.rst
-
93mailgun/doc/index.rst
-
37mailgun/i18n/es.po
-
32mailgun/i18n/mailgun.pot
-
BINmailgun/images/mailgun_main.png
-
2mailgun/models/__init__.py
-
33mailgun/models/ir_config_parameter.py
-
22mailgun/models/mail_thread.py
-
BINmailgun/static/description/icon.png
-
334mailgun/static/description/index.html
-
BINmailgun/static/description/mailgun_add_domain.png
-
BINmailgun/static/description/mailgun_auth_recipients.png
-
BINmailgun/static/description/mailgun_auth_recipients_form.png
-
BINmailgun/static/description/mailgun_domain_details.png
-
BINmailgun/static/description/mailgun_odoo_general.png
-
BINmailgun/static/description/mailgun_odoo_mail_alias.png
-
BINmailgun/static/description/mailgun_odoo_outgoing.png
-
BINmailgun/static/description/mailgun_odoo_partner_email.png
-
BINmailgun/static/description/mailgun_odoo_sys_param.png
-
BINmailgun/static/description/mailgun_route.png
-
BINmailgun/static/description/mailgun_route_form.png
@ -1,39 +0,0 @@ |
|||||
.. image:: https://itpp.dev/images/infinity-readme.png |
|
||||
:alt: Tested and maintained by IT Projects Labs |
|
||||
:target: https://itpp.dev |
|
||||
|
|
||||
.. image:: https://img.shields.io/badge/license-MIT-blue.svg |
|
||||
:target: https://opensource.org/licenses/MIT |
|
||||
:alt: License: MIT |
|
||||
|
|
||||
========= |
|
||||
Mailgun |
|
||||
========= |
|
||||
|
|
||||
The module allows to receive incoming messages or send them to clients who uses external mail services (e.g. gmail.com) by using Mailgun. |
|
||||
There is no IMAP or POP3 servers on mailgun that is to be used with odoo. |
|
||||
That is why we need this module. It fetches messages from mailgun using their API and stores them in odoo. |
|
||||
|
|
||||
TODO |
|
||||
==== |
|
||||
|
|
||||
* If emails are sent when odoo is stopped then Mailgun will retry (other than for delivery notification) during 8 hours at the following intervals before stop trying: 10 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hour and 4 hours. This could be fixed by fetching undelivered messages after odoo starts. |
|
||||
|
|
||||
Questions? |
|
||||
========== |
|
||||
|
|
||||
To get an assistance on this module contact us by email :arrow_right: help@itpp.dev |
|
||||
|
|
||||
Contributors |
|
||||
============ |
|
||||
* Ildar Nasyrov <Nasyrov@it-projects.info> |
|
||||
* Ivan Yelizariev <yelizariev@it-projects.info> |
|
||||
|
|
||||
=================== |
|
||||
|
|
||||
Odoo Apps Store: https://apps.odoo.com/apps/modules/11.0/mailgun/ |
|
||||
|
|
||||
|
|
||||
Notifications on updates: `via Atom <https://github.com/it-projects-llc/mail-addons/commits/11.0/mailgun.atom>`_, `by Email <https://blogtrottr.com/?subscribe=https://github.com/it-projects-llc/mail-addons/commits/11.0/malgun.atom>`_ |
|
||||
|
|
||||
Tested on `Odoo 11.0 <https://github.com/odoo/odoo/commit/dc61861f90d15797b19f8ebddfb0c8a66d0afa88>`_ |
|
@ -1,2 +0,0 @@ |
|||||
from . import controllers |
|
||||
from . import models |
|
@ -1,34 +0,0 @@ |
|||||
# Copyright 2018 Ildar Nasyrov <https://it-projects.info/team/iledarn> |
|
||||
# License MIT (https://opensource.org/licenses/MIT). |
|
||||
{ |
|
||||
"name": """Mailgun""", |
|
||||
"summary": """Setup the outgoing and incoming mail flow easily by using Mailgun""", |
|
||||
"category": "Discuss", |
|
||||
# "live_test_url": "http://apps.it-projects.info/shop/product/mailgun?version=11.0", |
|
||||
"images": ["images/mailgun_main.png"], |
|
||||
"version": "11.0.1.1.0", |
|
||||
"application": False, |
|
||||
"author": "IT-Projects LLC, Ildar Nasyrov", |
|
||||
"support": "apps@itpp.dev", |
|
||||
"website": "https://itpp.dev", |
|
||||
"license": "Other OSI approved licence", # MIT |
|
||||
"price": 389.00, |
|
||||
"currency": "EUR", |
|
||||
"depends": ["mail"], |
|
||||
"external_dependencies": {"python": [], "bin": []}, |
|
||||
"data": ["data/ir_cron_data.xml"], |
|
||||
"demo": [], |
|
||||
"qweb": [], |
|
||||
"post_load": None, |
|
||||
"pre_init_hook": None, |
|
||||
"post_init_hook": None, |
|
||||
"uninstall_hook": None, |
|
||||
"auto_install": False, |
|
||||
"installable": True, |
|
||||
"demo_title": "Mailgun", |
|
||||
"demo_addons": [], |
|
||||
"demo_addons_hidden": [], |
|
||||
"demo_url": "mailgun", |
|
||||
"demo_summary": "Easy to send outgoing and fetch incoming messages by using Mailgun", |
|
||||
"demo_images": ["images/mailgun_main.png"], |
|
||||
} |
|
@ -1 +0,0 @@ |
|||||
from . import main |
|
@ -1,16 +0,0 @@ |
|||||
import re |
|
||||
|
|
||||
from odoo import http |
|
||||
from odoo.http import request |
|
||||
|
|
||||
|
|
||||
class MailMailgun(http.Controller): |
|
||||
@http.route("/mailgun/notify", auth="public", type="http", csrf=False) |
|
||||
def mailgun_notify(self, **kw): |
|
||||
# mailgun notification in json format |
|
||||
message_url = kw.get("message-url") |
|
||||
if not re.match("^https://[^/]*api.mailgun.net/", message_url): |
|
||||
# simple security check failed |
|
||||
raise Exception("wrong message-url") |
|
||||
request.env["mail.thread"].sudo().mailgun_fetch_message(message_url) |
|
||||
return "ok" |
|
@ -1,15 +0,0 @@ |
|||||
<?xml version="1.0" encoding="utf-8" ?> |
|
||||
<openerp> |
|
||||
<data noupdate="1"> |
|
||||
<record id="mailgun_domain_verification" model="ir.cron"> |
|
||||
<field name="name">Mailgun - domain verification request</field> |
|
||||
<field name="model_id" ref="model_ir_config_parameter" /> |
|
||||
<field name="interval_number">10</field> |
|
||||
<field name="interval_type">minutes</field> |
|
||||
<field name="numbercall">10</field> |
|
||||
<field name="state">code</field> |
|
||||
<field name="code">model.mailgun_verify()</field> |
|
||||
<field name="doall" eval="True" /> |
|
||||
</record> |
|
||||
</data> |
|
||||
</openerp> |
|
@ -1,10 +0,0 @@ |
|||||
`1.1.0` |
|
||||
------- |
|
||||
|
|
||||
- ADD: automatic domain verification |
|
||||
|
|
||||
------- |
|
||||
`1.0.0` |
|
||||
------- |
|
||||
|
|
||||
- Init version |
|
@ -1,93 +0,0 @@ |
|||||
========= |
|
||||
Mailgun |
|
||||
========= |
|
||||
|
|
||||
Installation |
|
||||
============ |
|
||||
|
|
||||
* `Install <https://odoo-development.readthedocs.io/en/latest/odoo/usage/install-module.html>`__ this module in a usual way |
|
||||
|
|
||||
Configuration |
|
||||
============= |
|
||||
|
|
||||
Mailgun-side |
|
||||
------------ |
|
||||
|
|
||||
* register or log in http://mailgun.com |
|
||||
* Open menu ``[[ Domains ]]`` and click on your domain, e.g. ``sandbox123*****.mailgun.org`` domain. Here you can see all the information needed to configure odoo outgoing mail feature |
|
||||
* Please note that state of your domain should be ``Active`` before you can use it. If it is ``Unverified``, verify it first using Mailgun FAQ - `How do I verify my domain <https://help.mailgun.com/hc/en-us/articles/202052074-How-do-I-verify-my-domain->`__ |
|
||||
* if you are using your sandbox domain, add Authorized Recipient first (Sandbox domains are restricted to `authorized recipients <https://help.mailgun.com/hc/en-us/articles/217531258>`__ only) |
|
||||
* create new Route |
|
||||
|
|
||||
* Open menu ``[[ Routes ]]`` |
|
||||
* Click ``[Create Route]`` button |
|
||||
|
|
||||
* **Expression Type** - ``Custom`` |
|
||||
* **Raw Expression** - ``match_recipient('.*@<your mail domain>')`` |
|
||||
* **Actions** - ``Store and notify``, ``http://<your odoo domain>/mailgun/notify`` |
|
||||
|
|
||||
Odoo-side |
|
||||
--------- |
|
||||
|
|
||||
* `Activate Developer Mode <https://odoo-development.readthedocs.io/en/latest/odoo/usage/debug-mode.html>`__ |
|
||||
* Configure **Outgoung mail server** |
|
||||
|
|
||||
* Open menu ``[[ Settings ]] >> Technical >> Email >> Outgoing Mail Servers`` |
|
||||
* Edit ``localhost`` record or create new one with the following: |
|
||||
|
|
||||
* **Description** - ``Mailgun`` |
|
||||
* **SMTP Server** - take from Mailgun **SMTP Hostname** (usually, it is ``smtp.mailgun.org``) |
|
||||
* **Connection Security** - ``SSL/TLS`` |
|
||||
* **Username** - take from Mailgun **Default SMTP Login** |
|
||||
* **Password** - take from Mailgun **Default Password** |
|
||||
* Click ``[Test Connection]`` button to check the connection and then ``[Save]`` |
|
||||
|
|
||||
* Configure **Incoming mail feature** |
|
||||
|
|
||||
* Configure catchall domain |
|
||||
|
|
||||
* Open menu ``Settings / General Settings``, check **External Email Servers** and edit **Alias Domain** - set it from Mailgun **Domain Name** |
|
||||
* Click ``[Save]`` button |
|
||||
|
|
||||
* Set Mailgun API credentials |
|
||||
|
|
||||
* Open menu ``[[ Settings ]] >> Parameters >> System Parameters`` |
|
||||
* Create new parameter |
|
||||
|
|
||||
* key: ``mailgun.apikey`` |
|
||||
* Value: API Key from mailgun (``key-...``) |
|
||||
* Click ``[Save]`` button |
|
||||
|
|
||||
* Configure mail aliases and emails for users |
|
||||
|
|
||||
* Open menu ``[[ Settings ]] >> Users >> Users`` |
|
||||
* Select the ``Administrator`` user (for example, you should configure all your users the same way but using different aliases) and click ``[Edit]`` |
|
||||
* On Preference tab edit **Alias** field - create new mail alias, e.g. ``admin@<you mail domain>`` with the following settings |
|
||||
|
|
||||
* **Alias Name** - ``admin`` |
|
||||
* **Aliased Model** - ``Users`` |
|
||||
* **Record Thread ID** - ``1`` |
|
||||
* **Default Values** - ``{}`` |
|
||||
* **Alias Contact** - ``Everyone`` |
|
||||
* **Security Owner** - ``Administrator`` |
|
||||
* **Parent Model** - Not set |
|
||||
* **Parent Record Thread ID** - ``0`` |
|
||||
|
|
||||
* Open user's **Related Partner** and edit **Email** field - usually it should be the same as mail alias name (``admin@<you mailgun domain`` for ``Administrator``) - this would be an address for replying user's messages |
|
||||
|
|
||||
Usage |
|
||||
===== |
|
||||
|
|
||||
Outgoing |
|
||||
-------- |
|
||||
|
|
||||
* Open menu ``[[ Settings ]]>> Email >> Emails`` to create a message |
|
||||
* Click ``[Send Now]`` button |
|
||||
* RESULT: receive the message in your mail client (e.g. on gmail.com) |
|
||||
|
|
||||
Incoming |
|
||||
-------- |
|
||||
|
|
||||
* Create new message from your mail client to e.g. ``admin@<you mailgun domain>`` |
|
||||
* Open menu ``[[ Discuss ]]`` in Odoo |
|
||||
* RESULT: See your message there |
|
@ -1,37 +0,0 @@ |
|||||
# Translation of Odoo Server. |
|
||||
# This file contains the translation of the following modules: |
|
||||
# * mailgun |
|
||||
# |
|
||||
# Translators: |
|
||||
# Randall Castro <rcastro@treintaycinco.com>, 2018 |
|
||||
msgid "" |
|
||||
msgstr "" |
|
||||
"Project-Id-Version: Odoo Server 10.0\n" |
|
||||
"Report-Msgid-Bugs-To: \n" |
|
||||
"POT-Creation-Date: 2017-12-19 16:49+0000\n" |
|
||||
"PO-Revision-Date: 2017-12-19 16:49+0000\n" |
|
||||
"Last-Translator: Randall Castro <rcastro@treintaycinco.com>, 2018\n" |
|
||||
"Language-Team: Spanish (https://www.transifex.com/it-projects-llc/" |
|
||||
"teams/76080/es/)\n" |
|
||||
"Language: es\n" |
|
||||
"MIME-Version: 1.0\n" |
|
||||
"Content-Type: text/plain; charset=UTF-8\n" |
|
||||
"Content-Transfer-Encoding: \n" |
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|
||||
|
|
||||
#. module: mailgun |
|
||||
#: model:ir.model,name:mailgun.model_mail_thread |
|
||||
msgid "Email Thread" |
|
||||
msgstr "Hilo de correo electrónico" |
|
||||
|
|
||||
#. module: mailgun |
|
||||
#: model:ir.actions.server,name:mailgun.mailgun_domain_verification_ir_actions_server |
|
||||
#: model:ir.cron,cron_name:mailgun.mailgun_domain_verification |
|
||||
#: model:ir.cron,name:mailgun.mailgun_domain_verification |
|
||||
msgid "Mailgun - domain verification request" |
|
||||
msgstr "" |
|
||||
|
|
||||
#. module: mailgun |
|
||||
#: model:ir.model,name:mailgun.model_ir_config_parameter |
|
||||
msgid "ir.config_parameter" |
|
||||
msgstr "ir.config_parameter" |
|
@ -1,32 +0,0 @@ |
|||||
# Translation of Odoo Server. |
|
||||
# This file contains the translation of the following modules: |
|
||||
# * mailgun |
|
||||
# |
|
||||
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: mailgun |
|
||||
#: model:ir.model,name:mailgun.model_mail_thread |
|
||||
msgid "Email Thread" |
|
||||
msgstr "" |
|
||||
|
|
||||
#. module: mailgun |
|
||||
#: model:ir.actions.server,name:mailgun.mailgun_domain_verification_ir_actions_server |
|
||||
#: model:ir.cron,cron_name:mailgun.mailgun_domain_verification |
|
||||
#: model:ir.cron,name:mailgun.mailgun_domain_verification |
|
||||
msgid "Mailgun - domain verification request" |
|
||||
msgstr "" |
|
||||
|
|
||||
#. module: mailgun |
|
||||
#: model:ir.model,name:mailgun.model_ir_config_parameter |
|
||||
msgid "ir.config_parameter" |
|
||||
msgstr "" |
|
||||
|
|
Before Width: 750 | Height: 371 | Size: 384 KiB |
@ -1,2 +0,0 @@ |
|||||
from . import mail_thread |
|
||||
from . import ir_config_parameter |
|
@ -1,33 +0,0 @@ |
|||||
import logging |
|
||||
|
|
||||
import requests |
|
||||
|
|
||||
from odoo import api, models |
|
||||
|
|
||||
try: |
|
||||
import simplejson as json |
|
||||
except ImportError: |
|
||||
import json |
|
||||
|
|
||||
|
|
||||
_logger = logging.getLogger(__name__) |
|
||||
|
|
||||
|
|
||||
class IrConfigParameter(models.Model): |
|
||||
_inherit = ["ir.config_parameter"] |
|
||||
|
|
||||
@api.model |
|
||||
def mailgun_verify(self): |
|
||||
verified = self.sudo().get_param("mailgun.verified") |
|
||||
if verified: |
|
||||
return |
|
||||
api_key = self.sudo().get_param("mailgun.apikey") |
|
||||
mail_domain = self.sudo().get_param("mail.catchall.domain") |
|
||||
if api_key and mail_domain: |
|
||||
url = "https://api.mailgun.net/v3/domains/%s/verify" % mail_domain |
|
||||
res = requests.put(url, auth=("api", api_key)) |
|
||||
if ( |
|
||||
res.status_code == 200 |
|
||||
and json.loads(res.text)["domain"]["state"] == "active" |
|
||||
): |
|
||||
self.sudo().set_param("mailgun.verified", "1") |
|
@ -1,22 +0,0 @@ |
|||||
import logging |
|
||||
|
|
||||
import requests |
|
||||
|
|
||||
from odoo import api, models |
|
||||
|
|
||||
_logger = logging.getLogger(__name__) |
|
||||
|
|
||||
|
|
||||
class MailThread(models.AbstractModel): |
|
||||
_inherit = "mail.thread" |
|
||||
|
|
||||
@api.model |
|
||||
def mailgun_fetch_message(self, message_url): |
|
||||
api_key = self.env["ir.config_parameter"].sudo().get_param("mailgun.apikey") |
|
||||
res = requests.get( |
|
||||
message_url, |
|
||||
headers={"Accept": "message/rfc2822"}, |
|
||||
auth=("api", api_key), |
|
||||
verify=False, |
|
||||
) |
|
||||
self.message_process(False, res.json().get("body-mime")) |
|
Before Width: 100 | Height: 100 | Size: 2.1 KiB |
@ -1,334 +0,0 @@ |
|||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12"> |
|
||||
<h2 class="oe_slogan" style="color:#875A7B;">Mailgun</h2> |
|
||||
<h3 class="oe_slogan">Easy to setup the outgoing and incoming mail flow</h3> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<div class="alert alert-success" style="padding:0.3em 0.6em; font-size: 150%;"> |
|
||||
The module provides Odoo and Mailgun integration to be able to easily configure <em>Outgoing</em> and <em>Incoming</em> mail flow. |
|
||||
<div style="margin-top:2%;"> |
|
||||
From Mailgun side you get: |
|
||||
<ul style="padding-left: 1.6em;"> |
|
||||
<li style="margin-top: 0.3em;"> |
|
||||
Powerful Sending Infrastructure |
|
||||
</li> |
|
||||
<li> |
|
||||
Intelligent Inbound Routing & Storage |
|
||||
</li> |
|
||||
<li> |
|
||||
Tracking and Analytics |
|
||||
</li> |
|
||||
<li> |
|
||||
Email Validation |
|
||||
</li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
</div> |
|
||||
</p> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<h3 class="oe_slogan">Mailgun Configuration</h3> |
|
||||
<h4 class="oe_slogan"><b>Manage Domains</b></h4> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
<ul style="padding-left: 1.4em;"> |
|
||||
<li> |
|
||||
Create account on <a href="https://mailgun.com" target="_blank">Mailgun</a> service |
|
||||
</li> |
|
||||
<li> |
|
||||
Add domain in <b>Domains</b> menu |
|
||||
</li> |
|
||||
</ul> |
|
||||
Note that the state of your domain should be <b>Active</b> to be able to use it from Odoo side. To verify it follow the instruction <a href="https://help.mailgun.com/hc/en-us/articles/202052074-How-do-I-verify-my-domain-" target="_blank">How do I verify my domain</a> |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_add_domain.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Click on added domain name and see all the information needed to configure your <em>Incoming</em> and <em>Outgoing</em> mail feature. |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_domain_details.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
If you use sandbox domain, add <b>Authorized Recipient</b> first (sandbox domains are restricted to <a href="https://help.mailgun.com/hc/en-us/articles/217531258" target="_blank">authorized recipients</a>) |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_auth_recipients.png"/> |
|
||||
</div> |
|
||||
<br/> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_auth_recipients_form.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced" style="margin-top: 5em;"> |
|
||||
<h4 class="oe_slogan"><b>Routes</b></h4> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Navigate to <b>Routes</b> menu and create a new route |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_route.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Set the following fields and values: |
|
||||
<ul> |
|
||||
<li> |
|
||||
<b>Expression Type</b>: Custom |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Raw Expression</b>: match_recipient('.*@your_mail_domain') |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Actions</b>: |
|
||||
<ul> |
|
||||
<li> |
|
||||
Check the box <em>Store and notify</em> |
|
||||
</li> |
|
||||
<li> |
|
||||
Put there http://your_odoo_domain/mailgun/notify |
|
||||
</li> |
|
||||
</li> |
|
||||
</ul> |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_route_form.png"/> |
|
||||
</div> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
<b>Now everything is ready to move to Odoo configuration.</b> |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced" style="margin-top: 6em;"> |
|
||||
<h3 class="oe_slogan">Odoo Configuration</h3> |
|
||||
<h4 class="oe_slogan"><b>Outgoing Mail Feature</b></h4> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
At first, activate <a href="https://odoo-development.readthedocs.io/en/latest/odoo/usage/debug-mode.html" target="_blank">the developer mode</a>. Then go to <em>Settings → Technical → Email → Outgoing Mail Servers</em> menu and populate the following fields: |
|
||||
<ul> |
|
||||
<li> |
|
||||
<b>Description</b> - e.g. Mailgun |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>SMTP Server</b> - smtp.mailgun.org |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Connection Security</b> - SSL/TLS |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Username</b> - use <em>Default SMTP Login</em> from mailgun |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Password</b> - use <em>Default Password</em> from mailgun |
|
||||
</li> |
|
||||
</ul> |
|
||||
Once the fields are populated, click <b>Test Connection</b> button to check the connection to smtp server. If everything is ok, you can see popup message <em>Connection Test Succeeded! Everything seems properly set up!</em> and you are able to send messages now. |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_odoo_outgoing.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<h4 class="oe_slogan"><b>Incoming Mail Feature</b></h4> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Note that to setup incoming mailing, it is not required to setup <em>Incoming Mail Server</em>. |
|
||||
<br/> |
|
||||
Open <em>Settings → General Settings</em> menu: |
|
||||
<ul> |
|
||||
<li> |
|
||||
Check the box <b>External Email Servers</b> |
|
||||
</li> |
|
||||
<li> |
|
||||
Set as <b>Alias Domain</b> the domain name from Mailgun |
|
||||
</li> |
|
||||
</ul> |
|
||||
Save the changes. |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_odoo_general.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Setup mailgun API credentials in <em>Settings → Parameters → System Parameters</em> menu. Create new parameter: |
|
||||
<ul> |
|
||||
<li> |
|
||||
<b>Key</b> - mailgun.apikey |
|
||||
</li> |
|
||||
<li> |
|
||||
<b>Value</b> - key-12345... |
|
||||
</li> |
|
||||
</ul> |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_odoo_sys_param.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Now you can configure mail aliases for users. Go to <em>Settings → Users</em> menu and open user form (e.g. for Administrator). Then switch to <em>Preferences</em> tab and select an existing alias or create new one in the <b>Alias</b> field. |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_odoo_mail_alias.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
Open the user's related partner and set <b>Email</b> - the email is used for replying on user messages |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
<div class="oe_screenshot" align="center"> |
|
||||
<img style="max-width: 80%" src="mailgun_odoo_partner_email.png"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container oe_dark"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span12 text-center"> |
|
||||
<p class="oe_mt32"> |
|
||||
<font style="font-size: 120%;"> |
|
||||
<b> |
|
||||
Everything is done! It's time to send/receive email messages now! |
|
||||
</b> |
|
||||
</font> |
|
||||
</p> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
||||
|
|
||||
<section class="oe_container"> |
|
||||
<div class="oe_row oe_spaced"> |
|
||||
<div class="oe_span8"> |
|
||||
<h2>Need our service?</h2> |
|
||||
<p class="oe_mt32">Contact us by <a href="mailto:apps@it-projects.info">email</a> or fill out <a href="https://www.it-projects.info/page/website.contactus " target="_blank">request form</a></p> |
|
||||
<ul> |
|
||||
<li><a href="mailto:apps@it-projects.info">apps@it-projects.info <i class="fa fa-envelope-o"></i></a></li> |
|
||||
<li><a href="https://www.it-projects.info/page/website.contactus " target="_blank">https://www.it-projects.info/page/website.contactus <i class="fa fa-list-alt"></i></a></li> |
|
||||
<li><a href="https://m.me/itprojectsllc" target="_blank">https://m.me/itprojectsllc <i class="fa fa-facebook-square"></i></a></li> |
|
||||
<li>skype@it-projects.info <i class="fa fa-skype"></i></li> |
|
||||
</ul> |
|
||||
</div> |
|
||||
<div class="oe_span4"> |
|
||||
<div class="stamp" style="width:200px;"> |
|
||||
<div style="margin-top: 15px; |
|
||||
position: relative; |
|
||||
font-family:'Vollkorn', serif; |
|
||||
font-size: 16px; |
|
||||
line-height: 25px; |
|
||||
text-transform: uppercase; |
|
||||
font-weight: bold; |
|
||||
color: #75526b; |
|
||||
border: 3px dashed #75526b; |
|
||||
float: left; |
|
||||
padding: 4px 12px; |
|
||||
-webkit-transform: rotate(6deg); |
|
||||
-o-transform: rotate(6deg); |
|
||||
-moz-transform: rotate(6deg); |
|
||||
-ms-transform: rotate(6deg);"> |
|
||||
Tested on Odoo<br/>11.0 community |
|
||||
</div> |
|
||||
<div style="margin-top: 15px; |
|
||||
position: relative; |
|
||||
font-family:'Vollkorn', serif; |
|
||||
font-size: 16px; |
|
||||
line-height: 25px; |
|
||||
text-transform: uppercase; |
|
||||
font-weight: bold; |
|
||||
color: #75526b; |
|
||||
border: 3px dashed #75526b; |
|
||||
float: left; |
|
||||
padding: 4px 12px; |
|
||||
-webkit-transform: rotate(-7deg); |
|
||||
-o-transform: rotate(-7deg); |
|
||||
-moz-transform: rotate(-7deg); |
|
||||
-ms-transform: rotate(-7deg);"> |
|
||||
Tested on Odoo<br/>11.0 enterprise |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</section> |
|
Before Width: 1196 | Height: 509 | Size: 133 KiB |
Before Width: 1135 | Height: 916 | Size: 150 KiB |
Before Width: 1079 | Height: 443 | Size: 68 KiB |
Before Width: 1209 | Height: 916 | Size: 135 KiB |
Before Width: 1257 | Height: 681 | Size: 112 KiB |
Before Width: 1192 | Height: 647 | Size: 113 KiB |
Before Width: 1186 | Height: 671 | Size: 114 KiB |
Before Width: 969 | Height: 653 | Size: 83 KiB |
Before Width: 1192 | Height: 647 | Size: 108 KiB |
Before Width: 1179 | Height: 921 | Size: 287 KiB |
Before Width: 1179 | Height: 921 | Size: 201 KiB |