diff --git a/models/fixtures/user.yml b/models/fixtures/user.yml
index aa1d80d6f0..e8f13b93bd 100644
--- a/models/fixtures/user.yml
+++ b/models/fixtures/user.yml
@@ -9,7 +9,7 @@
   salt: salt
   is_admin: true
   avatar: avatar1
-  avatar_email: user2@example.com
+  avatar_email: user1@example.com
   num_repos: 0
 
 -
@@ -69,6 +69,7 @@
   avatar_email: user5@example.com
   num_repos: 1
   allow_create_organization: false
+  is_active: true
 
 -
   id: 6
@@ -99,3 +100,35 @@
   avatar_email: user7@example.com
   num_repos: 0
   num_members: 1
+
+-
+  id: 8
+  lower_name: user8
+  name: user8
+  full_name: User Eight
+  email: user8@example.com
+  passwd: password
+  type: 0 # user
+  salt: salt
+  is_admin: false
+  avatar: avatar8
+  avatar_email: user8@example.com
+  num_repos: 0
+  num_members: 1
+  is_active: true
+
+-
+  id: 9
+  lower_name: user9
+  name: user9
+  full_name: User Nine
+  email: user9@example.com
+  passwd: password
+  type: 0 # user
+  salt: salt
+  is_admin: false
+  avatar: avatar9
+  avatar_email: user9@example.com
+  num_repos: 0
+  num_members: 1
+  is_active: false
diff --git a/models/user.go b/models/user.go
index 306b695bf3..7d4f536242 100644
--- a/models/user.go
+++ b/models/user.go
@@ -537,6 +537,12 @@ func (u *User) ShortName(length int) string {
 	return base.EllipsisString(u.Name, length)
 }
 
+// IsMailable checks if a user is elegible
+// to receive emails.
+func (u *User) IsMailable() bool {
+	return u.IsActive
+}
+
 // IsUserExist checks if given user name exist,
 // the user name should be noncased unique.
 // If uid is presented, then check will rule out that one,
@@ -1047,7 +1053,9 @@ func GetUserEmailsByNames(names []string) []string {
 		if err != nil {
 			continue
 		}
-		mails = append(mails, u.Email)
+		if u.IsMailable() {
+			mails = append(mails, u.Email)
+		}
 	}
 	return mails
 }
diff --git a/models/user_test.go b/models/user_test.go
new file mode 100644
index 0000000000..fb3c46d223
--- /dev/null
+++ b/models/user_test.go
@@ -0,0 +1,19 @@
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package models
+
+import (
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestGetUserEmailsByNames(t *testing.T) {
+	assert.NoError(t, PrepareTestDatabase())
+
+	// ignore none active user email
+	assert.Equal(t, []string{"user8@example.com"}, GetUserEmailsByNames([]string{"user8", "user9"}))
+	assert.Equal(t, []string{"user8@example.com", "user5@example.com"}, GetUserEmailsByNames([]string{"user8", "user5"}))
+}