diff --git a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
index e2ee374..b02c22e 100644
--- a/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
+++ b/erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
@@ -101,7 +101,7 @@
 
 		frappe.sendmail(recipients=data.email_id, sender=sender, subject=subject,
 			message=frappe.get_template(template).render(args),
-			attachments = [frappe.attach_print('Request for Quotation', self.name)],as_bulk=True)
+			attachments = [frappe.attach_print('Request for Quotation', self.name)])
 		frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
 
 @frappe.whitelist()
diff --git a/erpnext/config/hr.py b/erpnext/config/hr.py
index eea65b8..110aea9 100644
--- a/erpnext/config/hr.py
+++ b/erpnext/config/hr.py
@@ -15,7 +15,7 @@
 					"type": "doctype",
 					"name": "Employee Attendance Tool",
 					"label": _("Employee Attendance Tool"),
-					"description":_("Mark Employee Attendance in Bulk"),
+					"description":_("Mark Attendance for multiple employees"),
 					"hide_count": True
 				},
 				{
diff --git a/erpnext/crm/doctype/newsletter/newsletter.py b/erpnext/crm/doctype/newsletter/newsletter.py
index be1235b..dbf7dde 100755
--- a/erpnext/crm/doctype/newsletter/newsletter.py
+++ b/erpnext/crm/doctype/newsletter/newsletter.py
@@ -7,23 +7,23 @@
 import frappe.utils
 from frappe import throw, _
 from frappe.model.document import Document
-from frappe.email.bulk import check_bulk_limit
+from frappe.email.queue import check_email_limit
 from frappe.utils.verified_command import get_signed_params, verify_request
 from frappe.utils.background_jobs import enqueue
 from frappe.utils.scheduler import log
-from frappe.email.bulk import send
+from frappe.email.queue import send
 from erpnext.crm.doctype.newsletter_list.newsletter_list import add_subscribers
 
 class Newsletter(Document):
 	def onload(self):
 		if self.email_sent:
 			self.get("__onload").status_count = dict(frappe.db.sql("""select status, count(name)
-				from `tabBulk Email` where reference_doctype=%s and reference_name=%s
+				from `tabEmail Queue` where reference_doctype=%s and reference_name=%s
 				group by status""", (self.doctype, self.name))) or None
 
 	def test_send(self, doctype="Lead"):
 		self.recipients = frappe.utils.split_emails(self.test_email_id)
-		self.send_bulk()
+		self.queue_all()
 		frappe.msgprint(_("Scheduled to send to {0}").format(self.test_email_id))
 
 	def send_emails(self):
@@ -40,13 +40,13 @@
 			enqueue(send_newsletter, queue='default', timeout=1500, event='send_newsletter', newsletter=self.name)
 
 		else:
-			self.send_bulk()
+			self.queue_all()
 
 		frappe.msgprint(_("Scheduled to send to {0} recipients").format(len(self.recipients)))
 
 		frappe.db.set(self, "email_sent", 1)
 
-	def send_bulk(self):
+	def queue_all(self):
 		if not self.get("recipients"):
 			# in case it is called via worker
 			self.recipients = self.get_recipients()
@@ -63,7 +63,7 @@
 			reference_doctype = self.doctype, reference_name = self.name,
 			unsubscribe_method = "/api/method/erpnext.crm.doctype.newsletter.newsletter.unsubscribe",
 			unsubscribe_params = {"name": self.newsletter_list},
-			bulk_priority = 0)
+			send_priority = 0)
 
 		if not frappe.flags.in_test:
 			frappe.db.auto_commit_on_many_writes = False
@@ -76,7 +76,7 @@
 	def validate_send(self):
 		if self.get("__islocal"):
 			throw(_("Please save the Newsletter before sending"))
-		check_bulk_limit(self.recipients)
+		check_email_limit(self.recipients)
 
 @frappe.whitelist()
 def get_lead_options():
@@ -144,7 +144,7 @@
 	<p><a href="{2}">{3}</a></p>
 	"""
 
-	frappe.sendmail(email, subject=_("Confirm Your Email"), content=content.format(*messages), bulk=True)
+	frappe.sendmail(email, subject=_("Confirm Your Email"), content=content.format(*messages))
 
 @frappe.whitelist(allow_guest=True)
 def confirm_subscription(email):
@@ -169,7 +169,7 @@
 def send_newsletter(newsletter):
 	try:
 		doc = frappe.get_doc("Newsletter", newsletter)
-		doc.send_bulk()
+		doc.queue_all()
 
 	except:
 		frappe.db.rollback()
diff --git a/erpnext/crm/doctype/newsletter/test_newsletter.py b/erpnext/crm/doctype/newsletter/test_newsletter.py
index 580982a..2019b65 100644
--- a/erpnext/crm/doctype/newsletter/test_newsletter.py
+++ b/erpnext/crm/doctype/newsletter/test_newsletter.py
@@ -22,7 +22,7 @@
 
 	def test_send(self):
 		self.send_newsletter()
-		self.assertEquals(len(frappe.get_all("Bulk Email")), 3)
+		self.assertEquals(len(frappe.get_all("Email Queue")), 3)
 
 	def test_unsubscribe(self):
 		# test unsubscribe
@@ -33,10 +33,10 @@
 		unsubscribe(email, "_Test Newsletter List")
 
 		self.send_newsletter()
-		self.assertEquals(len(frappe.get_all("Bulk Email")), 2)
+		self.assertEquals(len(frappe.get_all("Email Queue")), 2)
 
 	def send_newsletter(self):
-		frappe.db.sql("delete from `tabBulk Email`")
+		frappe.db.sql("delete from `tabEmail Queue`")
 		frappe.delete_doc("Newsletter", "_Test Newsletting")
 		newsletter = frappe.get_doc({
 			"doctype": "Newsletter",
diff --git a/erpnext/hr/doctype/employee/employee.py b/erpnext/hr/doctype/employee/employee.py
index 9e02baf..4919229 100755
--- a/erpnext/hr/doctype/employee/employee.py
+++ b/erpnext/hr/doctype/employee/employee.py
@@ -239,8 +239,7 @@
 			frappe.sendmail(recipients=filter(lambda u: u not in (e.company_email, e.personal_email, e.user_id), users),
 				subject=_("Birthday Reminder for {0}").format(e.employee_name),
 				message=_("""Today is {0}'s birthday!""").format(e.employee_name),
-				reply_to=e.company_email or e.personal_email or e.user_id,
-				bulk=True)
+				reply_to=e.company_email or e.personal_email or e.user_id)
 
 def get_employees_who_are_born_today():
 	"""Get Employee properties whose birthday is today."""
diff --git a/erpnext/hr/doctype/employee/test_employee.py b/erpnext/hr/doctype/employee/test_employee.py
index dbd510b..a2fed53 100644
--- a/erpnext/hr/doctype/employee/test_employee.py
+++ b/erpnext/hr/doctype/employee/test_employee.py
@@ -20,7 +20,7 @@
 
 		self.assertTrue(employee.name in [e.name for e in get_employees_who_are_born_today()])
 
-		frappe.db.sql("delete from `tabBulk Email`")
+		frappe.db.sql("delete from `tabEmail Queue`")
 
 		hr_settings = frappe.get_doc("HR Settings", "HR Settings")
 		hr_settings.stop_birthday_reminders = 0
@@ -28,7 +28,7 @@
 
 		send_birthday_reminders()
 
-		bulk_mails = frappe.db.sql("""select * from `tabBulk Email`""", as_dict=True)
+		email_queue = frappe.db.sql("""select * from `tabEmail Queue`""", as_dict=True)
 		self.assertTrue("Subject: Birthday Reminder for {0}".format(employee.employee_name) \
-			in bulk_mails[0].message)
+			in email_queue[0].message)
 
diff --git a/erpnext/hr/doctype/salary_slip/salary_slip.py b/erpnext/hr/doctype/salary_slip/salary_slip.py
index 0c1f8c8..d1fac25 100644
--- a/erpnext/hr/doctype/salary_slip/salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/salary_slip.py
@@ -214,7 +214,6 @@
 		if receiver:
 			subj = 'Salary Slip - ' + cstr(self.month) +'/'+cstr(self.fiscal_year)
 			frappe.sendmail([receiver], subject=subj, message = _("Please see attachment"),
-				attachments=[frappe.attach_print(self.doctype, self.name, file_name=self.name)], 
-				bulk=True, reference_doctype= self.doctype, reference_name= self.name)
+				attachments=[frappe.attach_print(self.doctype, self.name, file_name=self.name)], reference_doctype= self.doctype, reference_name= self.name)
 		else:
 			msgprint(_("{0}: Employee email not found, hence email not sent").format(self.employee_name))
diff --git a/erpnext/hr/doctype/salary_slip/test_salary_slip.py b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
index 106b8a2..4ddaecc 100644
--- a/erpnext/hr/doctype/salary_slip/test_salary_slip.py
+++ b/erpnext/hr/doctype/salary_slip/test_salary_slip.py
@@ -96,19 +96,19 @@
 
 		frappe.set_user("test_employee@example.com")
 		self.assertTrue(salary_slip_test_employee.has_permission("read"))
-		
+
 	def test_email_salary_slip(self):
-		frappe.db.sql("delete from `tabBulk Email`")
+		frappe.db.sql("delete from `tabEmail Queue`")
 
 		hr_settings = frappe.get_doc("HR Settings", "HR Settings")
 		hr_settings.email_salary_slip_to_employee = 1
 		hr_settings.save()
-		
+
 		self.make_employee("test_employee@example.com")
 		self.make_employee_salary_slip("test_employee@example.com")
-		bulk_mails = frappe.db.sql("""select name from `tabBulk Email`""")
-		self.assertTrue(bulk_mails)
-		
+		email_queue = frappe.db.sql("""select name from `tabEmail Queue`""")
+		self.assertTrue(email_queue)
+
 
 	def make_employee(self, user):
 		if not frappe.db.get_value("User", user):
diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py
index e7f5b7a..65b19b0 100644
--- a/erpnext/projects/doctype/project/project.py
+++ b/erpnext/projects/doctype/project/project.py
@@ -144,7 +144,7 @@
 
 		for user in self.users:
 			if user.welcome_email_sent==0:
-				frappe.sendmail(user.user, subject=_("Project Collaboration Invitation"), content=content.format(*messages), bulk=True)
+				frappe.sendmail(user.user, subject=_("Project Collaboration Invitation"), content=content.format(*messages))
 				user.welcome_email_sent=1
 
 
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index 2053fc0..4f70cd8 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -60,7 +60,6 @@
 						recipients=user_id,
 						subject="{frequency} Digest".format(frequency=self.frequency),
 						message=msg_for_this_receipient,
-						bulk=True,
 						reference_doctype = self.doctype,
 						reference_name = self.name,
 						unsubscribe_message = _("Unsubscribe from this Email Digest"))
