feat: send invoice via email
diff --git a/erpnext/non_profit/doctype/membership/membership.py b/erpnext/non_profit/doctype/membership/membership.py
index eea18393..82b3145 100644
--- a/erpnext/non_profit/doctype/membership/membership.py
+++ b/erpnext/non_profit/doctype/membership/membership.py
@@ -67,6 +67,25 @@
 
 		invoice = make_invoice(self, member, plan, settings)
 
+		if invoice and settings.send_invoice and self.membership_status in ["New", "Current"]:
+			print("Sending")
+			message = settings.new_message if self.membership_status == "New" else settings.renewal
+			email = member.email_id if member.email_id else member.email
+
+			email_args = {
+				"recipients": [email],
+				"message": message,
+				"subject": _('Here is your invoice'),
+				"attachments": [frappe.attach_print("Sales Invoice", invoice.name, print_format=settings.print_format)],
+				"reference_doctype": self.doctype,
+				"reference_name": self.name
+			}
+			if not frappe.flags.in_test:
+				frappe.enqueue(method=frappe.sendmail, queue='short', timeout=300, is_async=True, **email_args)
+			else:
+				frappe.sendmail(**email_args)
+
+
 def make_invoice(membership, member, plan, settings):
 	invoice = frappe.get_doc({
 		'doctype': 'Sales Invoice',
@@ -86,6 +105,8 @@
 	invoice.insert(ignore_permissions=True)
 	invoice.submit()
 
+	return invoice
+
 def get_member_based_on_subscription(subscription_id, email):
 	members = frappe.get_all("Member", filters={
 					'subscription_id': subscription_id,