[hotfix] check daily email limit before sending emails
This commit is contained in:
parent
49ba5828fc
commit
ce8f76ff4a
1 changed files with 12 additions and 0 deletions
|
|
@ -218,9 +218,17 @@ def check_email_limit(recipients):
|
|||
or frappe.flags.in_test):
|
||||
|
||||
monthly_email_limit = frappe.conf.get('limits', {}).get('emails')
|
||||
daily_email_limit = frappe.conf.get('limits', {}).get('daily_emails')
|
||||
|
||||
if frappe.flags.in_test:
|
||||
monthly_email_limit = 500
|
||||
daily_email_limit = 50
|
||||
|
||||
# get count of today's sent mails
|
||||
today = get_emails_sent_today()
|
||||
if daily_email_limit and (today + len(recipients)) > daily_email_limit:
|
||||
throw(_("Cannot send this email. You have crossed the sending limit of {0} emails for this day.").format(daily_email_limit),
|
||||
EmailLimitCrossedError)
|
||||
|
||||
if not monthly_email_limit:
|
||||
return
|
||||
|
|
@ -236,6 +244,10 @@ def get_emails_sent_this_month():
|
|||
return frappe.db.sql("""select count(name) from `tabEmail Queue` where
|
||||
status='Sent' and MONTH(creation)=MONTH(CURDATE())""")[0][0]
|
||||
|
||||
def get_emails_sent_today():
|
||||
return frappe.db.sql("""select count(name) from `tabEmail Queue` where
|
||||
status='Sent' and DATE(creation)=CURDATE()""")[0][0]
|
||||
|
||||
def get_unsubscribe_message(unsubscribe_message, expose_recipients):
|
||||
if unsubscribe_message:
|
||||
unsubscribe_html = '''<a href="<!--unsubscribe url-->"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue