1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
from odoo import fields, models, api, _
from datetime import timedelta
import logging
_logger = logging.getLogger(__name__)
class MailMail(models.Model):
_inherit = 'mail.mail'
@api.model
def retry_send_mail(self):
now = fields.Datetime.now()
seven_days_ago = now - timedelta(days=7)
# Filter hanya email gagal dalam 7 hari terakhir
mails = self.search([
('state', 'in', ['exception']),
('create_date', '>=', seven_days_ago),
('create_date', '<=', now),
], limit=250)
_logger.info("Found %s failed emails in last 7 days to retry.", len(mails))
for mail in mails:
_logger.info("Retrying email ID %s - To: %s - Subject: %s",
mail.id, mail.email_to, mail.subject)
mail.state = 'outgoing'
|