mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 11:03:40 +08:00
DEV: Fix SMTP bounce regexp (#16019)
Never trust me with regexp. Follow up to
01ef1d08fc
,
which did not take into account codes in
the format X.X.XX (with the 2 digits on the end)
This commit is contained in:
parent
685d186351
commit
fa0c796baf
|
@ -15,7 +15,7 @@ class EmailLog < ActiveRecord::Base
|
|||
}
|
||||
|
||||
# cf. https://www.iana.org/assignments/smtp-enhanced-status-codes/smtp-enhanced-status-codes.xhtml
|
||||
SMTP_ERROR_CODE_REGEXP = Regexp.new(/\d\.\d\.\d|\d\d\d/).freeze
|
||||
SMTP_ERROR_CODE_REGEXP = Regexp.new(/\d\.\d\.\d+|\d{3}/).freeze
|
||||
|
||||
belongs_to :user
|
||||
belongs_to :post
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#
|
||||
class ConformBounceErrorCode < ActiveRecord::Migration[6.1]
|
||||
def up
|
||||
DB.exec(<<~SQL, regexp: '\d\.\d\.\d|\d\d\d')
|
||||
DB.exec(<<~SQL, regexp: '\d\.\d\.\d+|\d{3}')
|
||||
UPDATE email_logs
|
||||
SET bounce_error_code = (
|
||||
SELECT array_to_string(
|
||||
|
|
|
@ -168,6 +168,8 @@ describe EmailLog do
|
|||
it "makes sure the bounce_error_code is in the format X.X.X or XXX" do
|
||||
email_log.update!(bounce_error_code: "5.1.1")
|
||||
expect(email_log.reload.bounce_error_code).to eq("5.1.1")
|
||||
email_log.update!(bounce_error_code: "5.2.23")
|
||||
expect(email_log.reload.bounce_error_code).to eq("5.2.23")
|
||||
email_log.update!(bounce_error_code: "5.0.0 (permanent failure)")
|
||||
expect(email_log.reload.bounce_error_code).to eq("5.0.0")
|
||||
email_log.update!(bounce_error_code: "422")
|
||||
|
|
Loading…
Reference in New Issue
Block a user