Defect #30785 » 30785-fix-v2.patch
app/models/mail_handler.rb | ||
---|---|---|
91 | 91 |
@handler_options = options |
92 | 92 |
sender_email = email.from.to_a.first.to_s.strip |
93 | 93 |
# Ignore emails received from the application emission address to avoid hell cycles |
94 |
if sender_email.casecmp(Setting.mail_from.to_s.strip) == 0 |
|
94 |
emission_address = Setting.mail_from.to_s.gsub(/(?:.*<|>.*|\(.*\))/, '').strip |
|
95 |
if sender_email.casecmp(emission_address) == 0 |
|
95 | 96 |
if logger |
96 | 97 |
logger.info "MailHandler: ignoring email from Redmine emission address [#{sender_email}]" |
97 | 98 |
end |
test/unit/mail_handler_test.rb | ||
---|---|---|
765 | 765 |
end |
766 | 766 | |
767 | 767 |
def test_should_ignore_emails_from_emission_address |
768 |
emission_addresses = [ |
|
769 |
'redmine@example.net', |
|
770 |
'Redmine <redmine@example.net>', |
|
771 |
'redmine@example.net (Redmine)' |
|
772 |
] |
|
768 | 773 |
Role.anonymous.add_permission!(:add_issues) |
769 |
assert_no_difference 'User.count' do |
|
770 |
assert_equal false, |
|
771 |
submit_email( |
|
772 |
'ticket_from_emission_address.eml', |
|
773 |
:issue => {:project => 'ecookbook'}, |
|
774 |
:unknown_user => 'create' |
|
775 |
) |
|
774 |
emission_addresses.each do |addr| |
|
775 |
with_settings :mail_from => addr do |
|
776 |
assert_no_difference 'User.count' do |
|
777 |
assert_equal false, |
|
778 |
submit_email( |
|
779 |
'ticket_from_emission_address.eml', |
|
780 |
:issue => {:project => 'ecookbook'}, |
|
781 |
:unknown_user => 'create' |
|
782 |
) |
|
783 |
end |
|
784 |
end |
|
776 | 785 |
end |
777 | 786 |
end |
778 | 787 |
- « Previous
- 1
- 2
- Next »