diff --git a/app/models/project.rb b/app/models/project.rb
index 0d2e612436a840cc5d52edaba178dcf543a60c6b..822d6489112f54a7d3be87b3c0a9df1587c1c310 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -528,6 +528,11 @@ class Project < ActiveRecord::Base
     web_url.split('://')[1]
   end
 
+  def new_issue_address(author)
+    Gitlab::IncomingEmail.reply_address(
+      "#{path_with_namespace}+#{author.authentication_token}")
+  end
+
   def build_commit_note(commit)
     notes.new(commit_id: commit.id, noteable_type: 'Commit')
   end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
index 30aa2b70c8d343b291facb3cc7de6faf4ed76112..407efc9f966b14b70badab3965b4f45f63f91032 100644
--- a/spec/models/project_spec.rb
+++ b/spec/models/project_spec.rb
@@ -129,6 +129,22 @@ describe Project, models: true do
     end
   end
 
+  describe "#new_issue_address" do
+    before do
+      stub_incoming_email_setting(address: "p+%{key}@gl.ab")
+    end
+
+    let(:project) { create(:empty_project, path: "somewhere") }
+    let(:user) { create(:user) }
+
+    it 'returns the address to create a new issue' do
+      token = user.authentication_token
+      address = "p+#{project.namespace.path}/#{project.path}+#{token}@gl.ab"
+
+      expect(project.new_issue_address(user)).to eq(address)
+    end
+  end
+
   describe 'last_activity methods' do
     let(:project) { create(:project) }
     let(:last_event) { double(created_at: Time.now) }