module MailReceiver::ReplyTo
Public Instance Methods
mail_answer_thread(model, headers = {}, &block)
click to toggle source
# File lib/mail-receiver/reply_to.rb, line 13 def mail_answer_thread(model, headers = {}, &block) if headers[:subject] headers[:subject].prepend('Re: ') end # Mail receiver headers[:reply_to] = reply_to_address(model) mail(headers, &block) end
mail_new_thread(model, headers = {}, &block)
click to toggle source
# File lib/mail-receiver/reply_to.rb, line 6 def mail_new_thread(model, headers = {}, &block) # Mail receiver headers[:reply_to] = reply_to_address(model) mail(headers, &block) end
Protected Instance Methods
convert_able(model)
click to toggle source
# File lib/mail-receiver/reply_to.rb, line 42 def convert_able(model) if %W(Issue MergeRequest).index(model.class.name) == -1 return nil end res = { id: model.iid } if defined?(@note) # gitlab/app/mailers/emails/notes.rb 里面会声明 @note res.merge!({ n: @note.id }) end if model.class.name == 'Issue' res.merge!({ t: 'i' }) return res end if model.class.name == 'MergeRequest' res.merge!({ t: 'm' }) return res end return nil end
default_email_reply_to()
click to toggle source
# File lib/mail-receiver/reply_to.rb, line 38 def default_email_reply_to Gitlab.config.gitlab.email_reply_to end
reply_to_address(model)
click to toggle source
# File lib/mail-receiver/reply_to.rb, line 25 def reply_to_address(model) hash = convert_able(model) return default_email_reply_to if hash.blank? return default_email_reply_to if @project.blank? hash.merge!({ p: @project.path_with_namespace }) suffix = Encoder.encode(hash) Mailman.config.sender.sub('@', "+#{suffix}@") end