diff --git a/packages/rocketchat-lib/server/functions/sendMessage.coffee b/packages/rocketchat-lib/server/functions/sendMessage.coffee
index ab08cce7a41715130a546c864a82e9a5eb604702..5d09b1ab59cd1a95d40304e12d956435bfd5db94 100644
--- a/packages/rocketchat-lib/server/functions/sendMessage.coffee
+++ b/packages/rocketchat-lib/server/functions/sendMessage.coffee
@@ -50,7 +50,7 @@ RocketChat.sendMessage = (user, message, room, options) ->
 			###
 			RocketChat.models.Subscriptions.incUnreadOfDirectForRoomIdExcludingUserId message.rid, message.u._id, 1
 
-			userOfMention = RocketChat.models.Users.findOne({_id: message.rid.replace(message.u._id, '')}, {fields: {username: 1, statusConnection: 1, status: 1, emails: 1}})
+			userOfMention = RocketChat.models.Users.findOne({_id: message.rid.replace(message.u._id, '')}, {fields: {username: 1, statusConnection: 1, status: 1, emails: 1, settings: 1}})
 			if userOfMention?
 				RocketChat.Notifications.notifyUser userOfMention._id, 'notification',
 					title: "@#{user.username}"
@@ -79,7 +79,7 @@ RocketChat.sendMessage = (user, message, room, options) ->
 						query:
 							userId: userOfMention._id
 
-				if userOfMention.status is 'offline'
+				if userOfMention.status is 'offline' and userOfMention.settings?.preferences?.emailNotificationMode is true
 					Email.send
 						to: userOfMention.emails[0].address
 						from: RocketChat.settings.get('From_Email')
@@ -95,7 +95,7 @@ RocketChat.sendMessage = (user, message, room, options) ->
 			toAll = mentionIds.indexOf('all') > -1
 
 			if mentionIds.length > 0
-				usersOfMention = RocketChat.models.Users.find({_id: {$in: mentionIds}}, {fields: {_id: 1, username: 1, status: 1, emails: 1}}).fetch()
+				usersOfMention = RocketChat.models.Users.find({_id: {$in: mentionIds}}, {fields: {_id: 1, username: 1, status: 1, emails: 1, settings: 1}}).fetch()
 
 				if room.t is 'c' and !toAll
 					for usersOfMentionItem in usersOfMention
@@ -119,21 +119,21 @@ RocketChat.sendMessage = (user, message, room, options) ->
 				userIdsToPushNotify = userIdsToNotify
 
 				offlineMentionsRoom = _.filter usersOfMention, (user) ->
-					user.status is 'offline'
+					user.status is 'offline' and user.settings?.preferences?.emailNotificationMode is true
 
 				# If the message is @all, notify all room users except for the sender.
 				if toAll and room.usernames?.length > 0
 					usersOfRoom = RocketChat.models.Users.find({
 							username: {$in: room.usernames},
 							_id: {$ne: user._id}},
-						{fields: {_id: 1, username: 1, status: 1, emails: 1}})
+						{fields: {_id: 1, username: 1, status: 1, emails: 1, settings: 1}})
 						.fetch()
 					onlineUsersOfRoom = _.filter usersOfRoom, (user) ->
 						user.status in ['online', 'away', 'busy']
 					userIdsToNotify = _.union userIdsToNotify, _.pluck(onlineUsersOfRoom, '_id')
 					userIdsToPushNotify = _.union userIdsToPushNotify, _.pluck(usersOfRoom, '_id')
 					offlineMentionsRoom = _.filter usersOfRoom, (user) ->
-						user.status is 'offline'
+						user.status is 'offline' and user.settings?.preferences?.emailNotificationMode is true
 
 				if userIdsToNotify.length > 0
 					for usersOfMentionId in userIdsToNotify
diff --git a/packages/rocketchat-ui-account/account/accountPreferences.coffee b/packages/rocketchat-ui-account/account/accountPreferences.coffee
index d8171ec2f97f8fc30cfeade5aaabe39b43e29e7e..6021d28a4b6c9993b16aafe61e0c4c608561c25b 100644
--- a/packages/rocketchat-ui-account/account/accountPreferences.coffee
+++ b/packages/rocketchat-ui-account/account/accountPreferences.coffee
@@ -42,6 +42,7 @@ Template.accountPreferences.onCreated ->
 		data.compactView = $('input[name=compactView]:checked').val()
 		data.unreadRoomsMode = $('input[name=unreadRoomsMode]:checked').val()
 		data.autoImageLoad = $('input[name=autoImageLoad]:checked').val()
+		data.emailNotificationMode = $('input[name=emailNotificationMode]:checked').val()
 
 		Meteor.call 'saveUserPreferences', data, (error, results) ->
 			if results
diff --git a/packages/rocketchat-ui-account/account/accountPreferences.html b/packages/rocketchat-ui-account/account/accountPreferences.html
index 331a1764cd28c02609e2c230dacdfa9c9c6b58ba..6e4bc3ccf90b4d92638a7310acd7da28120e1a01 100644
--- a/packages/rocketchat-ui-account/account/accountPreferences.html
+++ b/packages/rocketchat-ui-account/account/accountPreferences.html
@@ -68,6 +68,13 @@
 									<label><input type="radio" name="unreadRoomsMode" value="0" checked="{{checked 'unreadRoomsMode' false true}}" /> {{_ "False"}}</label>
 								</div>
 							</div>
+							<div class="input-line double-col" id="emailNotificationMode">
+								<label>{{_ "Email_Notification_Mode"}}</label>
+								<div>
+									<label><input type="radio" name="emailNotificationMode" value="1" checked="{{checked 'emailNotificationMode' true true}}" /> {{_ "True"}}</label>
+									<label><input type="radio" name="emailNotificationMode" value="0" checked="{{checked 'emailNotificationMode' false}}" /> {{_ "False"}}</label>
+								</div>
+							</div>
 						</div>
 					</div>
 					<div class="section">
diff --git a/server/methods/saveUserPreferences.coffee b/server/methods/saveUserPreferences.coffee
index 39da131efdbf58e2f71470af26eee20108d2c45a..63bf71e570b81ca33ac640f9fb84999882cfc380 100644
--- a/server/methods/saveUserPreferences.coffee
+++ b/server/methods/saveUserPreferences.coffee
@@ -27,6 +27,9 @@ Meteor.methods
 			if settings.autoImageLoad?
 				preferences.autoImageLoad = if settings.autoImageLoad is "1" then true else false
 
+			if settings.emailNotificationMode?
+				preferences.emailNotificationMode = if settings.emailNotificationMode is "1" then true else false
+
 			RocketChat.models.Users.setPreferences Meteor.userId(), preferences
 
 			return true