sisimai 4.25.3-java → 4.25.4-java

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.

Files changed (123) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.travis.yml +1 -0
  4. data/ANALYTICAL-PRECISION +2 -4
  5. data/CONTRIBUTING +4 -0
  6. data/ChangeLog.md +39 -0
  7. data/Developers.mk +1 -72
  8. data/Makefile +4 -0
  9. data/README-JA.md +3 -0
  10. data/README.md +5 -2
  11. data/lib/sisimai.rb +4 -3
  12. data/lib/sisimai/arf.rb +6 -6
  13. data/lib/sisimai/bite.rb +8 -3
  14. data/lib/sisimai/bite/email.rb +7 -50
  15. data/lib/sisimai/bite/json.rb +5 -25
  16. data/lib/sisimai/data.rb +1 -1
  17. data/lib/sisimai/lhost.rb +101 -0
  18. data/lib/sisimai/{bite/email → lhost}/activehunter.rb +10 -10
  19. data/lib/sisimai/{bite/email → lhost}/amavis.rb +9 -9
  20. data/lib/sisimai/lhost/amazonses.rb +403 -0
  21. data/lib/sisimai/{bite/email → lhost}/amazonworkmail.rb +9 -9
  22. data/lib/sisimai/{bite/email → lhost}/aol.rb +10 -10
  23. data/lib/sisimai/{bite/email → lhost}/apachejames.rb +10 -10
  24. data/lib/sisimai/{bite/email → lhost}/bigfoot.rb +9 -9
  25. data/lib/sisimai/{bite/email → lhost}/biglobe.rb +10 -10
  26. data/lib/sisimai/{bite/email → lhost}/courier.rb +10 -10
  27. data/lib/sisimai/{bite/email → lhost}/domino.rb +9 -9
  28. data/lib/sisimai/{bite/email → lhost}/einsundeins.rb +10 -10
  29. data/lib/sisimai/{bite/email → lhost}/exchange2003.rb +9 -9
  30. data/lib/sisimai/{bite/email → lhost}/exchange2007.rb +9 -9
  31. data/lib/sisimai/{bite/email → lhost}/exim.rb +10 -10
  32. data/lib/sisimai/{bite/email → lhost}/ezweb.rb +9 -9
  33. data/lib/sisimai/{bite/email → lhost}/facebook.rb +9 -9
  34. data/lib/sisimai/{bite/email → lhost}/fml.rb +10 -10
  35. data/lib/sisimai/{bite/email → lhost}/gmx.rb +10 -10
  36. data/lib/sisimai/{bite/email → lhost}/google.rb +14 -14
  37. data/lib/sisimai/{bite/email → lhost}/gsuite.rb +10 -10
  38. data/lib/sisimai/{bite/email → lhost}/imailserver.rb +10 -10
  39. data/lib/sisimai/{bite/email → lhost}/interscanmss.rb +9 -9
  40. data/lib/sisimai/{bite/email → lhost}/kddi.rb +10 -10
  41. data/lib/sisimai/{bite/email → lhost}/mailfoundry.rb +9 -9
  42. data/lib/sisimai/{bite/email → lhost}/mailmarshalsmtp.rb +9 -9
  43. data/lib/sisimai/{bite/email → lhost}/mailru.rb +11 -11
  44. data/lib/sisimai/{bite/email → lhost}/mcafee.rb +9 -9
  45. data/lib/sisimai/{bite/email → lhost}/messagelabs.rb +9 -9
  46. data/lib/sisimai/{bite/email → lhost}/messagingserver.rb +9 -9
  47. data/lib/sisimai/{bite/email → lhost}/mfilter.rb +9 -9
  48. data/lib/sisimai/{bite/email → lhost}/mxlogic.rb +10 -10
  49. data/lib/sisimai/{bite/email → lhost}/notes.rb +9 -9
  50. data/lib/sisimai/{bite/email → lhost}/office365.rb +10 -10
  51. data/lib/sisimai/{bite/email → lhost}/opensmtpd.rb +9 -9
  52. data/lib/sisimai/{bite/email → lhost}/outlook.rb +9 -9
  53. data/lib/sisimai/{bite/email → lhost}/postfix.rb +9 -9
  54. data/lib/sisimai/{bite/email → lhost}/qmail.rb +9 -9
  55. data/lib/sisimai/{bite/email → lhost}/receivingses.rb +11 -11
  56. data/lib/sisimai/{bite/email → lhost}/sendgrid.rb +120 -11
  57. data/lib/sisimai/{bite/email → lhost}/sendmail.rb +9 -9
  58. data/lib/sisimai/{bite/email → lhost}/surfcontrol.rb +9 -9
  59. data/lib/sisimai/{bite/email → lhost}/userdefined.rb +9 -9
  60. data/lib/sisimai/{bite/email → lhost}/v5sendmail.rb +10 -10
  61. data/lib/sisimai/{bite/email → lhost}/verizon.rb +11 -11
  62. data/lib/sisimai/{bite/email → lhost}/x1.rb +9 -9
  63. data/lib/sisimai/{bite/email → lhost}/x2.rb +9 -9
  64. data/lib/sisimai/{bite/email → lhost}/x3.rb +9 -9
  65. data/lib/sisimai/{bite/email → lhost}/x4.rb +10 -10
  66. data/lib/sisimai/{bite/email → lhost}/x5.rb +9 -9
  67. data/lib/sisimai/{bite/email → lhost}/yahoo.rb +9 -9
  68. data/lib/sisimai/{bite/email → lhost}/yandex.rb +10 -10
  69. data/lib/sisimai/{bite/email → lhost}/zoho.rb +10 -10
  70. data/lib/sisimai/mda.rb +1 -1
  71. data/lib/sisimai/message.rb +535 -28
  72. data/lib/sisimai/message/email.rb +3 -454
  73. data/lib/sisimai/message/json.rb +3 -177
  74. data/lib/sisimai/order.rb +238 -4
  75. data/lib/sisimai/order/email.rb +5 -190
  76. data/lib/sisimai/order/json.rb +3 -39
  77. data/lib/sisimai/reason.rb +1 -1
  78. data/lib/sisimai/reason/norelaying.rb +1 -1
  79. data/lib/sisimai/reason/userunknown.rb +1 -1
  80. data/lib/sisimai/reason/virusdetected.rb +1 -0
  81. data/lib/sisimai/rfc1894.rb +2 -2
  82. data/lib/sisimai/rfc3464.rb +13 -13
  83. data/lib/sisimai/rfc3834.rb +3 -3
  84. data/lib/sisimai/rfc5322.rb +1 -1
  85. data/lib/sisimai/rhost.rb +5 -4
  86. data/lib/sisimai/rhost/exchangeonline.rb +1 -1
  87. data/lib/sisimai/rhost/franceptt.rb +1 -1
  88. data/lib/sisimai/rhost/godaddy.rb +1 -1
  89. data/lib/sisimai/rhost/iua.rb +39 -0
  90. data/lib/sisimai/version.rb +1 -1
  91. data/set-of-emails/README.md +0 -1
  92. data/set-of-emails/maildir/bsd/email-gsuite-13.eml +261 -0
  93. data/set-of-emails/maildir/bsd/email-postfix-62.eml +105 -0
  94. data/set-of-emails/maildir/bsd/email-postfix-63.eml +85 -0
  95. data/set-of-emails/maildir/bsd/rhost-iua-01.eml +70 -0
  96. metadata +75 -94
  97. data/fig/sisimai-architecture.png +0 -0
  98. data/lib/sisimai/bite/email/amazonses.rb +0 -186
  99. data/lib/sisimai/bite/json/amazonses.rb +0 -242
  100. data/lib/sisimai/bite/json/sendgrid.rb +0 -123
  101. data/set-of-emails/jsonobj/json-amazonses-01.json +0 -1
  102. data/set-of-emails/jsonobj/json-amazonses-02.json +0 -11
  103. data/set-of-emails/jsonobj/json-amazonses-03.json +0 -1
  104. data/set-of-emails/jsonobj/json-amazonses-04.json +0 -1
  105. data/set-of-emails/jsonobj/json-amazonses-05.json +0 -1
  106. data/set-of-emails/jsonobj/json-amazonses-06.json +0 -1
  107. data/set-of-emails/jsonobj/json-sendgrid-01.json +0 -1
  108. data/set-of-emails/jsonobj/json-sendgrid-02.json +0 -1
  109. data/set-of-emails/jsonobj/json-sendgrid-03.json +0 -1
  110. data/set-of-emails/jsonobj/json-sendgrid-04.json +0 -1
  111. data/set-of-emails/jsonobj/json-sendgrid-05.json +0 -1
  112. data/set-of-emails/jsonobj/json-sendgrid-06.json +0 -1
  113. data/set-of-emails/jsonobj/json-sendgrid-07.json +0 -1
  114. data/set-of-emails/jsonobj/json-sendgrid-08.json +0 -1
  115. data/set-of-emails/jsonobj/json-sendgrid-09.json +0 -1
  116. data/set-of-emails/jsonobj/json-sendgrid-10.json +0 -1
  117. data/set-of-emails/jsonobj/json-sendgrid-11.json +0 -1
  118. data/set-of-emails/jsonobj/json-sendgrid-12.json +0 -1
  119. data/set-of-emails/jsonobj/json-sendgrid-13.json +0 -1
  120. data/set-of-emails/jsonobj/json-sendgrid-14.json +0 -1
  121. data/set-of-emails/jsonobj/json-sendgrid-15.json +0 -1
  122. data/set-of-emails/jsonobj/json-sendgrid-16.json +0 -1
  123. data/set-of-emails/jsonobj/json-sendgrid-17.json +0 -1
@@ -5,46 +5,10 @@ module Sisimai
5
5
  module JSON
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Order/JSON.pm
7
7
  class << self
8
- require 'sisimai/bite/json'
9
-
10
- PatternTable = {
11
- 'keyname' => { 'notificationType' => ['Sisimai::Bite::JSON::AmazonSES'] },
12
- }.freeze
13
-
14
- make_default_order = lambda do
15
- # Make default order of MTA(JSON) modules to be loaded
16
- rv = []
17
- begin
18
- rv += Sisimai::Bite::JSON.index.map { |e| 'Sisimai::Bite::JSON::' << e }
19
- rescue
20
- # Failed to load MTA(JSON) module
21
- next
22
- end
23
- return rv
24
- end
25
- DefaultOrder = make_default_order.call
26
-
27
- # @abstract Make default order of MTA(JSON) modules to be loaded
28
- # @return [Array] Default order list of MTA(JSON) modules
29
- def default; return DefaultOrder; end
30
-
31
- # @abstract Make MTA(JSON) module list as a spare
32
- # @return [Array] Ordered module list
33
- def another; return []; end
34
-
35
- # Make email header list in each MTA(JSON) module
36
- # @return [Hash] Header list to be parsed
37
- def headers; return {}; end
38
-
39
- # Get regular expression patterns for specified key name
40
- # @param [String] group Group name for "ORDER BY"
41
- # @return [Hash] Pattern table for the group
42
- def by(group = '')
43
- return {} if group.empty?
44
- return PatternTable[group] if PatternTable.key?(group)
45
- return {}
46
- end
8
+ require 'sisimai/order'
47
9
 
10
+ def default; Sisimai::Order.warn('forjson'); return Sisimai::Order.default; end
11
+ def by(group); Sisimai::Order.warn('gone'); return Sisimai::Order.by(group); end
48
12
  end
49
13
  end
50
14
  end
@@ -8,7 +8,7 @@ module Sisimai
8
8
  # Reason list better to retry detecting an error reason
9
9
  # @return [Array] Reason list
10
10
  def retry
11
- return {
11
+ return {
12
12
  'undefined' => 1, 'onhold' => 1, 'systemerror' => 1, 'securityerror' => 1,
13
13
  'networkerror' => 1, 'hostunknown' => 1, 'userunknown' => 1
14
14
  }.freeze
@@ -16,7 +16,7 @@ module Sisimai
16
16
  Index = [
17
17
  'as a relay',
18
18
  'insecure mail relay',
19
- 'mail server requires authentication when attempting to send to a non-local e-mail address', # MailEnable
19
+ 'mail server requires authentication when attempting to send to a non-local e-mail address', # MailEnable
20
20
  'not allowed to relay through this machine',
21
21
  'not an open relay, so get lost',
22
22
  'relay access denied',
@@ -159,7 +159,7 @@ module Sisimai
159
159
  tempreason = Sisimai::SMTP::Status.name(argvs.deliverystatus) || ''
160
160
  return false if tempreason == 'suspend'
161
161
 
162
- diagnostic = argvs.diagnosticcode.downcase;
162
+ diagnostic = argvs.diagnosticcode.downcase
163
163
  if tempreason == 'userunknown'
164
164
  # *.1.1 = 'Bad destination mailbox address'
165
165
  # Status: 5.1.1
@@ -20,6 +20,7 @@ module Sisimai
20
20
  'it has a potentially executable attachment',
21
21
  'the message was rejected because it contains prohibited virus or spam content',
22
22
  'this form of attachment has been used by recent viruses or other malware',
23
+ 'virus detected',
23
24
  'your message was infected with a virus',
24
25
  ]
25
26
 
@@ -61,7 +61,7 @@ module Sisimai
61
61
  'x-original-message-id' => 'text',
62
62
  }.freeze
63
63
 
64
- # Table to be converted to key name defined in Sisimai::Bite class
64
+ # Table to be converted to key name defined in Sisimai::Lhost class
65
65
  # @param [Symbol] group RFC822 Header group name
66
66
  # @return [Array,Hash] RFC822 Header list
67
67
  def FIELDTABLE
@@ -118,7 +118,7 @@ module Sisimai
118
118
  # - Remote-MTA: DNS; mx.example.jp
119
119
  match[1] = cv[2].upcase
120
120
  match[2] = group == 'host' ? cv[3].downcase : cv[3]
121
- match[2] = '' if match[2] =~ /\A\s+\z/ # Remote-MTA: dns;
121
+ match[2] = '' if match[2] =~ /\A\s+\z/ # Remote-MTA: dns;
122
122
  else
123
123
  # - Action: failed
124
124
  # - Status: 5.2.2
@@ -3,10 +3,10 @@ module Sisimai
3
3
  module RFC3464
4
4
  # Imported from p5-Sisimail/lib/Sisimai/RFC3464.pm
5
5
  class << self
6
- require 'sisimai/bite/email'
6
+ require 'sisimai/lhost'
7
7
 
8
8
  # http://tools.ietf.org/html/rfc3464
9
- Indicators = Sisimai::Bite::Email.INDICATORS
9
+ Indicators = Sisimai::Lhost.INDICATORS
10
10
  MarkingsOf = {
11
11
  message: %r{\A(?>
12
12
  content-type:[ ]*(?:
@@ -104,13 +104,13 @@ module Sisimai
104
104
  # @param [String] mbody Message body of a bounce email
105
105
  # @return [Hash, Nil] Bounce data list and message/rfc822 part
106
106
  # or nil if it failed to parse or the
107
- def scan(mhead, mbody)
107
+ def make(mhead, mbody)
108
108
  require 'sisimai/mda'
109
109
 
110
- dscontents = [Sisimai::Bite.DELIVERYSTATUS]
110
+ dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
111
111
  hasdivided = mbody.scrub('?').split("\n")
112
112
  havepassed = ['']
113
- scannedset = Sisimai::MDA.scan(mhead, mbody)
113
+ mdabounced = Sisimai::MDA.make(mhead, mbody)
114
114
  rfc822list = [] # (Array) Each line in message/rfc822 part string
115
115
  maybealias = nil # (String) Original-Recipient Field
116
116
  blanklines = 0 # (Integer) The number of blank lines
@@ -190,7 +190,7 @@ module Sisimai
190
190
 
191
191
  if !x.empty? && x != y
192
192
  # There are multiple recipient addresses in the message body.
193
- dscontents << Sisimai::Bite.DELIVERYSTATUS
193
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
194
194
  v = dscontents[-1]
195
195
  end
196
196
  v['recipient'] = y
@@ -398,7 +398,7 @@ module Sisimai
398
398
 
399
399
  if !x.empty? && x != y
400
400
  # There are multiple recipient addresses in the message body.
401
- dscontents << Sisimai::Bite.DELIVERYSTATUS
401
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS
402
402
  b = dscontents[-1]
403
403
  end
404
404
  b['recipient'] = y
@@ -425,7 +425,7 @@ module Sisimai
425
425
  next unless cv = e.match(/\ATo:\s*(.+)\z/)
426
426
  r = Sisimai::Address.find(cv[1], true) || []
427
427
  next if r.empty?
428
- dscontents << Sisimai::Bite::Email.DELIVERYSTATUS if dscontents.size == recipients
428
+ dscontents << Sisimai::Lhost.DELIVERYSTATUS if dscontents.size == recipients
429
429
 
430
430
  b = dscontents[-1]
431
431
  b['recipient'] = r[0][:address]
@@ -450,11 +450,11 @@ module Sisimai
450
450
  end
451
451
  e['diagnosis'] = Sisimai::String.sweep(e['diagnosis']) || ''
452
452
 
453
- if scannedset
454
- # Make bounce data by the values returned from Sisimai::MDA->scan()
455
- e['agent'] = scannedset['mda'] || self.smtpagent
456
- e['reason'] = scannedset['reason'] || 'undefined'
457
- e['diagnosis'] = scannedset['message'] unless scannedset['message'].empty?
453
+ if mdabounced
454
+ # Make bounce data by the values returned from Sisimai::MDA.make()
455
+ e['agent'] = mdabounced['mda'] || self.smtpagent
456
+ e['reason'] = mdabounced['reason'] || 'undefined'
457
+ e['diagnosis'] = mdabounced['message'] unless mdabounced['message'].empty?
458
458
  e['command'] = ''
459
459
  else
460
460
  # Set the value of smtpagent
@@ -52,7 +52,7 @@ module Sisimai
52
52
  # @return [Hash, Nil] Bounce data list and message/rfc822 part
53
53
  # or nil if it failed to parse or the
54
54
  # arguments are missing
55
- def scan(mhead, mbody)
55
+ def make(mhead, mbody)
56
56
  leave = 0
57
57
  match = 0
58
58
 
@@ -78,8 +78,8 @@ module Sisimai
78
78
  end
79
79
  return nil if match < 1
80
80
 
81
- require 'sisimai/bite/email'
82
- dscontents = [Sisimai::Bite.DELIVERYSTATUS]
81
+ require 'sisimai/lhost'
82
+ dscontents = [Sisimai::Lhost.DELIVERYSTATUS]
83
83
  hasdivided = mbody.scrub('?').split("\n")
84
84
  rfc822part = '' # (String) message/rfc822-headers part
85
85
  recipients = 0 # (Integer) The number of 'Final-Recipient' header
@@ -41,7 +41,7 @@ module Sisimai
41
41
 
42
42
  build_flatten_rfc822header_list = lambda do
43
43
  # Convert HEADER: structured hash table to flatten hash table for being
44
- # called from Sisimai::Bite::Email::*
44
+ # called from Sisimai::Lhost::*
45
45
  fv = {}
46
46
  HeaderTable.each_value do |e|
47
47
  e.each { |ee| fv[ee] = true }
data/lib/sisimai/rhost.rb CHANGED
@@ -7,15 +7,16 @@ module Sisimai
7
7
  class << self
8
8
  # Imported from p5-Sisimail/lib/Sisimai/Rhost.pm
9
9
  RhostClass = {
10
- 'aspmx.l.google.com' => 'GoogleApps',
11
- 'gmail-smtp-in.l.google.com' => 'GoogleApps',
12
10
  '.prod.outlook.com' => 'ExchangeOnline',
13
11
  '.protection.outlook.com' => 'ExchangeOnline',
14
- 'smtp.secureserver.net' => 'GoDaddy',
15
- 'mailstore1.secureserver.net' => 'GoDaddy',
16
12
  'laposte.net' => 'FrancePTT',
17
13
  'orange.fr' => 'FrancePTT',
18
14
  'wanadoo.fr' => 'FrancePTT',
15
+ 'smtp.secureserver.net' => 'GoDaddy',
16
+ 'mailstore1.secureserver.net' => 'GoDaddy',
17
+ 'aspmx.l.google.com' => 'GoogleApps',
18
+ 'gmail-smtp-in.l.google.com' => 'GoogleApps',
19
+ '.email.ua' => 'IUA',
19
20
  'lsean.ezweb.ne.jp' => 'KDDI',
20
21
  'msmx.au.com' => 'KDDI',
21
22
  '.qq.com' => 'TencentQQ',
@@ -90,7 +90,7 @@ module Sisimai
90
90
  ],
91
91
  }.freeze
92
92
  MessagesOf = {
93
- # Copied and converted from Sisimai::Bite::Email::Exchange2007
93
+ # Copied and converted from Sisimai::Lhost::Exchange2007
94
94
  'expired' => ['QUEUE.Expired'],
95
95
  'hostunknown' => ['SMTPSEND.DNS.NonExistentDomain'],
96
96
  'mesgtoobig' => ['RESOLVER.RST.RecipSizeLimit', 'RESOLVER.RST.RecipientSizeLimit'],
@@ -27,7 +27,7 @@ module Sisimai
27
27
  '423' => nil, # Service refused, please try later. LPN105_423
28
28
  '424' => nil, # Veuillez essayer plus tard. LPN105_424
29
29
  '506' => 'spamdetected', # Mail rejete. Mail rejected. OFR_506 [506]
30
- '510' => 'blocked', # Veuillez essayer plus tard. service refused, please try later. LPN004_510
30
+ '510' => 'blocked', # Veuillez essayer plus tard. service refused, please try later. LPN004_510
31
31
  '513' => nil, # Mail rejete. Mail rejected. OUK_513
32
32
  '514' => 'mesgtoobig', # Taille limite du message atteinte
33
33
  }.freeze
@@ -31,7 +31,7 @@ module Sisimai
31
31
  'IB705' => 'virusdetected', # 552 Virus infected message rejected. IB705
32
32
  }.freeze
33
33
  MessagesOf = {
34
- 'blocked' => ['553 http://www.spamhaus.org/query/bl?ip=', '554 RBL Reject.'],
34
+ 'blocked' => ['www.spamhaus.org/query/bl?ip=', '554 RBL Reject.'],
35
35
  'expired' => ['Delivery timeout', "451 Sorry, I wasn't able to establish an SMTP connection."],
36
36
  'suspend' => ['Account disabled'],
37
37
  'mailboxfull' => ['Account storage limit'],
@@ -0,0 +1,39 @@
1
+ module Sisimai
2
+ module Rhost
3
+ # Sisimai::Rhost detects the bounce reason from the content of Sisimai::Data
4
+ # object as an argument of get() method when the value of "rhost" of the object
5
+ # is "*.email.ua". This class is called only Sisimai::Data class.
6
+ module IUA
7
+ class << self
8
+ # Imported from p5-Sisimail/lib/Sisimai/Rhost/IUA.pm
9
+ ErrorCodes = {
10
+ # http://mail.i.ua/err/$(CODE)
11
+ '1' => 'norelaying', # The use of SMTP as mail gate is forbidden.
12
+ '2' => 'userunknown', # User is not found.
13
+ '3' => 'suspend', # Mailbox was not used for more than 3 months
14
+ '4' => 'mailboxfull', # Mailbox is full.
15
+ '5' => 'toomanyconn', # Letter sending limit is exceeded.
16
+ '6' => 'norelaying', # Use SMTP of your provider to send mail.
17
+ '7' => 'blocked', # Wrong value if command HELO/EHLO parameter.
18
+ '8' => 'rejected', # Couldn't check sender address.
19
+ '9' => 'blocked', # IP-address of the sender is blacklisted.
20
+ '10' => 'filtered', # Not in the list Mail address management.
21
+ }.freeze
22
+
23
+ # Detect bounce reason from https://www.i.ua/
24
+ # @param [Sisimai::Data] argvs Parsed email object
25
+ # @return [String] The bounce reason at https://www.i.ua/
26
+ def get(argvs)
27
+ return argvs.reason unless argvs.reason.empty?
28
+
29
+ if cv = argvs.diagnosticcode.downcase.match(%r|[.]i[.]ua/err/(\d+)|)
30
+ return ErrorCodes[cv[1]] if ErrorCodes.key?(cv[1])
31
+ end
32
+ return ''
33
+ end
34
+
35
+ end
36
+ end
37
+ end
38
+ end
39
+
@@ -1,4 +1,4 @@
1
1
  # Define the version number of Sisimai
2
2
  module Sisimai
3
- VERSION = '4.25.3'.freeze
3
+ VERSION = '4.25.4'.freeze
4
4
  end
@@ -6,7 +6,6 @@ in this repository are read from `make test` at p5-Sisimai and rb-Sisimai.
6
6
 
7
7
  | Directory | Description |
8
8
  |-------------------------------|----------------------------------------------|
9
- | jsonobj/ | JSON files include bounce objects |
10
9
  | mailbox/ | Unix mbox files |
11
10
  | maildir/ | Email files |
12
11
  | - bsd/ | A newline is LF |
@@ -0,0 +1,261 @@
1
+ From () 2019-10-02 05:04:34 +0000
2
+ Delivered-To: azumakuniyuki@google.example.com
3
+ Received: by 2002:ac9:2aea:0:0:0:0:0 with SMTP id d42csp534584ocb;
4
+ Tue, 1 Oct 2019 22:04:34 -0700 (PDT)
5
+ X-Received: by 2002:a05:6830:12d5:: with SMTP id a21mr1130562otq.213.1569992674308;
6
+ Tue, 01 Oct 2019 22:04:34 -0700 (PDT)
7
+ ARC-Seal: i=1; a=rsa-sha256; t=1569992674; cv=none;
8
+ d=google.com; s=arc-20160816;
9
+ b=s466c2AEgP7pmPxnTYGeGxkejICx0Ltt4sfJLVszS4Cn4KlMApryzc0vjPZBuOEYKe
10
+ 1mPCvhbwCpIAM7m3dFLWbmChC0WQ7EwyZyVrPmNQxUXahFcAVwFhzxTZCRlfxel6NsQQ
11
+ xc8Qq0Bk1/s0LK8y7+pjEtqE2JHVx5EyT4+tXaVnI27moHyrk0EcUPUSkjBmaZgYVDK/
12
+ oRie4GdvO5HFA2mhYhfKf9VB8GCBxCTulisJrW4fzJGPunpmAfNKKu3bwkW1XqDmWJZA
13
+ IofgDmVLoODRdS1XB03JAPPm5tSsd9aG2R/aP/mqnnSSC14q63iY6i+rwz9u0GAhWMzb
14
+ UwQg==
15
+ ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
16
+ h=date:message-id:in-reply-to:references:subject:auto-submitted:to
17
+ :from:dkim-signature;
18
+ bh=ABzdzVizjj/kHrdgqBAl8z5Z6H5rKtiQoBrmAtVq3Es=;
19
+ b=yrNiOCezCBbUuY5FJAcl0ijmJafMo8IbsfUtJjqEOe5nDjZYUESTGwnvizX727UbMV
20
+ vfhidjTRXgq6t0T7eWi87lrQ7njpaviu8C8RTB+NT0LeZclAS1wCLy7xjla5Vod0HkZI
21
+ x4vAd60s1186fkui4eUEt9+jlYd7gnx2IQzuEjIj1R1O9G3QZftx010Oxovzxr2/IOcU
22
+ PaHuoem7Wyv1b7KAHJbdmfJMonZyIS9yWJXp1cVxIRHscGaZw82/5lFbcxP6bKRGfzZD
23
+ GTHLx1rdmMBHfzCfT80y3eMfnK00UEQNpie/mi2cVbb0bNpwIzvX72UiARNiji//TtGV
24
+ 4m0A==
25
+ ARC-Authentication-Results: i=1; mx.google.com;
26
+ dkim=pass header.i=@googlemail.com header.s=20161025 header.b=p4F0L6jw;
27
+ spf=pass (google.com: best guess record for domain of postmaster@mail-sor-f69.google.com designates 209.85.220.69 as permitted sender) smtp.helo=mail-sor-f69.google.com;
28
+ dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com
29
+ Return-Path: <>
30
+ Received: from mail-sor-f69.google.com (mail-sor-f69.google.com. [209.85.220.69])
31
+ by mx.google.com with SMTPS id r6sor10081403oib.155.2019.10.01.22.04.34
32
+ for <azumakuniyuki@google.example.com>
33
+ (Google Transport Security);
34
+ Tue, 01 Oct 2019 22:04:34 -0700 (PDT)
35
+ Received-SPF: pass (google.com: best guess record for domain of postmaster@mail-sor-f69.google.com designates 209.85.220.69 as permitted sender) client-ip=209.85.220.69;
36
+ Authentication-Results: mx.google.com;
37
+ dkim=pass header.i=@googlemail.com header.s=20161025 header.b=p4F0L6jw;
38
+ spf=pass (google.com: best guess record for domain of postmaster@mail-sor-f69.google.com designates 209.85.220.69 as permitted sender) smtp.helo=mail-sor-f69.google.com;
39
+ dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=googlemail.com
40
+ DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
41
+ d=googlemail.com; s=20161025;
42
+ h=from:to:auto-submitted:subject:references:in-reply-to:message-id
43
+ :date;
44
+ bh=ABzdzVizjj/kHrdgqBAl8z5Z6H5rKtiQoBrmAtVq3Es=;
45
+ b=p4F0L6jwQvHTIx17rsIxbm2mzXk23xMyP+YoIccrhIMBjy2V0OA80EgS5Iw54tCHgR
46
+ nO77MTmN6zinC+8nhfHc/JcYgqHIa72xDS+qRtuMdJa46oV0g8CDMad1t7PvSSNJKc3z
47
+ 2J9Lo7ORtabDiMMFET0QbkyRFeMmqhVGb+hTiZ+RDemLgPdzDGi3NEFiLMz2QTLUeju+
48
+ wiL5QdV8drN7Giwhk45adWyqPAezHMalM07IIRugBqUg7tld1GO+YMjygQTJ9D/SB1XE
49
+ bLvziPOnvGUChdmulse0fdrKjdBZ2GYuKDAgtjopRHYKoCkOARJBT5za44f+lr0zI6zq
50
+ rG/w==
51
+ X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
52
+ d=1e100.net; s=20161025;
53
+ h=x-gm-message-state:from:to:auto-submitted:subject:references
54
+ :in-reply-to:message-id:date;
55
+ bh=ABzdzVizjj/kHrdgqBAl8z5Z6H5rKtiQoBrmAtVq3Es=;
56
+ b=VCELwDywaW5aD99lqqP+Ys2VWuhYA+frdRbDobkoB5lSmGzob2J4+rKrcuEb6Xeulp
57
+ dETZr4P6eNyeWn0YWitE8iO1/clsCSdAvEcA9wxnyIqRYe/XJ/KwGMCxCWms99FTBkWg
58
+ GXjh7Smja6dAn6q27TRNZmgNPF5iys/I1Sd3m9L4V3IMhAude567vTB2dUmmbBZv/+rR
59
+ Z1juefz/kYeNAJkVoSGD7O2yYCeA8nXxH3iUHnU0I3OdgkBxxaDgMiy/0EGsGCsa0SOX
60
+ 2hWmYqAtE9xUHV/U3LwBCRFSZXYpeT6xYvBLLpJ+K/huk3X9CT38mqXV57HRKICuLZGs
61
+ LQeA==
62
+ X-Gm-Message-State: APjAAAXdv+LgKbYtwZ/CV5W06t6Lnr/T95bL5LBrqyaibxzJj29Lx6xE
63
+ JjDiVF2D98tMAZ3arb4jRna8DR7jxwQc4aXBzIgYUg==
64
+ X-Google-Smtp-Source: APXvYqybvlkLi7lmekk+MhahgOE+QPesBUPkdBuCJyzTJBu1qfccPpWSD/mU7gQ07APc5oINAh7q5C4769sp9QqbyIVecP2BGoCVAbU=
65
+ X-Received: by 2002:aca:ad13:: with SMTP id w19mr1368275oie.166.1569992674224;
66
+ Tue, 01 Oct 2019 22:04:34 -0700 (PDT)
67
+ Content-Type: multipart/report; boundary="000000000000a59fc80593e667a0"; report-type=delivery-status
68
+ Return-Path: <>
69
+ Received: by 2002:aca:ad13:: with SMTP id w19mr1276139oie.166; Tue, 01 Oct
70
+ 2019 22:04:34 -0700 (PDT)
71
+ From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
72
+ To: azumakuniyuki@google.example.com
73
+ Auto-Submitted: auto-replied
74
+ Subject: Delivery Status Notification (Failure)
75
+ References: <CAByYQsEsy_6KEHCuspEbEKOo1p=Y5Q-xE3PbJQokvWTuC=X5Rw@mail.gmail.com>
76
+ In-Reply-To: <CAByYQsEsy_6KEHCuspEbEKOo1p=Y5Q-xE3PbJQokvWTuC=X5Rw@mail.gmail.com>
77
+ X-Failed-Recipients: nekonyaan@gmal.com
78
+ Message-ID: <5d942fe2.1c69fb81.d8c36.3654.GMR@mx.google.com>
79
+ Date: Tue, 01 Oct 2019 22:04:34 -0700 (PDT)
80
+
81
+ --000000000000a59fc80593e667a0
82
+ Content-Type: multipart/related; boundary="000000000000a5a7020593e667ad"
83
+
84
+ --000000000000a5a7020593e667ad
85
+ Content-Type: multipart/alternative; boundary="000000000000a5a70d0593e667ae"
86
+
87
+ --000000000000a5a70d0593e667ae
88
+ Content-Type: text/plain; charset="UTF-8"
89
+
90
+
91
+ ** Address not found **
92
+
93
+ Your message wasn't delivered to nekonyaan@gmal.com because the domain gmal.com couldn't be found. Check for typos or unnecessary spaces and try again.
94
+
95
+
96
+
97
+ The response was:
98
+
99
+ DNS Error: 16578478 DNS type 'mx' lookup of gmal.com responded with code NOERROR
100
+ 16578478 DNS type 'mx' lookup of gmal.com had no relevant answers.
101
+ 16578478 DNS type 'aaaa' lookup of gmal.com responded with code NOERROR
102
+ 16578478 DNS type 'aaaa' lookup of gmal.com had no relevant answers.
103
+ 16578478 DNS type 'a' lookup of gmal.com responded with code NOERROR
104
+ 16578478 DNS type 'a' lookup of gmal.com had no relevant answers.
105
+
106
+ --000000000000a5a70d0593e667ae
107
+ Content-Type: text/html; charset="UTF-8"
108
+
109
+
110
+ <html>
111
+ <head>
112
+ <style>
113
+ * {
114
+ font-family:Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif;
115
+ }
116
+ </style>
117
+ </head>
118
+ <body>
119
+ <table cellpadding="0" cellspacing="0" class="email-wrapper" style="padding-top:32px;background-color:#ffffff;"><tbody>
120
+ <tr><td>
121
+ <table cellpadding=0 cellspacing=0><tbody>
122
+ <tr><td style="max-width:560px;padding:24px 24px 32px;background-color:#fafafa;border:1px solid #e0e0e0;border-radius:2px">
123
+ <img style="padding:0 24px 16px 0;float:left" width=72 height=72 alt="Error Icon" src="cid:icon.png">
124
+ <table style="min-width:272px;padding-top:8px"><tbody>
125
+ <tr><td><h2 style="font-size:20px;color:#212121;font-weight:bold;margin:0">
126
+ Address not found
127
+ </h2></td></tr>
128
+ <tr><td style="padding-top:20px;color:#757575;font-size:16px;font-weight:normal;text-align:left">
129
+ Your message wasn't delivered to <a style='color:#212121;text-decoration:none'><b>nekonyaan@gmal.com</b></a> because the domain gmal.com couldn't be found. Check for typos or unnecessary spaces and try again.
130
+ </td></tr>
131
+ </tbody></table>
132
+ </td></tr>
133
+ </tbody></table>
134
+ </td></tr>
135
+ <tr style="border:none;background-color:#fff;font-size:12.8px;width:90%">
136
+ <td align="left" style="padding:48px 10px">
137
+ The response was:<br/>
138
+ <p style="font-family:monospace">
139
+ DNS Error: 16578478 DNS type &#39;mx&#39; lookup of gmal.com responded with code NOERROR
140
+ 16578478 DNS type &#39;mx&#39; lookup of gmal.com had no relevant answers.
141
+ 16578478 DNS type &#39;aaaa&#39; lookup of gmal.com responded with code NOERROR
142
+ 16578478 DNS type &#39;aaaa&#39; lookup of gmal.com had no relevant answers.
143
+ 16578478 DNS type &#39;a&#39; lookup of gmal.com responded with code NOERROR
144
+ 16578478 DNS type &#39;a&#39; lookup of gmal.com had no relevant answers.
145
+ </p>
146
+ </td>
147
+ </tr>
148
+ </tbody></table>
149
+ </body>
150
+ </html>
151
+
152
+ --000000000000a5a70d0593e667ae--
153
+ --000000000000a5a7020593e667ad
154
+ Content-Type: image/png; name="icon.png"
155
+ Content-Disposition: attachment; filename="icon.png"
156
+ Content-Transfer-Encoding: base64
157
+ Content-ID: <icon.png>
158
+
159
+ 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
184
+ LK8FGADCTxYrr+EVJgAAAABJRU5ErkJggg==
185
+ --000000000000a5a7020593e667ad--
186
+ --000000000000a59fc80593e667a0
187
+ Content-Type: message/delivery-status
188
+
189
+ Reporting-MTA: dns; googlemail.com
190
+ Arrival-Date: Tue, 01 Oct 2019 22:04:33 -0700 (PDT)
191
+ X-Original-Message-ID: <CAByYQsEsy_6KEHCuspEbEKOo1p=Y5Q-xE3PbJQokvWTuC=X5Rw@mail.gmail.com>
192
+
193
+ Final-Recipient: rfc822; nekonyaan@gmal.com
194
+ Action: failed
195
+ Status: 4.0.0
196
+ Diagnostic-Code: smtp; DNS Error: 16578478 DNS type 'mx' lookup of gmal.com responded with code NOERROR
197
+ 16578478 DNS type 'mx' lookup of gmal.com had no relevant answers.
198
+ 16578478 DNS type 'aaaa' lookup of gmal.com responded with code NOERROR
199
+ 16578478 DNS type 'aaaa' lookup of gmal.com had no relevant answers.
200
+ 16578478 DNS type 'a' lookup of gmal.com responded with code NOERROR
201
+ 16578478 DNS type 'a' lookup of gmal.com had no relevant answers.
202
+ Last-Attempt-Date: Tue, 01 Oct 2019 22:04:34 -0700 (PDT)
203
+
204
+ --000000000000a59fc80593e667a0
205
+ Content-Type: message/rfc822
206
+
207
+ DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
208
+ d=gmail.com; s=20161025;
209
+ h=mime-version:from:date:message-id:subject:to;
210
+ bh=4QC6t0pAnuCZL9IecOAvTw9vE2yfk3lDg6ZcRdMt8n0=;
211
+ b=aoVOIVVU4O1Y3frWdTzY8k/aXPCxkSdycXhN3U8B9bkbxgZ29WiZUxAm7xMh+gPlkz
212
+ nMiLhV2z3X6dGUJyK7qMqlxLNACSg8h7UftraAwIxdgIxgn92k7aB+QW6BaNdcCClMpj
213
+ GFVqtVoptRN+W+WUY64d7pW+m8pn6Y/xXRCWUL+xil7KnzcUQLCf/RnHimP3sDapjtvv
214
+ +Hx9mHjBC6H+TieAN4l1RQhs9vLC85Y6WE7IzweWBTvsPBKMQ5fX/73crc0e8KHNM+3x
215
+ tfkW5xVvRm2116VyxE+DVN7Osyntt/C87NtMbVsBqTcssqq8w+z37ygleYKOZfeSeewd
216
+ CunQ==
217
+ X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
218
+ d=1e100.net; s=20161025;
219
+ h=x-gm-message-state:mime-version:from:date:message-id:subject:to;
220
+ bh=4QC6t0pAnuCZL9IecOAvTw9vE2yfk3lDg6ZcRdMt8n0=;
221
+ b=o3cfJkKm/cjWccXNGMvTFb+p7jOtkZBhAHrANiUAf8oCRlpdqKyzuKE3tM6u38wBtV
222
+ 1r6fM8cizSBYZXciTCaLaUStQCXkCq/Yu4jEvaS9zj0XoxpHwoxFC1S6Ecl9FZ/9XK79
223
+ loGy/pxoh9lHbOxQELLLwISNkQxhfbaD+thYj8ZGC7a/NW8Glv6zPHx0sLdjM813s5RL
224
+ GMVgZFu0vyZedhWy3ii1xvCFhoJizEe5TmG4Mv0Aoj2kz9tS6qQBZ0Mnq6EySlF5hLUV
225
+ HtBSbAOjfYJkUa0L6i+bzHLRzu1C37f9fJN9rUHOd7WWGstKmkBnpcPPxSf6dSZF47pG
226
+ rGlA==
227
+ X-Gm-Message-State: APjAAAVE3sEzh1mcYew9MeyIkg5T4L3uGEAgjP9v8WynzCL9Ai6cLFup
228
+ iJyZ8EVHPbSTwlTz2DRmLk+Qv36ztGhDisMRh2Xha+wx
229
+ X-Google-Smtp-Source: APXvYqxde9cSUIkZ02OgVGdXyQ/HXk0cMHD5OElcjFWglJVfV/Si/mPUVpMdGg01zcPiHXN8LJym3kOgljTJkKSOGNY=
230
+ X-Received: by 2002:aca:ad13:: with SMTP id w19mr1368240oie.166.1569992673656;
231
+ Tue, 01 Oct 2019 22:04:33 -0700 (PDT)
232
+ MIME-Version: 1.0
233
+ From: azumakuniyuki <azumakuniyuki@google.example.com>
234
+ Date: Wed, 2 Oct 2019 14:04:23 +0900
235
+ Message-ID: <CAByYQsEsy_6KEHCuspEbEKOo1p=Y5Q-xE3PbJQokvWTuC=X5Rw@mail.gmail.com>
236
+ Subject: Nyaaaaaaaan
237
+ To: "Neko Nyaan" <nekonyaan@gmal.com>
238
+ Content-Type: multipart/alternative; boundary="0000000000009d034f0593e6679a"
239
+
240
+ --0000000000009d034f0593e6679a
241
+ Content-Type: text/plain; charset="UTF-8"
242
+ Content-Transfer-Encoding: base64
243
+
244
+ IF8gICBfICAgICAgXyAgICAgICAgICAgXyAgIF8gICAgICAgICAgICAgICAgICAg
245
+ ICAgICAgCnwgXCB8IHwgX19ffCB8IF9fX19fICAgfCBcIHwgfF8gICBfICBfXyBf
246
+ ICBfXyBfIF8gX18gIAp8ICBcfCB8LyBfIFwgfC8gLyBfIFwgIHwgIFx8IHwgfCB8
247
+ IHwvIF9gIHwvIF9gIHwgJ18gXCAKfCB8XCAgfCAgX18vICAgPCAoXykgfCB8IHxc
248
+ ICB8IHxffCB8IChffCB8IChffCB8IHwgfCB8CnxffCBcX3xcX19ffF98XF9cX19f
249
+ LyAgfF98IFxffFxfXywgfFxfXyxffFxfXyxffF98IHxffAogICAgICAgICAgICAg
250
+ ICAgICAgICAgICAgICAgICB8X19fLyAgICAgICAgICAgICAgICAgICAK
251
+ --0000000000009d034f0593e6679a
252
+ Content-Type: text/html; charset="UTF-8"
253
+ Content-Transfer-Encoding: quoted-printable
254
+
255
+ <p class=3D"p1" style=3D"margin:0px 0px 3px;font-stretch:normal;font-size:2=
256
+ 5.5px;l
257
+ ----- Message truncated -----
258
+ --0000000000009d034f0593e6679a--
259
+ --000000000000a59fc80593e667a0--
260
+
261
+