sisimai 4.25.8 → 4.25.9

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sisimai might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a97d3034cddf47a54f0970f324fde0b8574f19a11fd29fd85e11ecad9753f5f3
4
- data.tar.gz: d60fd6b598d277b852f26ee42e483a4ffce7d946f6beefa374fe9aaeef6485a0
3
+ metadata.gz: 225f65e4f6104d3dabbdd50eb6882b5e9c40ab335cda2ba49014ba3d04fa7ed3
4
+ data.tar.gz: a484a4d9b98000743fcf583afb4f4c47e4828c7a0dd7892d41b236ff0861807d
5
5
  SHA512:
6
- metadata.gz: f569792981be8ffcf27846db477b98f814914fed55841d994b16843a668025926e737c7cf8b1ae5287049184714dddee99c0d7e2538f2de5e44ba35ab92f402c
7
- data.tar.gz: cf079e53450f827e7c5e104a64a8abe75d8deba09be822f1cc178e85548abbd7829bc23f74f0a6ae361b331e2ebac07f705c207c9885a115bbcee1b7b125b2c7
6
+ metadata.gz: 6311de5fc2ba1e9968b6ab83b9e78fd5505c4d39bfe7641a122ac69d2c26ac77ee41ec90ba13c6dbb130f66b7af600c07778a42263765ddfe165ed5b92b692ad
7
+ data.tar.gz: 04c8779ffa5b03ff564cd671e40c50ea9342adc19e47ff77e4942e201b730fffbc9d5a41299c2717e1b479e3403d6c7644d6830014a99cc49ef5cf5bf822a87d
@@ -61,4 +61,4 @@ RFC3464 .......... 151/0322 0.4689 Fallback Module for MTAs
61
61
  RFC3834 .......... 0/0014 0.0000 Detector for auto replied message
62
62
  --------------------------------------------------------------------------------
63
63
  bounceHammer 1523/2635 0.5779
64
- Sisimai 4.25.6 2635/2635 1.0000
64
+ Sisimai 4.25.8 2635/2635 1.0000
@@ -3,6 +3,18 @@ RELEASE NOTES for Ruby version of Sisimai
3
3
  - releases: "https://github.com/sisimai/rb-sisimai/releases"
4
4
  - download: "https://rubygems.org/gems/sisimai"
5
5
 
6
+ v4.25.9
7
+ --------------------------------------------------------------------------------
8
+ - release: "Sat, 3 Oct 2020 22:00:00 +0900 (JST)"
9
+ - version: ""
10
+ - changes:
11
+ - Suppress warning messages on Ruby 2.7. Thanks to @koic
12
+ - Suppress keyword argument warnings in Ruby 2.7 #200
13
+ - Suppress a Ruby warning for `Object#=~` and bug fix to match patterns #201
14
+ - #203 Replace `.+` with `[^ ]` on some large regular expressions for serious
15
+ performance reason.
16
+ - #204 Suport Null MX (RFC7505) on Sendmail sisimai/set-of-emails#4
17
+
6
18
  v4.25.8
7
19
  --------------------------------------------------------------------------------
8
20
  - release: "Fri, 17 Jul 2020 11:59:49 +0900 (JST)"
@@ -53,7 +53,7 @@ Key features
53
53
  * git clone & make
54
54
  * __高い解析精度__
55
55
  * 解析精度はbounceHammerの2倍
56
- * 66種類のMTA/MDA/ESPに対応
56
+ * 68種類のMTA/MDA/ESPに対応
57
57
  * Feedback Loopにも対応
58
58
  * 29種類のエラー理由を検出
59
59
 
@@ -220,8 +220,8 @@ Differences between Ruby version and Perl version
220
220
  | メール解析速度(1000通のメール) | 2.22秒[2] | 1.35秒 |
221
221
  | インストール方法 | gem install | cpanm, cpm |
222
222
  | 依存モジュール数(コアモジュールを除く) | 1モジュール | 2モジュール |
223
- | LOC:ソースコードの行数 | 10200行 | 10400行 |
224
- | テスト件数(spec/,t/,xt/ディレクトリ) | 236000件 | 266000件 |
223
+ | LOC:ソースコードの行数 | 10300行 | 10500行 |
224
+ | テスト件数(spec/,t/,xt/ディレクトリ) | 236000件 | 265000件 |
225
225
  | ライセンス | 二条項BSD | 二条項BSD |
226
226
  | 開発会社によるサポート契約 | 提供中 | 提供中 |
227
227
 
data/README.md CHANGED
@@ -52,7 +52,7 @@ Key Features
52
52
  * git clone & make
53
53
  * __High Precision of Analysis__
54
54
  * 2 times higher than bounceHammer
55
- * Support 66 MTAs/MDAs/ESPs
55
+ * Support 68 MTAs/MDAs/ESPs
56
56
  * Support Feedback Loop Message(ARF)
57
57
  * Can detect 29 error reasons
58
58
 
@@ -225,8 +225,8 @@ and bounceHammer are available at
225
225
  | The speed of parsing email(1000 emails) | 2.22s[2] | 1.35s |
226
226
  | How to install | gem install | cpanm, cpm |
227
227
  | Dependencies (Except core modules) | 1 module | 2 modules |
228
- | LOC:Source lines of code | 10200 lines | 10400 lines |
229
- | The number of tests(spec/,t/,xt/) directory | 236000 tests | 266000 tests |
228
+ | LOC:Source lines of code | 10300 lines | 10500 lines |
229
+ | The number of tests(spec/,t/,xt/) directory | 236000 tests | 265000 tests |
230
230
  | License | BSD 2-Clause | BSD 2-Clause |
231
231
  | Support Contract provided by Developer | Available | Available |
232
232
 
@@ -31,11 +31,11 @@ module Sisimai
31
31
  while r = mail.data.read do
32
32
  # Read and parse each email file
33
33
  methodargv = { data: r, hook: argv1[:hook] }
34
- mesg = Sisimai::Message.new(methodargv)
34
+ mesg = Sisimai::Message.new(**methodargv)
35
35
  next if mesg.void
36
36
 
37
37
  methodargv = { data: mesg, delivered: argv1[:delivered], origin: mail.data.path }
38
- next unless data = Sisimai::Data.make(methodargv)
38
+ next unless data = Sisimai::Data.make(**methodargv)
39
39
  list += data unless data.empty?
40
40
  end
41
41
 
@@ -54,7 +54,7 @@ module Sisimai
54
54
  def dump(argv0, **argv1)
55
55
  return nil unless argv0
56
56
 
57
- nyaan = Sisimai.make(argv0, argv1) || []
57
+ nyaan = Sisimai.make(argv0, **argv1) || []
58
58
  if RUBY_PLATFORM.start_with?('java')
59
59
  # java-based ruby environment like JRuby.
60
60
  require 'jrjackson'
@@ -17,12 +17,14 @@ module Sisimai
17
17
  StartingOf = { rfc822: ['Content-Type: message/rfc822', 'Content-Type: text/rfc822-headers'] }.freeze
18
18
  MarkingsOf = {
19
19
  message: %r{\A(?>
20
- [Tt]his[ ]is[ ].+[ ]email[ ]abuse[ ]report
21
- |[Tt]his[ ]is[ ](?:
22
- an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
23
- |an?[ ].+[ ]report[ ]for
24
- |a[ ].+[ ]authentication[ -]failure[ ]report[ ]for
25
- )
20
+ [Tt]his[ ]is[ ]a[ ][^ ]+[ ]email[ ]abuse[ ]report
21
+ |[Tt]his[ ]is[ ]an[ ]email[ ]abuse[ ]report
22
+ |[Tt]his[ ]is[ ](?:
23
+ a[ ][^ ]+[ ]authentication[ -]failure[ ]report
24
+ |an[ ]authentication[ -]failure[ ]report
25
+ |an[ ]autogenerated[ ]email[ ]abuse[ ]complaint
26
+ |an?[ ][^ ]+[ ]report[ ]for
27
+ )
26
28
  )
27
29
  }x,
28
30
  }.freeze
@@ -24,7 +24,7 @@ module Sisimai::Lhost
24
24
  error: %r/ ((?:RESOLVER|QUEUE)[.][A-Za-z]+(?:[.]\w+)?);/,
25
25
  rhost: %r{\A(?:
26
26
  Generating[ ]server # en-US
27
- |Serveur[ ]de[ ]g.+ration[ ] # fr-FR/Serveur de génération
27
+ |Serveur[ ]de[ ]g[^ ]+ration[ ] # fr-FR/Serveur de génération
28
28
  |Server[ ]di[ ]generazione # it-CH
29
29
  ):[ ]?(.*)
30
30
  }x,
@@ -12,7 +12,7 @@ module Sisimai::Lhost
12
12
  # deliver.c:6425| else fprintf(f,
13
13
  # deliver.c:6426|"------ This is a copy of the message's headers. ------\n");
14
14
  ReBackbone = %r{^(?:
15
- [-]+[ ]This[ ]is[ ]a[ ]copy[ ]of[ ](?:the|your)[ ]message.+?headers[.][ ][-]+
15
+ [-]+[ ]This[ ]is[ ]a[ ]copy[ ]of[ ](?:the|your)[ ]message,[ ]including[ ]all[ ]the[ ]headers[.][ ][-]+
16
16
  |Content-Type:[ ]*message/rfc822\n(?:[\s\t]+.*?\n\n)?
17
17
  )
18
18
  }x.freeze
@@ -36,13 +36,13 @@ module Sisimai::Lhost
36
36
  # deliver.c:6305|"address(es) failed:\n", sender_address);
37
37
  # deliver.c:6306| }
38
38
  alias: %r/\A([ ]+an undisclosed address)\z/,
39
- frozen: %r/\AMessage .+ (?:has been frozen|was frozen on arrival)/,
39
+ frozen: %r/\AMessage [^ ]+ (?:has been frozen|was frozen on arrival)/,
40
40
  message: %r{\A(?>
41
41
  This[ ]message[ ]was[ ]created[ ]automatically[ ]by[ ]mail[ ]delivery[ ]software[.]
42
42
  |A[ ]message[ ]that[ ]you[ ]sent[ ]was[ ]rejected[ ]by[ ]the[ ]local[ ]scanning[ ]code
43
43
  |A[ ]message[ ]that[ ]you[ ]sent[ ]contained[ ]one[ ]or[ ]more[ ]recipient[ ]addresses[ ]
44
- |Message[ ].+[ ](?:has[ ]been[ ]frozen|was[ ]frozen[ ]on[ ]arrival)
45
- |The[ ].+[ ]router[ ]encountered[ ]the[ ]following[ ]error[(]s[)]:
44
+ |Message[ ][^ ]+[ ](?:has[ ]been[ ]frozen|was[ ]frozen[ ]on[ ]arrival)
45
+ |The[ ][^ ]+[ ]router[ ]encountered[ ]the[ ]following[ ]error[(]s[)]:
46
46
  )
47
47
  }x,
48
48
  }.freeze
@@ -134,7 +134,7 @@ module Sisimai::Lhost
134
134
  match += 1 if mhead['message-id'].to_s =~ %r/\A[<]\w{7}[-]\w{6}[-]\w{2}[@]/
135
135
  match += 1 if mhead['subject'] =~ %r{(?:
136
136
  Mail[ ]delivery[ ]failed(:[ ]returning[ ]message[ ]to[ ]sender)?
137
- |Warning:[ ]message[ ].+[ ]delayed[ ]+
137
+ |Warning:[ ]message[ ][^ ]+[ ]delayed[ ]+
138
138
  |Delivery[ ]Status[ ]Notification
139
139
  |Mail[ ]failure
140
140
  |Message[ ]frozen
@@ -275,7 +275,7 @@ module Sisimai::Lhost
275
275
  else
276
276
  # Error message when email address above does not include '@'
277
277
  # and domain part.
278
- if e =~ %r<\A[ ]+pipe[ ]to[ ][|]/.+>
278
+ if e =~ %r<\A[ ]+pipe[ ]to[ ][|]/[^ ]+>
279
279
  # pipe to |/path/to/prog ...
280
280
  # generated by kijitora@example.com
281
281
  v['diagnosis'] = e
@@ -125,7 +125,7 @@ module Sisimai::Lhost
125
125
  v['command'] = cv[1]
126
126
  else
127
127
  # Check error message
128
- if rxmessages.any? { |a| e =~ a }
128
+ if rxmessages.any? { |messages| messages.any? { |message| e =~ message } }
129
129
  # Check with regular expressions of each error
130
130
  v['diagnosis'] ||= ''
131
131
  v['diagnosis'] << ' ' << e
@@ -85,7 +85,7 @@ module Sisimai::Lhost
85
85
  match += 1 if mhead['from'].start_with?('Mail Delivery System')
86
86
  match += 1 if mhead['subject'] =~ %r{(?:
87
87
  Mail[ ]delivery[ ]failed(:[ ]returning[ ]message[ ]to[ ]sender)?
88
- |Warning:[ ]message[ ].+[ ]delayed[ ]+
88
+ |Warning:[ ]message[ ][^ ]+[ ]delayed[ ]+
89
89
  |Delivery[ ]Status[ ]Notification
90
90
  )
91
91
  }x
@@ -23,29 +23,29 @@ module Sisimai::Lhost
23
23
  ReSMTP = {
24
24
  # Error text regular expressions which defined in qmail-remote.c
25
25
  # qmail-remote.c:225| if (smtpcode() != 220) quit("ZConnected to "," but greeting failed");
26
- 'conn' => %r/(?:Error:)?Connected to .+ but greeting failed[.]/,
26
+ 'conn' => %r/(?:Error:)?Connected to [^ ]+ but greeting failed[.]/,
27
27
  # qmail-remote.c:231| if (smtpcode() != 250) quit("ZConnected to "," but my name was rejected");
28
- 'ehlo' => %r/(?:Error:)?Connected to .+ but my name was rejected[.]/,
28
+ 'ehlo' => %r/(?:Error:)?Connected to [^ ]+ but my name was rejected[.]/,
29
29
  # qmail-remote.c:238| if (code >= 500) quit("DConnected to "," but sender was rejected");
30
30
  # reason = rejected
31
- 'mail' => %r/(?:Error:)?Connected to .+ but sender was rejected[.]/,
31
+ 'mail' => %r/(?:Error:)?Connected to [^ ]+ but sender was rejected[.]/,
32
32
  # qmail-remote.c:249| out("h"); outhost(); out(" does not like recipient.\n");
33
33
  # qmail-remote.c:253| out("s"); outhost(); out(" does not like recipient.\n");
34
34
  # reason = userunknown
35
- 'rcpt' => %r/(?:Error:)?.+ does not like recipient[.]/,
35
+ 'rcpt' => %r/(?:Error:)?[^ ]+ does not like recipient[.]/,
36
36
  # qmail-remote.c:265| if (code >= 500) quit("D"," failed on DATA command");
37
37
  # qmail-remote.c:266| if (code >= 400) quit("Z"," failed on DATA command");
38
38
  # qmail-remote.c:271| if (code >= 500) quit("D"," failed after I sent the message");
39
39
  # qmail-remote.c:272| if (code >= 400) quit("Z"," failed after I sent the message");
40
40
  'data' => %r{(?:
41
- (?:Error:)?.+[ ]failed[ ]on[ ]DATA[ ]command[.]
42
- |(?:Error:)?.+[ ]failed[ ]after[ ]I[ ]sent[ ]the[ ]message[.]
41
+ (?:Error:)?[^ ]+[ ]failed[ ]on[ ]DATA[ ]command[.]
42
+ |(?:Error:)?[^ ]+[ ]failed[ ]after[ ]I[ ]sent[ ]the[ ]message[.]
43
43
  )
44
44
  }x,
45
45
  }.freeze
46
46
  # qmail-remote.c:261| if (!flagbother) quit("DGiving up on ","");
47
47
  ReHost = %r{(?:
48
- Giving[ ]up[ ]on[ ](.+[0-9a-zA-Z])[.]?\z
48
+ Giving[ ]up[ ]on[ ]([^ ]+[0-9a-zA-Z])[.]?\z
49
49
  |Connected[ ]to[ ]([-0-9a-zA-Z.]+[0-9a-zA-Z])[ ]
50
50
  |remote[ ]host[ ]([-0-9a-zA-Z.]+[0-9a-zA-Z])[ ]said:
51
51
  )
@@ -184,7 +184,7 @@ module Sisimai::Lhost
184
184
 
185
185
  if anotherset['status']
186
186
  # Check alternative status code
187
- if e['status'].empty? || e['status'] !~ /\A[45][.]\d[.]\d\z/
187
+ if e['status'].empty? || e['status'] !~ /\A[45][.]\d[.]\d{1,3}\z/
188
188
  # Override alternative status code
189
189
  e['status'] = anotherset['status']
190
190
  end
@@ -19,7 +19,7 @@ module Sisimai::Lhost
19
19
  # Characters: K,Z,D in qmail-qmqpc.c, qmail-send.c, qmail-rspawn.c
20
20
  # K = success, Z = temporary error, D = permanent error
21
21
  message: %r{\A(?>
22
- He/Her[ ]is[ ]not.+[ ]user
22
+ He/Her[ ]is[ ]not[ ].+[ ]user
23
23
  |Hi[.][ ].+[ ]unable[ ]to[ ]deliver[ ]your[ ]message[ ]to[ ]
24
24
  the[ ]following[ ]addresses
25
25
  |Su[ ]mensaje[ ]no[ ]pudo[ ]ser[ ]entregado
@@ -41,29 +41,29 @@ module Sisimai::Lhost
41
41
  ReSMTP = {
42
42
  # Error text regular expressions which defined in qmail-remote.c
43
43
  # qmail-remote.c:225| if (smtpcode() != 220) quit("ZConnected to "," but greeting failed");
44
- 'conn' => %r/(?:Error:)?Connected to .+ but greeting failed[.]/,
44
+ 'conn' => %r/(?:Error:)?Connected to [^ ]+ but greeting failed[.]/,
45
45
  # qmail-remote.c:231| if (smtpcode() != 250) quit("ZConnected to "," but my name was rejected");
46
- 'ehlo' => %r/(?:Error:)?Connected to .+ but my name was rejected[.]/,
46
+ 'ehlo' => %r/(?:Error:)?Connected to [^ ]+ but my name was rejected[.]/,
47
47
  # qmail-remote.c:238| if (code >= 500) quit("DConnected to "," but sender was rejected");
48
48
  # reason = rejected
49
- 'mail' => %r/(?:Error:)?Connected to .+ but sender was rejected[.]/,
49
+ 'mail' => %r/(?:Error:)?Connected to [^ ]+ but sender was rejected[.]/,
50
50
  # qmail-remote.c:249| out("h"); outhost(); out(" does not like recipient.\n");
51
51
  # qmail-remote.c:253| out("s"); outhost(); out(" does not like recipient.\n");
52
52
  # reason = userunknown
53
- 'rcpt' => %r/(?:Error:)?.+ does not like recipient[.]/,
53
+ 'rcpt' => %r/(?:Error:)?[^ ]+ does not like recipient[.]/,
54
54
  # qmail-remote.c:265| if (code >= 500) quit("D"," failed on DATA command");
55
55
  # qmail-remote.c:266| if (code >= 400) quit("Z"," failed on DATA command");
56
56
  # qmail-remote.c:271| if (code >= 500) quit("D"," failed after I sent the message");
57
57
  # qmail-remote.c:272| if (code >= 400) quit("Z"," failed after I sent the message");
58
58
  'data' => %r{(?:
59
- (?:Error:)?.+[ ]failed[ ]on[ ]DATA[ ]command[.]
60
- |(?:Error:)?.+[ ]failed[ ]after[ ]I[ ]sent[ ]the[ ]message[.]
59
+ (?:Error:)?[^ ]+[ ]failed[ ]on[ ]DATA[ ]command[.]
60
+ |(?:Error:)?[^ ]+[ ]failed[ ]after[ ]I[ ]sent[ ]the[ ]message[.]
61
61
  )
62
62
  }x,
63
63
  }.freeze
64
64
  # qmail-remote.c:261| if (!flagbother) quit("DGiving up on ","");
65
65
  ReHost = %r{(?:
66
- Giving[ ]up[ ]on[ ](.+[0-9a-zA-Z])[.]?\z
66
+ Giving[ ]up[ ]on[ ]([^ ]+[0-9a-zA-Z])[.]?\z
67
67
  |Connected[ ]to[ ]([-0-9a-zA-Z.]+[0-9a-zA-Z])[ ]
68
68
  |remote[ ]host[ ]([-0-9a-zA-Z.]+[0-9a-zA-Z])[ ]said:
69
69
  )
@@ -7,7 +7,7 @@ module Sisimai
7
7
  # dovecot/src/deliver/deliver.c
8
8
  # 11: #define DEFAULT_MAIL_REJECTION_HUMAN_REASON \
9
9
  # 12: "Your message to <%t> was automatically rejected:%n%r"
10
- 'dovecot' => %r/\AYour message to .+ was automatically rejected:\z/,
10
+ 'dovecot' => %r/\AYour message to [^ ]+ was automatically rejected:\z/,
11
11
  'mail.local' => %r/\Amail[.]local: /,
12
12
  'procmail' => %r/\Aprocmail: /,
13
13
  'maildrop' => %r/\Amaildrop: /,
@@ -16,7 +16,7 @@ module Sisimai
16
16
  }.freeze
17
17
  MarkingsOf = {
18
18
  message: %r{\A(?>
19
- Your[ ]message[ ]to[ ].+[ ]was[ ]automatically[ ]rejected:\z
19
+ Your[ ]message[ ]to[ ][^ ]+[ ]was[ ]automatically[ ]rejected:\z
20
20
  |(?:mail[.]local|procmail|maildrop|vdelivermail|vdeliver):[ ]
21
21
  )
22
22
  }x
@@ -11,7 +11,7 @@ module Sisimai
11
11
  class << self
12
12
  Regex = %r{(?>
13
13
  access[ ]denied[.][ ]ip[ ]name[ ]lookup[ ]failed
14
- |access[ ]from[ ]ip[ ]address[ ].+[ ]blocked
14
+ |access[ ]from[ ]ip[ ]address[ ][^ ]+[ ]blocked
15
15
  |all[ ]mail[ ]servers[ ]must[ ]have[ ]a[ ]ptr[ ]record[ ]with[ ]a[ ]valid[ ]reverse[ ]dns[ ]entry
16
16
  |bad[ ](:?dns[ ]ptr[ ]resource[ ]record|sender[ ]ip[ ]address)
17
17
  |banned[ ]sending[ ]ip # Office365
@@ -24,7 +24,7 @@ module Sisimai
24
24
  |resolve[ ]your[ ]address
25
25
  )
26
26
  |client[ ]host[ ](?:
27
- .+[ ]blocked[ ]using
27
+ [^ ]+[ ]blocked[ ]using
28
28
  |rejected:[ ](?:
29
29
  abus[ ]detecte[ ]gu_eib_0[24] # SFR
30
30
  |cannot[ ]find[ ]your[ ]hostname # Yahoo!
@@ -41,22 +41,22 @@ module Sisimai
41
41
  )
42
42
  |connections[ ](?:
43
43
  not[ ]accepted[ ]from[ ]ip[ ]addresses[ ]on[ ]spamhaus[ ]xbl
44
- |will[ ]not[ ]be[ ]accepted[ ]from[ ].+because[ ]the[ ]ip[ ]is[ ]in[ ]spamhaus's[ ]list
44
+ |will[ ]not[ ]be[ ]accepted[ ]from[ ][^ ]+,[ ]because[ ]the[ ]ip[ ]is[ ]in[ ]spamhaus's[ ]list
45
45
  )
46
46
  |currently[ ]sending[ ]spam[ ]see:[ ]
47
47
  |domain[ ](?:
48
- .+[ ]mismatches[ ]client[ ]ip
48
+ [^ ]+[ ]mismatches[ ]client[ ]ip
49
49
  |does[ ]not[ ]exist:
50
50
  )
51
- |dns[ ]lookup[ ]failure:[ ].+[ ]try[ ]again[ ]later
51
+ |dns[ ]lookup[ ]failure:[ ][^ ]+[ ]try[ ]again[ ]later
52
52
  |dnsbl:attrbl
53
53
  |dynamic/zombied/spam[ ]ips[ ]blocked
54
- |email[ ]blocked[ ]by[ ](?:.+[.]barracudacentral[.]org|spamhaus)
54
+ |email[ ]blocked[ ]by[ ](?:[^ ]+[.]barracudacentral[.]org|spamhaus)
55
55
  |esmtp[ ]not[ ]accepting[ ]connections # icloud.com
56
- |fix[ ]reverse[ ]dns[ ]for[ ].+
56
+ |fix[ ]reverse[ ]dns[ ]for[ ][^ ]+
57
57
  |go[ ]away
58
58
  |helo[ ]command[ ]rejected:
59
- |host[ ].+[ ]refused[ ]to[ ]talk[ ]to[ ]me:[ ]\d+[ ]blocked
59
+ |host[ ]+[^ ]refused[ ]to[ ]talk[ ]to[ ]me:[ ]\d+[ ]blocked
60
60
  |hosts[ ]with[ ]dynamic[ ]ip
61
61
  |http://(?:
62
62
  spf[.]pobox[.]com/why[.]html
@@ -66,17 +66,17 @@ module Sisimai
66
66
  |ip[ ]\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}[ ]is[ ]blocked[ ]by[ ]EarthLink # Earthlink
67
67
  |ip[/]domain[ ]reputation[ ]problems
68
68
  |is[ ](?:
69
- in[ ]a[ ]black[ ]list[ ]at[ ].+[.]
70
- |in[ ]an[ ].*rbl[ ]on[ ].+
69
+ in[ ]a[ ]black[ ]list[ ]at[ ][^ ]+[.]
70
+ |in[ ]an[ ][^ ]+rbl[ ]on[ ][^ ]+
71
71
  |not[ ]allowed[ ]to[ ]send[ ](?:
72
72
  mail[ ]from
73
- |from[ ].+[ ]per[ ]it's[ ]spf[ ]record
73
+ |from[ ][<][^ ]+[>][ ]per[ ]it's[ ]spf[ ]record
74
74
  )
75
75
  )
76
- |mail[ ]server[ ]at[ ].+[ ]is[ ]blocked
76
+ |mail[ ]server[ ]at[ ][^ ]+[ ]is[ ]blocked
77
77
  |mail[ ]from[ ]\d+[.]\d+[.]\d+[.]\d[ ]refused:
78
- |message[ ]from[ ].+[ ]rejected[ ]based[ ]on[ ]blacklist
79
- |messages[ ]from[ ].+[ ]temporarily[ ]deferred[ ]due[ ]to[ ]user[ ]complaints # Yahoo!
78
+ |message[ ]from[ ][^ ]+[ ]rejected[ ]based[ ]on[ ]blacklist
79
+ |messages[ ]from[ ][^ ]+[ ]temporarily[ ]deferred[ ]due[ ]to[ ]user[ ]complaints # Yahoo!
80
80
  |no[ ](?:
81
81
  access[ ]from[ ]mail[ ]server
82
82
  |ptr[ ]record[ ]found[.]
@@ -93,17 +93,17 @@ module Sisimai
93
93
  |reverse[ ]dns[ ](?:
94
94
  failed
95
95
  |required
96
- |lookup[ ]for[ ]host[ ].+[ ]failed[ ]permanently
96
+ |lookup[ ]for[ ]host[ ][^ ]+[ ]failed[ ]permanently
97
97
  )
98
98
  |sender[ ]ip[ ](?:
99
99
  address[ ]rejected
100
100
  |reverse[ ]lookup[ ]rejected
101
101
  )
102
102
  |server[ ]access[ ](?:
103
- .+[ ]forbidden[ ]by[ ]invalid[ ]rdns[ ]record[ ]of[ ]your[ ]mail[ ]server
103
+ [^ ]+[ ]forbidden[ ]by[ ]invalid[ ]rdns[ ]record[ ]of[ ]your[ ]mail[ ]server
104
104
  |forbidden[ ]by[ ]your[ ]ip[ ]
105
105
  )
106
- |server[ ]ip[ ].+[ ]listed[ ]as[ ]abusive
106
+ |server[ ]ip[ ][^ ]+[ ]listed[ ]as[ ]abusive
107
107
  |service[ ]not[ ]available,[ ]closing[ ]transmission[ ]channel
108
108
  |service[ ]permits[ ]\d+[ ]unverifyable[ ]sending[ ]ips
109
109
  |smtp[ ]error[ ]from[ ]remote[ ]mail[ ]server[ ]after[ ]initial[ ]connection: # Exim
@@ -112,25 +112,25 @@ module Sisimai
112
112
  |your[ ]remotehost[ ]looks[ ]suspiciously[ ]like[ ]spammer
113
113
  )
114
114
  |spf[ ](?:
115
- .+[ ]domain[ ]authentication[ ]fail
115
+ [(]sender[ ]policy[ ]framework[)][ ]domain[ ]authentication[ ]fail
116
116
  |record
117
117
  |check:[ ]fail
118
118
  )
119
- |spf:[ ].+[ ]is[ ]not[ ]allowed[ ]to[ ]send[ ]mail.+[a-z]{3}.+401
120
- |the[ ](?:email|domain|ip).+[ ]is[ ]blacklisted
119
+ |spf:[ ][^ ]+[ ]is[ ]not[ ]allowed[ ]to[ ]send[ ]mail[.][ ][a-z0-9]_401
120
+ |the[ ](?:email|domain|ip)[ ][^ ]+[ ]is[ ]blacklisted
121
121
  |this[ ]system[ ]will[ ]not[ ]accept[ ]messages[ ]from[ ]servers[/]devices[ ]with[ ]no[ ]reverse[ ]dns
122
122
  |too[ ]many[ ](?:
123
123
  spams[ ]from[ ]your[ ]ip # free.fr
124
124
  |unwanted[ ]messages[ ]have[ ]been[ ]sent[ ]from[ ]the[ ]following[ ]ip[ ]address[ ]above
125
125
  )
126
126
  |unresolvable[ ]relay[ ]host[ ]name
127
- |veuillez[ ]essayer[ ]plus[ ]tard.+[a-z]{3}.+(?:103|510)
127
+ |veuillez[ ]essayer[ ]plus[ ]tard[.][ ]service[ ]refused,[ ]please[ ]try[ ]later[.][ ][0-9a-z_]+(?:103|510)
128
128
  |your[ ](?:
129
129
  network[ ]is[ ]temporary[ ]blacklisted
130
- |sender's[ ]ip[ ]address[ ]is[ ]listed[ ]at[ ].+[.]abuseat[.]org
130
+ |sender's[ ]ip[ ]address[ ]is[ ]listed[ ]at[ ][^ ]+[.]abuseat[.]org
131
131
  |server[ ]requires[ ]confirmation
132
132
  )
133
- |was[ ]blocked[ ]by[ ].+
133
+ |was[ ]blocked[ ]by[ ][^ ]+
134
134
  |we[ ]do[ ]not[ ]accept[ ]mail[ ]from[ ](?: # @mail.ru
135
135
  dynamic[ ]ips
136
136
  |hosts[ ]with[ ]dynamic[ ]ip[ ]or[ ]generic[ ]dns[ ]ptr-records
@@ -24,6 +24,7 @@ module Sisimai
24
24
  'unknown host',
25
25
  'unrouteable address',
26
26
  ]
27
+ Regex = %r/553[ ][^ ]+[ ]does[ ]not[ ]exist/
27
28
 
28
29
  def text; return 'hostunknown'; end
29
30
  def description; return "Delivery failed due to a domain part of a recipient's email address does not exist"; end
@@ -36,6 +37,7 @@ module Sisimai
36
37
  def match(argv1)
37
38
  return nil unless argv1
38
39
  return true if Index.any? { |a| argv1.include?(a) }
40
+ return true if argv1 =~ Regex
39
41
  return false
40
42
  end
41
43
 
@@ -21,7 +21,7 @@ module Sisimai
21
21
  )
22
22
  |exit[ ]\d+
23
23
  |mailer[ ]error
24
- |pipe[ ]to[ ][|][/].+
24
+ |pipe[ ]to[ ][|][/][^ ]+
25
25
  |x[-]unix[;][ ]\d+ # X-UNIX; 127
26
26
  )
27
27
  }x
@@ -14,6 +14,7 @@ module Sisimai
14
14
  # Destination mail server does not accept any message
15
15
  Index = [
16
16
  'host/domain does not accept mail', # iCloud
17
+ 'host does not accept mail', # Sendmail
17
18
  'name server: .: host not found', # Sendmail
18
19
  'no mx record found for domain=', # Oath(Yahoo!)
19
20
  'smtp protocol returned a permanent error',
@@ -21,27 +21,26 @@ module Sisimai
21
21
  class << self
22
22
  Regex = %r{(?>
23
23
  account[ ]not[ ]subscribed[ ]to[ ]ses
24
- |authentification[ ]requise.+[a-z]{3}.+402
25
24
  |authentication[ ](?:
26
25
  credentials invalid
27
26
  |failure
28
- |failed;[ ]server[ ].+[ ]said: # Postfix
27
+ |failed;[ ]server[ ][^ ]+[ ]said: # Postfix
29
28
  |required
30
29
  |turned[ ]on[ ]in[ ]your[ ]email[ ]client
31
30
  )
32
31
  |\d+[ ]denied[ ]\[[a-z]+\][ ].+[(]mode:[ ].+[)]
33
- |codes?[ ]d'?[ ]*authentification[ ]invalide.+[a-z]{3}.+305
34
- |domain[ ].+[ ]is[ ]a[ ]dead[ ]domain
32
+ |authentification[ ]requise.+[0-9a-z_]+402
33
+ |codes?[ ]d'?[ ]*authentification[ ]invalide.+[0-9a-z_]+305
34
+ |domain[ ][^ ]+[ ]is[ ]a[ ]dead[ ]domain
35
35
  |executable[ ]files[ ]are[ ]not[ ]allowed[ ]in[ ]compressed[ ]files
36
36
  |insecure[ ]mail[ ]relay
37
37
  |recipient[ ]address[ ]rejected:[ ]access[ ]denied
38
38
  |sorry,[ ]you[ ]don'?t[ ]authenticate[ ]or[ ]the[ ]domain[ ]isn'?t[ ]in[ ]
39
39
  my[ ]list[ ]of[ ]allowed[ ]rcpthosts
40
40
  |tls[ ]required[ ]but[ ]not[ ]supported # SendGrid:the recipient mailserver does not support TLS or have a valid certificate
41
- |user[ ].+[ ]is[ ]not[ ]authorized[ ]to[ ]perform[ ]ses:sendrawemail[ ]on[ ]resource
42
41
  |tls[ ]required[ ]but[ ]not[ ]supported # SendGrid:the recipient mailserver does not support TLS or have a valid certificate
43
42
  |unauthenticated[ ]senders[ ]not[ ]allowed
44
- |user[ ].+[ ]is[ ]not[ ]authorized[ ]to[ ]perform[ ]ses:sendrawemail[ ]on[ ]resource
43
+ |user[ ][^ ]+[ ]is[ ]not[ ]authorized[ ]to[ ]perform[ ]ses:sendrawemail[ ]on[ ]resource
45
44
  |you[ ]are[ ]not[ ]authorized[ ]to[ ]send[ ]mail,[ ]authentication[ ]is[ ]required
46
45
  |verification[ ]failure
47
46
  )
@@ -20,6 +20,7 @@ module Sisimai
20
20
  ["]the[ ]mail[ ]server[ ]detected[ ]your[ ]message[ ]as[ ]spam[ ]and[ ]
21
21
  has[ ]prevented[ ]delivery[.]["] # CPanel/Exim with SA rejections on
22
22
  |(?:\d[.]\d[.]\d|\d{3})[ ]spam\z
23
+ |554[ ]5[.]7[.]0[ ]reject,[ ]id=\d+
23
24
  |appears[ ]to[ ]be[ ]unsolicited
24
25
  |blacklisted[ ]url[ ]in[ ]message
25
26
  |block[ ]for[ ]spam
@@ -32,14 +33,13 @@ module Sisimai
32
33
  |content[ ]filter[ ]rejection
33
34
  |cyberoam[ ]anti[ ]spam[ ]engine[ ]has[ ]identified[ ]this[ ]email[ ]as[ ]a[ ]bulk[ ]email
34
35
  |denied[ ]due[ ]to[ ]spam[ ]list
35
- |dt:spm[ ]mx.+[ ]http://mail[.]163[.]com/help/help_spam_16[.]htm
36
36
  |greylisted.?.[ ]please[ ]try[ ]again[ ]in
37
- |http://(?:www[.]spamhaus[.]org|dsbl[.]org)
37
+ |https?://(?:www[.]spamhaus[.]org|dsbl[.]org|mail[.]163[.]com/help/help_spam_16[.]htm)
38
38
  |listed[ ]in[ ]work[.]drbl[.]imedia[.]ru
39
39
  |mail[ ](?:
40
40
  appears[ ]to[ ]be[ ]unsolicited # rejected due to spam
41
41
  |content[ ]denied # http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=20022&&no=1000726
42
- |rejete.+[a-z]{3}.+506
42
+ |rejete[.][ ]mail[ ]rejected[.][ ][0-9a-z_]+506
43
43
  )
44
44
  |may[ ]consider[ ]spam
45
45
  |message[ ](?:
@@ -51,7 +51,6 @@ module Sisimai
51
51
  |refer[ ]to[ ]the[ ]troubleshooting[ ]page[ ]at[ ]
52
52
  )
53
53
  |looks[ ]like[ ]spam
54
- |not[ ]accepted[ ]for[ ]policy[ ]reasons[.][ ]see[ ]http: # Yahoo!
55
54
  |refused[ ]by[ ]mailmarshal[ ]spamprofiler
56
55
  |rejected[ ](?:
57
56
  as[ ]spam
@@ -62,25 +61,23 @@ module Sisimai
62
61
  )
63
62
  |our[ ](?:
64
63
  email[ ]server[ ]thinks[ ]this[ ]email[ ]is[ ]spam
65
- |filters[ ]rate[ ]at[ ]and[ ]above[ ].+[ ]percent[ ]probability[ ]of[ ]being[ ]spam
64
+ |filters[ ]rate[ ]at[ ]and[ ]above[ ]\d+[ ]percent[ ]probability[ ]of[ ]being[ ]spam
66
65
  |system[ ]has[ ]detected[ ]that[ ]this[ ]message[ ]is
67
66
  )
68
- |permanent[ ]failure[ ]for[ ]one[ ]or[ ]more[ ]recipients[ ][(].+:blocked[)]
69
67
  |probable[ ]spam
70
68
  |reject[ ]bulk[.]advertising
71
- |reject,.+[ ][-][ ]spam[.][ ]
72
69
  |rejected(?:
73
70
  :[ ]spamassassin[ ]score[ ]
74
- |[ ]by[ ].+[ ][(]spam[)]
71
+ |[ ]by[ ][^ ]+[ ][(]spam[)]
75
72
  |[ ]due[ ]to[ ]spam[ ](?:classification|content)
76
73
  )
77
74
  |rejecting[ ]banned[ ]content
78
75
  |related[ ]to[ ]content[ ]with[ ]spam[-]like[ ]characteristics
79
- |rule[ ]imposed[ ]as[ ].+is[ ]blacklisted[ ]on # Mailmarshal RBLs
80
- |sender[ ]domain[ ]listed[ ]at[ ].+
76
+ |rule[ ]imposed[ ]as[ ][^ ]+[ ]is[ ]blacklisted[ ]on
77
+ |sender[ ]domain[ ]listed[ ]at[ ][^ ]+
81
78
  |sending[ ]address[ ]not[ ]accepted[ ]due[ ]to[ ]spam[ ]filter
82
79
  |spam[ ](?:
83
- .+[ ]exceeded
80
+ [^ ]+[ ]exceeded
84
81
  |blocked
85
82
  |check
86
83
  |content[ ]matched
@@ -112,7 +109,7 @@ module Sisimai
112
109
  identified[ ]as[ ]spam
113
110
  |scored[ ]as[ ]spam[ ]with[ ]a[ ]probability
114
111
  )
115
- |scored[ ].+[ ]spam[ ]points
112
+ |scored[ ][^ ]+[ ]spam[ ]points
116
113
  |was[ ]classified[ ]as[ ]spam
117
114
  |was[ ]rejected[ ]by[ ]recurrent[ ]pattern[ ]detection[ ]system
118
115
  )
@@ -25,17 +25,17 @@ module Sisimai
25
25
  'Sisimai::Reason::Rejected' => 'sisimai/reason/rejected',
26
26
  }
27
27
  Regex = %r{(?>
28
- .+[ ]user[ ]unknown
29
- |[#]5[.]1[.]1[ ]bad[ ]address
30
- |[<].+[>][ ]not[ ]found
31
- |[<].+[@].+[>][.][.][.][ ]blocked[ ]by[ ]
28
+ [#]5[.]1[.]1[ ]bad[ ]address
29
+ |[<][^ ]+[>][ ]not[ ]found
30
+ |[<][^ ]+[@][^ ]+[>][.][.][.][ ]blocked[ ]by[ ]
32
31
  |5[.]0[.]0[.][ ]mail[ ]rejected[.]
33
32
  |5[.]1[.]0[ ]address[ ]rejected[.]
34
- |adresse[ ]d[ ]au[ ]moins[ ]un[ ]destinataire[ ]invalide.+[a-z]{3}.+(?:416|418)
33
+ |adresse[ ]d[ ]au[ ]moins[ ]un[ ]destinataire[ ]invalide[.][ ]invalid[ ]recipient[.][0-9a-z_]+41[68]
35
34
  |address[ ](?:does[ ]not[ ]exist|unknown)
36
35
  |archived[ ]recipient
37
36
  |bad[-_ ]recipient
38
37
  |can[']t[ ]accept[ ]user
38
+ |does[ ]not[ ]exist[.]
39
39
  |destination[ ](?:
40
40
  addresses[ ]were[ ]unknown
41
41
  |server[ ]rejected[ ]recipients
@@ -53,8 +53,8 @@ module Sisimai
53
53
  |an[ ]active[ ]address[ ]at[ ]this[ ]host
54
54
  )
55
55
  |mailbox[ ](?:
56
- .+[ ]does[ ]not[ ]exist
57
- |.+[@].+[ ]unavailable
56
+ [^ ]+[ ]does[ ]not[ ]exist
57
+ |[^ ]+[@][^ ]+[ ]unavailable
58
58
  |does[ ]not[ ]exist
59
59
  |invalid
60
60
  |is[ ](?:inactive|unavailable)
@@ -62,7 +62,7 @@ module Sisimai
62
62
  |unavailable
63
63
  )
64
64
  |no[ ](?:
65
- [ ].+[ ]in[ ]name[ ]directory
65
+ [ ][^ ]+[ ]in[ ]name[ ]directory
66
66
  |account[ ]by[ ]that[ ]name[ ]here
67
67
  |existe[ ](?:dicha[ ]persona|ese[ ]usuario[ ])
68
68
  |mail[ ]box[ ]available[ ]for[ ]this[ ]user
@@ -79,7 +79,7 @@ module Sisimai
79
79
  |user(?:[ ]here)?
80
80
  )
81
81
  |thank[ ]you[ ]rejected:[ ]account[ ]unavailable:
82
- |valid[ ]recipients[,][ ]bye # Microsoft
82
+ |valid[ ]recipients,[ ]bye
83
83
  )
84
84
  |non[- ]?existent[ ]user
85
85
  |not[ ](?:
@@ -87,15 +87,15 @@ module Sisimai
87
87
  |a[ ]local[ ]address
88
88
  |email[ ]addresses
89
89
  )
90
- |rcpt[ ][<].+[>][ ]does[ ]not[ ]exist
90
+ |rcpt[ ][<][^ ]+[>][ ]does[ ]not[ ]exist
91
91
  |recipient[ ]address[ ]rejected[.][ ][(]in[ ]reply[ ]to[ ]rcpt[ ]to[ ]command[)]
92
- |rece?ipient[ ](?:
93
- .+[ ]was[ ]not[ ]found[ ]in
92
+ |recipient[ ](?:
93
+ [^ ]+[ ]was[ ]not[ ]found[ ]in
94
94
  |address[ ]rejected:[ ](?:
95
95
  access[ ]denied
96
96
  |invalid[ ]user
97
- |user[ ].+[ ]does[ ]not[ ]exist
98
- |user[ ]unknown[ ]in[ ].+[ ]table
97
+ |user[ ][^ ]+[ ]does[ ]not[ ]exist
98
+ |user[ ]unknown[ ]in[ ][^ ]+[ ]table
99
99
  |unknown[ ]user
100
100
  )
101
101
  |does[ ]not[ ]exist(?:[ ]on[ ]this[ ]system)?
@@ -104,9 +104,8 @@ module Sisimai
104
104
  |unknown
105
105
  )
106
106
  |requested[ ]action[ ]not[ ]taken:[ ]mailbox[ ]unavailable
107
- |resolver[.]adr[.]recip(?:ient)notfound
108
- |said:[ ]550[-[ ]]5[.]1[.]1[ ].+[ ]user[ ]unknown[ ]
109
- |smtp[ ]error[ ]from[ ]remote[ ]mail[ ]server[ ]after[ ]end[ ]of[ ]data:[ ]553.+does[ ]not[ ]exist
107
+ |resolver[.]adr[.]recipient notfound
108
+ |said:[ ]550[-[ ]]5[.]1[.]1[ ][^ ]+[ ]user[ ]unknown[ ]
110
109
  |sorry,[ ](?:
111
110
  user[ ]unknown
112
111
  |badrcptto
@@ -122,7 +121,7 @@ module Sisimai
122
121
  address[ ]no[ ]longer[ ]accepts[ ]mail
123
122
  |email[ ]address[ ]is[ ]wrong[ ]or[ ]no[ ]longer[ ]valid
124
123
  |spectator[ ]does[ ]not[ ]exist
125
- |user[ ]doesn[']?t[ ]have[ ]a[ ].+[ ]account
124
+ |user[ ]doesn[']?t[ ]have[ ]a[ ][^ ]+[ ]account
126
125
  )
127
126
  |unknown[ ](?:
128
127
  e[-]?mail[ ]address
@@ -132,8 +131,8 @@ module Sisimai
132
131
  |user
133
132
  )
134
133
  |user[ ](?:
135
- .+[ ]was[ ]not[ ]found
136
- |.+[ ]does[ ]not[ ]exist
134
+ [^ ]+[ ]was[ ]not[ ]found
135
+ |[^ ]+[ ]does[ ]not[ ]exist
137
136
  |does[ ]not[ ]exist
138
137
  |missing[ ]home[ ]directory
139
138
  |not[ ](?:active|exist|found|known)
@@ -651,7 +651,7 @@ module Sisimai
651
651
  '5.7.24' => 'securityerror', # SPF validation error
652
652
  '5.7.25' => 'blocked', # Reverse DNS validation failed
653
653
  '5.7.26' => 'securityerror', # Multiple authentication checks failed
654
- '5.7.27' => 'rejected', # Sender address has null MX
654
+ '5.7.27' => 'notaccept', # MX resource record of a destination host is Null MX: RFC7505
655
655
  }.freeze
656
656
 
657
657
  InternalCode = {
@@ -1,4 +1,4 @@
1
1
  # Define the version number of Sisimai
2
2
  module Sisimai
3
- VERSION = '4.25.8'.freeze
3
+ VERSION = '4.25.9'.freeze
4
4
  end
@@ -0,0 +1,59 @@
1
+ Return-Path: <MAILER-DAEMON>
2
+ Received: from localhost (localhost)
3
+ by nyaan.example.jp (V8/cf) id 093BC6UQ019557;
4
+ Sat, 3 Oct 2020 20:12:06 +0900
5
+ Date: Sat, 3 Oct 2020 20:12:06 +0900
6
+ From: Mail Delivery Subsystem <MAILER-DAEMON>
7
+ Message-Id: <202010031112.093BC6UQ019557@nyaan.example.jp>
8
+ To: postmaster
9
+ MIME-Version: 1.0
10
+ Content-Type: multipart/report; report-type=delivery-status;
11
+ boundary="093BC6UQ019557.1601723526/nyaan.example.jp"
12
+ Subject: Postmaster notify: see transcript for details
13
+ Auto-Submitted: auto-generated (postmaster-notification)
14
+
15
+ This is a MIME-encapsulated message
16
+
17
+ --093BC6UQ019557.1601723526/nyaan.example.jp
18
+
19
+ The original message was received at Sat, 3 Oct 2020 20:11:48 +0900
20
+ from localhost [127.0.0.1]
21
+ with id 093BBRUP019529
22
+
23
+ ----- The following addresses had permanent fatal errors -----
24
+ <neko@libsisimai.org>
25
+ (reason: 550 Host does not accept mail)
26
+
27
+ ----- Transcript of session follows -----
28
+ 554 5.0.0 Service unavailable
29
+
30
+ --093BC6UQ019557.1601723526/nyaan.example.jp
31
+ Content-Type: message/delivery-status
32
+
33
+ Reporting-MTA: dns; nyaan.example.jp
34
+ Received-From-MTA: DNS; localhost
35
+ Arrival-Date: Sat, 3 Oct 2020 20:11:48 +0900
36
+
37
+ Final-Recipient: RFC822; neko@libsisimai.org
38
+ X-Actual-Recipient: rfc822; neko@libsisimai.org
39
+ Action: failed
40
+ Status: 5.7.27
41
+ Remote-MTA: DNS; libsisimai.org
42
+ Diagnostic-Code: SMTP; 550 Host does not accept mail
43
+ Last-Attempt-Date: Sat, 3 Oct 2020 20:12:06 +0900
44
+
45
+ --093BC6UQ019557.1601723526/nyaan.example.jp
46
+ Content-Type: text/rfc822-headers
47
+
48
+ Return-Path: <postmaster@example.jp>
49
+ Received: from [127.0.0.1] (localhost [127.0.0.1])
50
+ by nyaan.example.jp (V8/cf) with ESMTP id 093BBRUP019529
51
+ for <neko@libsisimai.org>; Sat, 3 Oct 2020 20:11:48 +0900
52
+ Date: Sat, 3 Oct 2020 20:11:27 +0900
53
+ Message-Id: <202010031111.093BBRUP019529@nyaan.example.jp>
54
+ Subject: Nyaan
55
+ From: postmaster@example.jp
56
+ To: neko@libsisimai.org
57
+
58
+ --093BC6UQ019557.1601723526/nyaan.example.jp--
59
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sisimai
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.25.8
4
+ version: 4.25.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - azumakuniyuki
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-17 00:00:00.000000000 Z
11
+ date: 2020-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -610,6 +610,7 @@ files:
610
610
  - set-of-emails/maildir/bsd/lhost-sendmail-54.eml
611
611
  - set-of-emails/maildir/bsd/lhost-sendmail-55.eml
612
612
  - set-of-emails/maildir/bsd/lhost-sendmail-56.eml
613
+ - set-of-emails/maildir/bsd/lhost-sendmail-57.eml
613
614
  - set-of-emails/maildir/bsd/lhost-surfcontrol-01.eml
614
615
  - set-of-emails/maildir/bsd/lhost-surfcontrol-02.eml
615
616
  - set-of-emails/maildir/bsd/lhost-surfcontrol-03.eml