Skip to Content
Odoo Menu
  • Prisijungti
  • Išbandykite nemokamai
  • Programėlės
    Finansai
    • Apskaita
    • Pateikimas apmokėjimui
    • Sąnaudos
    • Skaičiuoklė (BI)
    • Dokumentai
    • Pasirašymas
    Pardavimai
    • CRM
    • Pardavimai
    • Kasų sistema - Parduotuvė
    • Kasų sistema - Restoranas
    • Prenumeratos
    • Nuoma
    Svetainės
    • Svetainių kūrėjimo įrankis
    • El. Prekyba
    • Internetinis Tinklaraštis
    • Forumas
    • Tiesioginis pokalbis
    • eMokymasis
    Tiekimo grandinė
    • Atsarga
    • Gamyba
    • PLM
    • Įsigijimai
    • Priežiūra
    • Kokybė
    Žmogaus ištekliai
    • Darbuotojai
    • Įdarbinimas
    • Atostogos
    • Įvertinimai
    • Rekomendacijos
    • Transporto priemonės
    Rinkodara
    • Socialinė rinkodara
    • Rinkodara el. paštu
    • SMS rinkodara
    • Renginiai
    • Rinkodaros automatizavimas
    • Apklausos
    Paslaugos
    • Projektas
    • Darbo laiko žiniaraščiai
    • Priežiūros tarnyba
    • Pagalbos tarnyba
    • Planavimas
    • Rezervacijos
    Produktyvumas
    • Diskucija
    • Patvirtinimai
    • IoT
    • VoIP
    • Žinių biblioteka
    • WhatsApp
    Trečiųjų šalių programos Odoo Studija Odoo debesijos platforma
  • Pramonės šakos
    Mažmeninė prekyba
    • Knygynas
    • Drabužių parduotuvė
    • Baldų parduotuvė
    • Maisto prekių parduotuvė
    • Techninės įrangos parduotuvė
    • Žaislų parduotuvė
    Food & Hospitality
    • Barai ir pub'ai
    • Restoranas
    • Greitasis maistas
    • Guest House
    • Gėrimų platintojas
    • Hotel
    Nekilnojamasis turtas
    • Real Estate Agency
    • Architektūros įmonė
    • Konstrukcija
    • Estate Managament
    • Sodininkauti
    • Turto savininkų asociacija
    Konsultavimas
    • Accounting Firm
    • Odoo Partneris
    • Marketing Agency
    • Teisinė firma
    • Talentų paieška
    • Auditai & sertifikavimas
    Gamyba
    • Textile
    • Metal
    • Furnitures
    • Maistas
    • Brewery
    • Įmonių dovanos
    Sveikata & Fitnesas
    • Sporto klubas
    • Akinių parduotuvė
    • Fitneso Centras
    • Sveikatos praktikai
    • Vaistinė
    • Kirpėjas
    Trades
    • Handyman
    • IT įranga ir palaikymas
    • Saulės energijos sistemos
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Kiti
    • Nonprofit Organization
    • Aplinkos agentūra
    • Reklaminių stendų nuoma
    • Fotografavimas
    • Dviračių nuoma
    • Programinės įrangos perpardavėjas
    Browse all Industries
  • Bendrija
    Mokykitės
    • Mokomosios medžiagos
    • Dokumentacija
    • Sertifikatai
    • Mokymai
    • Internetinis Tinklaraštis
    • Tinklalaidės
    Skatinkite švietinimą
    • Švietimo programa
    • Scale Up! Verslo žaidimas
    • Aplankykite Odoo
    Gaukite programinę įrangą
    • Atsisiųsti
    • Palyginkite versijas
    • Leidimai
    Bendradarbiauti
    • Github
    • Forumas
    • Renginiai
    • Vertimai
    • Tapkite partneriu
    • Services for Partners
    • Registruokite jūsų apskaitos įmonę
    Gaukite paslaugas
    • Susiraskite partnerį
    • Susirask buhalterį
    • Susitikti su konsultantu
    • Diegimo paslaugos
    • Klientų rekomendavimas
    • Palaikymas
    • Atnaujinimai
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Gaukite demo
  • Kainodara
  • Pagalba

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Apskaita
  • Atsarga
  • PoS
  • Projektas
  • MRP
All apps
You need to be registered to interact with the community.
All Posts People Badges
Žymos (View all)
odoo accounting v14 pos v15
About this forum
You need to be registered to interact with the community.
All Posts People Badges
Žymos (View all)
odoo accounting v14 pos v15
About this forum
Pagalba

Sending emails automatically

Prenumeruoti

Get notified when there's activity on this post

This question has been flagged
emailautomatically
1 Atsakyti
4161 Rodiniai
Portretas
Guilherme

Hi guys, hope you are doing well. So i have a custom model like this:


And what i want to do is, depending on the choice of the checkbox, sending the same email for that persons when you click in button "Avançar", for example, i select de "Seguradora 1" and "Seguradora 3" field, and, when i click in "Avançar", i want to send, automatically, an email with the text "testing sending an email with odoo" without the need to write that email, hope you guys can help me with some code or documentation, have a great day and appreciate your time! 

0
Portretas
Atmesti
m-azzain

You can make your model inherit from 'mail.thread' and use its message_post method to send your emails to different partners. Those selectable names in your screen shot should be partners, so you can pass their ids to the message_post.

To call the message_post you need to have an action method in your model that connect to the form button by their names.

And make sure that your partners are receiving their notification by email.

I have been trying to understand odoo email workflow, and when encountered your question I use it as an exercise, you can check what I explained above here:

https://github.com/m-azzain/mz-addons/blob/master/practice/models/email_demo.py
https://github.com/m-azzain/mz-addons/blob/master/practice/views/email_demo_views.xml

m-azzain

I can't post an answer, do you have any idea why?

Guilherme
Autorius

But I'm supposed to send an email outside of odoo, that is, odoo sends an email when I press the "Avançar" button, and that email it will be sent to the recipient's mail box as if it were a normal email, what you sent can do this?

Guilherme
Autorius

I cant even convert your comment to answer, i don't know what i do wrong....

m-azzain

Yes It can do.
It will send an email to the email address of the partners; each partner in your odoo should have an email address. but you should have an outgoing email server that handle the process from odoo to the outside.

To configure an outgoing email server, there are a lot of ways. I've tried only one which I will show you below, but I think this isn't the perfect way to do it. when you figure better ways I hope you share it here.

First you need to have an outlook email, if you don't you can create one at outlook.com
Second change the setting in your aoutlook account to 'Let Devices and Apps Use POP'. You will find the option in Settings>Mail>Sync email
then update your account on odoo by setting this outlook email as your email; so that you will use it to send emails to the others

And Here is (on odoo) how I set the outgoing email server using outlook email
To configure an outgoing email server go to Settings>General Settings>Custom Email Servers>Outgoing Email Servers
create new and fill the form as:

Authenticate with: Username
Connection Encryption: TLS (STARTTLS)
SMTP Server: smtp.office365.com
SMTP Port: 587
Username: <Your outlook email>
Password: <Your outlook email password>

leave the rest as it's

Guilherme
Autorius

Tried do to what you send me in github and keep giving me this error - > "TypeError: fields_get() takes 1 positional argument but 2 were give"

m-azzain

I think you missed the ** when you tried to call the super method
def fields_get(self, **kwargs):
result = super().fields_get(**kwargs)

m-azzain

by the way it allowed me to post an answer
It looks like, it prefer code more than text :)

m-azzain

If have find it convenient you can email me at m.alzain248@gmail.com

m-azzain

If you find it convenient you can email me at m.alzain248@gmail.com

m-azzain

hello, I am working into something and just stumbled on the same error as the one you mentioned, it is possible we are working into different versions of odoo. so I did minor change to the code, and also don't hesitate to post whatever error you may get, I already tested the code.

Portretas
m-azzain
Best Answer

from odoo import api, fields, models


class EmailDemo(models.Model):
_name = 'practice.email.demo'
_inherit = ['mail.thread']
_description = "Email Demo"

res_partner_1 = fields.Boolean(string="Partner 1")
res_partner_2 = fields.Boolean(string="Partner 2")
res_partner_3 = fields.Boolean(string="Partner 3")
res_partner_4 = fields.Boolean(string="Partner 4")

@property
def receivers_selection_map(self):
# These partners are already in the system from demo data,
# You should check they exists in your system,
# Or you can replace them by others
return {'res_partner_1': self.env.ref('base.res_partner_1'),
'res_partner_2': self.env.ref('base.res_partner_2'),
'res_partner_3': self.env.ref('base.res_partner_3'),
'res_partner_4': self.env.ref('practice.practice_partner_1')}

def action_send_mail(self):
selected_partners = [p.id for k, p in self.receivers_selection_map.items() if self[k]]
self.message_post(body='Hello, From the email demo.
Email Demo body'
,
subject='email demo subject', partner_ids=selected_partners)

# To display the fields by partner names in the form
@api.model
def fields_get(self, allfields=None, attributes=None):
result = super().fields_get(allfields=allfields, attributes=attributes)
for k in self.receivers_selection_map:
result[k]['string'] = self.receivers_selection_map[k].display_name
return result

0
Portretas
Atmesti
Guilherme
Autorius

I do a copy and past so everything is equals but, i change the res_partners, i put only one to be more easier to me but give me that error, i don't understant the "res_partner" very well, and i don't know what to put in "base.res_partner_1", can you explain that two things to me pls?

m-azzain

You can consider partners as users; any user is a partner but not vice versa. Other things can be partners as addresses.
"base.res_partner_1" is an external id for a partner. It may not be in your system. You can check if it exists or not by going to Settings>Technical>Sequences & Identifiers>External Identifiers. There will be a lot of them you can filter by model name(res.partner).

About the fields_get method, it is actually from odoo.models.Model, you can go to the file odoo.models and find its exact signature and use it, mine is like this:
@api.model
def fields_get(self, allfields=None, attributes=None):

so the new demo method will be like:

@api.model
def fields_get(self, allfields=None, attributes=None):
result = super().fields_get(allfields, attributes)
for k in self.receivers_selection_map:
result[k]['string'] = self.receivers_selection_map[k].display_name
return result

m-azzain

this simple user-partner structure may be of some help:
https://github.com/m-azzain/mz-addons/blob/master/practice/data/res_user_data.xml
This is how most of the external identifiers come to exist

Guilherme
Autorius

It works, thanks a lot!
Have a nice day!

m-azzain

It's my pleasure

Enjoying the discussion? Don't just read, join in!

Create an account today to enjoy exclusive features and engage with our awesome community!

Registracija
Related Posts Replies Rodiniai Veikla
The preferred method to setup emails using a custom domain.
email
Portretas
0
lapkr. 25
220
need more felixiblity and inovation on email marketing tools
email
Portretas
0
lapkr. 25
244
After editing the Sales Order Confirmation email template, Odoo isn't using it.
email
Portretas
Portretas
1
liep. 25
2047
How to remove "Powered by Odoo" in email in the Enterprise version Solved
email
Portretas
Portretas
Portretas
Portretas
Portretas
5
lapkr. 25
20018
Email Einstellung "Von" ist die Email vom Postausgansgserver
email
Portretas
0
bal. 25
1906
Bendrija
  • Mokomosios medžiagos
  • Dokumentacija
  • Forumas
Atvirasis kodas
  • Atsisiųsti
  • Github
  • Runbot
  • Vertimai
Paslaugos
  • Odoo.sh talpinimas
  • Palaikymas
  • Atnaujinti
  • Pritaikytas programavimo kūrimas
  • Švietimas
  • Susirask buhalterį
  • Susiraskite partnerį
  • Tapkite partneriu
Apie mus
  • Mūsų įmonė
  • Prekės ženklo turtas
  • Susisiekite su mumis
  • Darbo pasiūlymai
  • Renginiai
  • Tinklalaidės
  • Internetinis Tinklaraštis
  • Klientai
  • Teisinis • Privatumas
  • Saugumas
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo yra atvirojo kodo verslo programų rinkinys, kuris apima visas įmonės poreikius: CRM, El. Prekybą, Apskaitą, Atsargų, Kasų sistemą, Projektų valdymą ir kt.

Unikali Odoo vertės pasiūla – būti tuo pačiu metu labai lengvai naudojama ir visiškai integruota sistema.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now