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'