def test_outgoing(self): frappe.flags.sent_mail = None make(subject = "test-mail-000", content="test mail 000", recipients="*****@*****.**", send_email=True, sender="*****@*****.**") mail = email.message_from_string(frappe.get_last_doc("Bulk Email").message) self.assertTrue("test-mail-000" in mail.get("Subject"))
def test_print_format(self): frappe.flags.sent_mail = None make(sender="*****@*****.**", recipients="*****@*****.**", content="test mail 001", subject="test-mail-002", doctype="Email Account", name="_Test Email Account 1", print_format="Standard", send_email=True) sent_mail = email.message_from_string(frappe.get_last_doc("Bulk Email").message) self.assertTrue("test-mail-002" in sent_mail.get("Subject"))
def test_threading(self): frappe.db.sql("""delete from tabCommunication where sender in ('*****@*****.**', '*****@*****.**')""") # send sent_name = make(subject="Test", content="test content", recipients="*****@*****.**", sender="*****@*****.**", send_email=True) sent_mail = email.message_from_string( frappe.get_last_doc("Bulk Email").message) with open( os.path.join(os.path.dirname(__file__), "test_mails", "reply-1.raw"), "r") as f: raw = f.read() raw = raw.replace("<-- in-reply-to -->", sent_mail.get("Message-Id")) test_mails = [raw] # parse reply email_account = frappe.get_doc("Email Account", "_Test Email Account 1") email_account.receive(test_mails=test_mails) sent = frappe.get_doc("Communication", sent_name) comm = frappe.get_doc("Communication", {"sender": "*****@*****.**"}) self.assertEquals(comm.reference_doctype, sent.doctype) self.assertEquals(comm.reference_name, sent.name)
def sendmail_v5(url, doctype=None, name=None, sender=None, content=None, subject=None, sent_or_received="Sent", send_email=False, print_html=None, print_format=None, attachments='[]', recipients=None): from frappe.core.doctype.communication.communication import make content += get_attach_link(url) return make(doctype=doctype, name=name, sender=sender, content=content, subject=subject, sent_or_received=sent_or_received, send_email=send_email, print_html=print_html, print_format=print_format, attachments=attachments, recipients=recipients)
def test_threading(self): frappe.db.sql("""delete from tabCommunication where sender in ('*****@*****.**', '*****@*****.**')""") # send sent_name = make(subject = "Test", content="test content", recipients="*****@*****.**", sender="*****@*****.**", send_email=True)["name"] sent_mail = email.message_from_string(frappe.get_last_doc("Bulk Email").message) with open(os.path.join(os.path.dirname(__file__), "test_mails", "reply-1.raw"), "r") as f: raw = f.read() raw = raw.replace("<-- in-reply-to -->", sent_mail.get("Message-Id")) test_mails = [raw] # parse reply email_account = frappe.get_doc("Email Account", "_Test Email Account 1") email_account.receive(test_mails=test_mails) sent = frappe.get_doc("Communication", sent_name) comm = frappe.get_doc("Communication", {"sender": "*****@*****.**"}) self.assertEquals(comm.reference_doctype, sent.doctype) self.assertEquals(comm.reference_name, sent.name)