fix: contact us email reply

This commit is contained in:
phot0n 2023-03-21 20:09:59 +05:30
parent 1c3cb63f79
commit 67de2a34ac
2 changed files with 11 additions and 37 deletions

View file

@ -28,11 +28,8 @@ frappe.ready(function() {
sender: email,
message: message,
callback: function(r) {
if(r.message==="okay") {
if (!r.exc) {
frappe.msgprint('{{ _("Thank you for your message") }}');
} else {
frappe.msgprint('{{ _("There were errors") }}');
console.log(r.exc);
}
$(':input').val('');
}

View file

@ -3,7 +3,7 @@
import frappe
from frappe import _
from frappe.utils import now
from frappe.rate_limiter import rate_limit
sitemap = 1
@ -22,38 +22,17 @@ def get_context(context):
return out
max_communications_per_hour = 1000
@frappe.whitelist(allow_guest=True)
def send_message(subject="Website Query", message="", sender=""):
if not message:
frappe.response["message"] = "Please write something"
return
@rate_limit(limit=1000, seconds=60 * 60, methods=["POST"])
def send_message(sender, message, subject="Website Query"):
if forward_to_email := frappe.db.get_single_value("Contact Us Settings", "forward_to_email"):
frappe.sendmail(recipients=forward_to_email, reply_to=sender, content=message, subject=subject)
if not sender:
frappe.response["message"] = "Email Address Required"
return
# guest method, cap max writes per hour
if (
frappe.db.sql(
"""select count(*) from `tabCommunication`
where `sent_or_received`="Received"
and TIMEDIFF(%s, modified) < '01:00:00'""",
now(),
)[0][0]
> max_communications_per_hour
):
frappe.response[
"message"
] = "Sorry: we believe we have received an unreasonably high number of requests of this kind. Please try later"
return
# send email
forward_to_email = frappe.db.get_single_value("Contact Us Settings", "forward_to_email")
if forward_to_email:
frappe.sendmail(recipients=forward_to_email, sender=sender, content=message, subject=subject)
frappe.sendmail(
recipients=sender,
content="Thank you for reaching out to us. We will get back to you at the earliest.",
subject="We've received your query!",
)
# add to to-do ?
frappe.get_doc(
@ -66,5 +45,3 @@ def send_message(subject="Website Query", message="", sender=""):
status="Open",
)
).insert(ignore_permissions=True)
return "okay"