تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
7056 أدوات العرض

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
مايو 24
2313
3
نوفمبر 21
9424
0
مارس 21
6874
0
مارس 21
3004
3
يوليو 20
21293