summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models/mail_mail.py
blob: 792b97b765ca27a1996d9e8f033fa44b8f6925cd (plain)
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'