跳至內容
選單
此問題已被標幟
1 回覆
6946 瀏覽次數

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.

相關帖文 回覆 瀏覽次數 活動
0
5月 24
2098
3
11月 21
9279
0
3月 21
6646
0
3月 21
2840
3
7月 20
21010