diff --git a/pkg/userstore/mail.go b/pkg/userstore/mail.go
index 6d5db3b..cbb7cbd 100644
--- a/pkg/userstore/mail.go
+++ b/pkg/userstore/mail.go
@@ -34,3 +34,15 @@ func (s Store) MailCheckExists(email string) (bool, error) {
 
 	return false, nil
 }
+
+func (s Store) MailRemove(email string) error {
+	query := "DELETE FROM mail WHERE mail = ?"
+	log := s.log.With().Str("func", "MailRemove").Str("email", email).Str("query", query).Logger()
+
+	_, err := s.db.Exec(query, email)
+	if err != nil {
+		return utils.WrapError(ErrCantExecuteQuery, err, log)
+	}
+
+	return nil
+}
diff --git a/pkg/userstore/mail_test.go b/pkg/userstore/mail_test.go
index 000b1ac..5aec46e 100644
--- a/pkg/userstore/mail_test.go
+++ b/pkg/userstore/mail_test.go
@@ -97,3 +97,28 @@ func TestAddMail(t *testing.T) {
 		})
 	}
 }
+
+func TestDeleteMail(t *testing.T) {
+	store, err := NewDummyStore()
+	assert.Nil(t, err, "[setup] should be abel to create dummystore")
+
+	_, err = store.UserWrite("kekskurse", "kekskurse")
+	assert.Nil(t, err, "[setup] should be abel to store user")
+
+	err = store.MailAdd("mail1@example.com", 1, true)
+	assert.Nil(t, err, "[setup] should be abel to store mail")
+	err = store.MailAdd("mail2@example.com", 1, false)
+	assert.Nil(t, err, "[setup] should be abel to store mail2")
+
+	var count int
+	err = store.db.QueryRow("SELECT COUNT(*) FROM mail").Scan(&count)
+	assert.Nil(t, err, "should execute count query for mail")
+	assert.Equal(t, 2, count, "should found 2 mails in the database")
+
+	err = store.MailRemove("mail1@example.com")
+	assert.Nil(t, err, "should be abel to remove mail wthout error")
+
+	err = store.db.QueryRow("SELECT COUNT(*) FROM mail").Scan(&count)
+	assert.Nil(t, err, "should execute count query for mail")
+	assert.Equal(t, 1, count, "should found 1 mails in the database")
+}
diff --git a/pkg/userstore/users.go b/pkg/userstore/users.go
index 6a07cb2..ffac164 100644
--- a/pkg/userstore/users.go
+++ b/pkg/userstore/users.go
@@ -42,3 +42,15 @@ func (s Store) UserExists(username string) (bool, error) {
 
 	return true, nil
 }
+
+func (s Store) UserDelete(username string) error {
+	query := "DELETE FROM users WHERE username = ?"
+	log := s.log.With().Str("func", "UserExists").Str("query", query).Str("username", username).Logger()
+
+	_, err := s.db.Exec(query, username)
+	if err != nil {
+		return utils.WrapError(ErrCantExecuteQuery, err, log)
+	}
+
+	return nil
+}
diff --git a/pkg/userstore/users_test.go b/pkg/userstore/users_test.go
index 267548f..8e4c15f 100644
--- a/pkg/userstore/users_test.go
+++ b/pkg/userstore/users_test.go
@@ -84,3 +84,51 @@ func TestUserExists(t *testing.T) {
 	assert.Nil(t, err)
 	assert.True(t, exists)
 }
+
+func TestUserRemove(t *testing.T) {
+	store, err := NewDummyStore()
+	assert.Nil(t, err, "[setup] should get dummy store without error")
+
+	_, err = store.UserWrite("kekskurse", "kekskurse")
+	assert.Nil(t, err, "[setup] should be abel to create user")
+
+	_, err = store.UserWrite("kekskurse2", "kekskurse2")
+	assert.Nil(t, err, "[setup] should be abel to create user2")
+
+	var count int
+	err = store.db.QueryRow("SELECT COUNT(*) FROM users").Scan(&count)
+	assert.Nil(t, err, "should be abel to get user count without error")
+	assert.Equal(t, 2, count, "should found 2 users")
+
+	err = store.UserDelete("kekskurse2")
+	assert.Nil(t, err, "should be abel to delete user without error")
+
+	err = store.db.QueryRow("SELECT COUNT(*) FROM users").Scan(&count)
+	assert.Nil(t, err, "should be abel to get user count without error")
+	assert.Equal(t, 1, count, "should found 2 users")
+}
+
+func TestUserRemoveFaildMailExists(t *testing.T) {
+	store, err := NewDummyStore()
+	assert.Nil(t, err, "[setup] should get dummy store without error")
+
+	_, err = store.UserWrite("kekskurse", "kekskurse")
+	assert.Nil(t, err, "[setup] should be abel to create user")
+
+	id, err := store.UserWrite("kekskurse2", "kekskurse2")
+	assert.Nil(t, err, "[setup] should be abel to create user2")
+
+	err = store.MailAdd("foo@example.com", id, true)
+
+	var count int
+	err = store.db.QueryRow("SELECT COUNT(*) FROM users").Scan(&count)
+	assert.Nil(t, err, "should be abel to get user count without error")
+	assert.Equal(t, 2, count, "should found 2 users")
+
+	err = store.UserDelete("kekskurse2")
+	assert.Nil(t, err, "should be abel to delete user without error")
+
+	err = store.db.QueryRow("SELECT COUNT(*) FROM users").Scan(&count)
+	assert.Nil(t, err, "should be abel to get user count without error")
+	assert.Equal(t, 1, count, "should found 2 users")
+}