Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
1 Відповісти
6964 Переглядів

I need to send out a mail when a PoS session is closed:

@api.multi
@api.constrains('state')
def _session_resume(self):
    if self.state == 'closed':
        print 'closed'
        mail = self.env['mail.mail']
mail_data = {'subject': 'closing session : ' + datetime.now().strftime("%d-%m-%Y"), 'body_html': 'test', 'email_from': '******@gmail.com', 'email_to': '******@gmail.com'}
        mail_out = mail.create(mail_data)
        mail.send(mail_out)

I can reach without issues the api.constrains statement, but no mail is coming out, at least not immediately. 
Forcing an email cron job on automation/ scheduled actions  I can clearly see an email log "successfully sent" and my mail is delivered:

2019-01-28 19:37:58,179 1164 INFO db02 odoo.addons.mail.models.mail_mail: Mail with ID 6 and
Message-Id u'<1548704145.344115972518921.633285188501212-openerp-private@HP-Note>' successfully sent

Then how can I force an immediate email from my python code without edit the stock time (1 hour) in Email Queue Manager?

Аватар
Відмінити
Найкраща відповідь

Hi,

please try with "force_send=True" parameter.
as per  your Example : mail.send(force_send=True)
Thanks.

Аватар
Відмінити
Автор

No, it rise an error...

Error while validating constraint

send() got an unexpected keyword argument 'force_send'

Hello,

so you need to duration of Cron Job is decrease as per your needs.

i think it's a better option in this case.

Thanks

Автор

That's not logic, but ok. Is what I'm doing now.

Related Posts Відповіді Переглядів Дія
0
трав. 24
2112
3
лист. 21
9291
0
бер. 21
6663
0
бер. 21
2868
3
лип. 20
21029