sisimai 4.14.2 → 4.15.0

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +19 -2
  3. data/.travis.yml +0 -1
  4. data/Changes +16 -0
  5. data/README.md +69 -17
  6. data/appveyor.yml +23 -0
  7. data/lib/sisimai.rb +9 -7
  8. data/lib/sisimai/address.rb +8 -2
  9. data/lib/sisimai/arf.rb +1 -6
  10. data/lib/sisimai/data.rb +35 -47
  11. data/lib/sisimai/data/json.rb +16 -12
  12. data/lib/sisimai/datetime.rb +1 -8
  13. data/lib/sisimai/mail/maildir.rb +0 -3
  14. data/lib/sisimai/mail/mbox.rb +1 -1
  15. data/lib/sisimai/mail/stdin.rb +2 -1
  16. data/lib/sisimai/message.rb +46 -31
  17. data/lib/sisimai/mime.rb +2 -2
  18. data/lib/sisimai/msp.rb +3 -3
  19. data/lib/sisimai/msp/de/einsundeins.rb +1 -1
  20. data/lib/sisimai/msp/de/gmx.rb +1 -1
  21. data/lib/sisimai/msp/jp/biglobe.rb +2 -2
  22. data/lib/sisimai/msp/jp/ezweb.rb +10 -10
  23. data/lib/sisimai/msp/jp/kddi.rb +1 -1
  24. data/lib/sisimai/msp/ru/yandex.rb +1 -1
  25. data/lib/sisimai/msp/uk/messagelabs.rb +1 -1
  26. data/lib/sisimai/msp/us/amazonses.rb +1 -1
  27. data/lib/sisimai/msp/us/amazonworkmail.rb +224 -0
  28. data/lib/sisimai/msp/us/aol.rb +1 -1
  29. data/lib/sisimai/msp/us/bigfoot.rb +1 -1
  30. data/lib/sisimai/msp/us/facebook.rb +1 -1
  31. data/lib/sisimai/msp/us/google.rb +1 -1
  32. data/lib/sisimai/msp/us/office365.rb +273 -0
  33. data/lib/sisimai/msp/us/outlook.rb +2 -3
  34. data/lib/sisimai/msp/us/receivingses.rb +1 -1
  35. data/lib/sisimai/msp/us/sendgrid.rb +2 -2
  36. data/lib/sisimai/msp/us/verizon.rb +7 -7
  37. data/lib/sisimai/msp/us/yahoo.rb +1 -1
  38. data/lib/sisimai/msp/us/zoho.rb +1 -1
  39. data/lib/sisimai/mta.rb +8 -9
  40. data/lib/sisimai/mta/activehunter.rb +1 -1
  41. data/lib/sisimai/mta/apachejames.rb +1 -1
  42. data/lib/sisimai/mta/courier.rb +1 -1
  43. data/lib/sisimai/mta/domino.rb +1 -1
  44. data/lib/sisimai/mta/exchange.rb +15 -15
  45. data/lib/sisimai/mta/imailserver.rb +1 -1
  46. data/lib/sisimai/mta/interscanmss.rb +1 -1
  47. data/lib/sisimai/mta/mailfoundry.rb +1 -1
  48. data/lib/sisimai/mta/mailmarshalsmtp.rb +1 -1
  49. data/lib/sisimai/mta/mcafee.rb +1 -1
  50. data/lib/sisimai/mta/messagingserver.rb +1 -1
  51. data/lib/sisimai/mta/mxlogic.rb +2 -2
  52. data/lib/sisimai/mta/notes.rb +1 -1
  53. data/lib/sisimai/mta/opensmtpd.rb +1 -1
  54. data/lib/sisimai/mta/postfix.rb +2 -2
  55. data/lib/sisimai/mta/qmail.rb +1 -1
  56. data/lib/sisimai/mta/sendmail.rb +2 -2
  57. data/lib/sisimai/mta/surfcontrol.rb +1 -1
  58. data/lib/sisimai/mta/v5sendmail.rb +1 -1
  59. data/lib/sisimai/mta/x1.rb +1 -1
  60. data/lib/sisimai/mta/x2.rb +1 -1
  61. data/lib/sisimai/mta/x3.rb +1 -1
  62. data/lib/sisimai/mta/x4.rb +1 -1
  63. data/lib/sisimai/mta/x5.rb +1 -1
  64. data/lib/sisimai/order.rb +4 -1
  65. data/lib/sisimai/reason.rb +15 -18
  66. data/lib/sisimai/reason/hostunknown.rb +5 -0
  67. data/lib/sisimai/reason/mesgtoobig.rb +5 -0
  68. data/lib/sisimai/reason/userunknown.rb +1 -1
  69. data/lib/sisimai/rfc3464.rb +3 -3
  70. data/lib/sisimai/rfc3834.rb +1 -1
  71. data/lib/sisimai/time.rb +1 -1
  72. data/lib/sisimai/version.rb +1 -1
  73. data/set-of-emails/maildir/bsd/us-amazonworkmail-01.eml +156 -0
  74. data/set-of-emails/maildir/bsd/us-amazonworkmail-02.eml +160 -0
  75. data/set-of-emails/maildir/bsd/us-amazonworkmail-03.eml +161 -0
  76. data/set-of-emails/maildir/bsd/us-amazonworkmail-04.eml +156 -0
  77. data/set-of-emails/maildir/bsd/us-amazonworkmail-05.eml +157 -0
  78. data/set-of-emails/maildir/bsd/us-office365-01.eml +102 -0
  79. data/sisimai.gemspec +7 -0
  80. metadata +26 -3
@@ -187,7 +187,7 @@ module Sisimai
187
187
  if mhead['received'].size > 0
188
188
  # Get localhost and remote host name from Received header.
189
189
  r0 = mhead['received']
190
- ['lhost', 'rhost'].each { |a| e[a] ||= '' }
190
+ %w|lhost rhost|.each { |a| e[a] ||= '' }
191
191
  e['lhost'] = Sisimai::RFC5322.received(r0[0]).shift if e['lhost'].empty?
192
192
  e['rhost'] = Sisimai::RFC5322.received(r0[-1]).pop if e['rhost'].empty?
193
193
  end
@@ -71,6 +71,8 @@ module Sisimai
71
71
  'Sisimai::MSP::DE::GMX',
72
72
  'Sisimai::MSP::RU::Yandex',
73
73
  'Sisimai::MSP::US::ReceivingSES',
74
+ 'Sisimai::MSP::US::Office365',
75
+ 'Sisimai::MSP::US::AmazonWorkMail',
74
76
  'Sisimai::MSP::US::Zoho',
75
77
  'Sisimai::MTA::McAfee',
76
78
  'Sisimai::MTA::Activehunter',
@@ -121,6 +123,7 @@ module Sisimai
121
123
  'Sisimai::MTA::Postfix',
122
124
  'Sisimai::MTA::Exchange',
123
125
  'Sisimai::MTA::Notes',
126
+ 'Sisimai::MSP::US::Office365',
124
127
  'Sisimai::MSP::US::Verizon',
125
128
  'Sisimai::MSP::US::SendGrid',
126
129
  'Sisimai::MTA::IMailServer',
@@ -161,7 +164,7 @@ module Sisimai
161
164
  # Get regular expression patterns for specified field
162
165
  # @param [String] group Group name for "ORDER BY"
163
166
  # @return [Hash] Pattern table for the group
164
- def by(group = '')
167
+ def by(group = '')
165
168
  return {} unless group.size > 0
166
169
  return PatternTable[group] if PatternTable.key?(group)
167
170
  return {}
@@ -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 ['undefined', 'onhold', 'systemerror', 'securityerror', 'networkerror']
11
+ return %w|undefined onhold systemerror securityerror networkerror|
12
12
  end
13
13
  RetryReasons = Sisimai::Reason.retry
14
14
 
@@ -39,11 +39,10 @@ module Sisimai
39
39
  end
40
40
 
41
41
  reasontext = ''
42
- classorder = [
43
- 'MailboxFull', 'MesgTooBig', 'ExceedLimit', 'Suspend', 'HasMoved',
44
- 'NoRelaying', 'UserUnknown', 'Filtered', 'Rejected', 'HostUnknown',
45
- 'SpamDetected', 'TooManyConn', 'Blocked',
46
- ]
42
+ classorder = %w|
43
+ MailboxFull MesgTooBig ExceedLimit Suspend HasMoved NoRelaying UserUnknown
44
+ Filtered Rejected HostUnknown SpamDetected TooManyConn Blocked
45
+ |
47
46
 
48
47
  if argvs.diagnostictype == 'SMTP' || argvs.diagnostictype == ''
49
48
  # Diagnostic-Code: SMTP; ... or empty value
@@ -112,11 +111,10 @@ module Sisimai
112
111
  diagnostic = argvs.diagnosticcode || ''
113
112
  commandtxt = argvs.smtpcommand || ''
114
113
  reasontext = ''
115
- classorder = [
116
- 'MailboxFull', 'SpamDetected', 'SecurityError', 'SystemError',
117
- 'NetworkError', 'Suspend', 'Expired', 'ContentError',
118
- 'SystemFull', 'NotAccept', 'MailerError',
119
- ]
114
+ classorder = %w|
115
+ MailboxFull SpamDetected SecurityError SystemError NetworkError
116
+ Suspend Expired ContentError SystemFull NotAccept MailerError
117
+ |
120
118
 
121
119
  require 'sisimai/smtp/status'
122
120
  reasontext = Sisimai::SMTP::Status.name(statuscode)
@@ -184,13 +182,12 @@ module Sisimai
184
182
 
185
183
  reasontext = ''
186
184
  typestring = ''
187
- classorder = [
188
- 'MailboxFull', 'MesgTooBig', 'ExceedLimit', 'Suspend', 'UserUnknown',
189
- 'Filtered', 'Rejected', 'HostUnknown', 'SpamDetected', 'TooManyConn',
190
- 'Blocked', 'SpamDetected', 'SecurityError', 'SystemError',
191
- 'NetworkError', 'Suspend', 'Expired', 'ContentError', 'HasMoved',
192
- 'SystemFull', 'NotAccept', 'MailerError', 'NoRelaying', 'OnHold',
193
- ]
185
+ classorder = %w|
186
+ MailboxFull MesgTooBig ExceedLimit Suspend UserUnknown Filtered Rejected
187
+ HostUnknown SpamDetected TooManyConn Blocked SpamDetected SecurityError
188
+ SystemError NetworkError Suspend Expired ContentError HasMoved SystemFull
189
+ NotAccept MailerError NoRelaying OnHold
190
+ |
194
191
 
195
192
  statuscode = Sisimai::SMTP::Status.find(argv1)
196
193
  if cv = argv1.match(/\A(SMTP|X-.+);/i)
@@ -1,5 +1,10 @@
1
1
  module Sisimai
2
2
  module Reason
3
+ # This is the error that a domain part ( Right hand side of @ sign ) of a
4
+ # recipient's email address does not exist. In many case, the domain part
5
+ # is misspelled, or the domain name has been expired.
6
+ # Sisimai will set "hostunknown" to the reason of email bounce if the value
7
+ # of Status: field in a bounce mail is "5.1.2".
3
8
  module HostUnknown
4
9
  # Imported from p5-Sisimail/lib/Sisimai/Reason/HostUnknown.pm
5
10
  class << self
@@ -1,5 +1,10 @@
1
1
  module Sisimai
2
2
  module Reason
3
+ # This is the error that a sent email size is too big for a destination mail
4
+ # server. In many case, There are many attachment files with email, or the
5
+ # file size is too large.
6
+ # Sisimai will set "mesgtoobig" to the reason of email bounce if the value
7
+ # of Status: field in a bounce email is "5.3.4".
3
8
  module MesgTooBig
4
9
  # Imported from p5-Sisimail/lib/Sisimai/Reason/MesgTooBig.pm
5
10
  class << self
@@ -136,7 +136,7 @@ module Sisimai
136
136
  return true if argvs.reason == Sisimai::Reason::UserUnknown.text
137
137
 
138
138
  require 'sisimai/smtp/status'
139
- prematches = ['NoRelaying', 'Blocked', 'MailboxFull', 'HasMoved']
139
+ prematches = %w|NoRelaying Blocked MailboxFull HasMoved|
140
140
  matchother = false
141
141
  statuscode = argvs.deliverystatus || ''
142
142
  diagnostic = argvs.diagnosticcode || ''
@@ -334,8 +334,8 @@ module Sisimai
334
334
  match = 0
335
335
 
336
336
  # Failed to get a recipient address at code above
337
- match += 1 if mhead['from'] =~ Re0[:'from']
338
- match += 1 if mhead['subject'] =~ Re0[:'subject']
337
+ match += 1 if mhead['from'] =~ Re0[:from]
338
+ match += 1 if mhead['subject'] =~ Re0[:subject]
339
339
 
340
340
  if mhead['return-path']
341
341
  # Check the value of Return-Path of the message
@@ -480,7 +480,7 @@ module Sisimai
480
480
  if mhead['received'].size > 0
481
481
  # Get localhost and remote host name from Received header.
482
482
  r0 = mhead['received']
483
- ['lhost', 'rhost'].each { |a| e[a] ||= '' }
483
+ %w|lhost rhost|.each { |a| e[a] ||= '' }
484
484
  e['lhost'] = Sisimai::RFC5322.received(r0[0]).shift if e['lhost'].empty?
485
485
  e['rhost'] = Sisimai::RFC5322.received(r0[-1]).pop if e['rhost'].empty?
486
486
  end
@@ -136,7 +136,7 @@ module Sisimai
136
136
  if mhead['received'].size > 0
137
137
  # Get localhost and remote host name from Received header.
138
138
  r = mhead['received']
139
- ['lhost', 'rhost'].each { |a| v[a] ||= '' }
139
+ %w|lhost rhost|.each { |a| v[a] ||= '' }
140
140
  v['lhost'] = Sisimai::RFC5322.received(r[0]).shift if v['lhost'].empty?
141
141
  v['rhost'] = Sisimai::RFC5322.received(r[-1]).pop if v['rhost'].empty?
142
142
  end
@@ -4,7 +4,7 @@ module Sisimai
4
4
  # Sisimai::Time is a child class of Date for Sisimai::Data.
5
5
  class Time < DateTime
6
6
  # Imported from p5-Sisimail/lib/Sisimai/Time.pm
7
- def to_json
7
+ def to_json(*)
8
8
  return self.to_time.to_i
9
9
  end
10
10
  end
@@ -1,4 +1,4 @@
1
1
  # Define the version number of Sisimai
2
2
  module Sisimai
3
- VERSION = '4.14.2'
3
+ VERSION = '4.15.0'
4
4
  end
@@ -0,0 +1,156 @@
1
+ Return-Path: <>
2
+ Received: from a27-5.smtp-out.us-west-2.amazonses.com
3
+ (a27-5.smtp-out.us-west-2.amazonses.com [54.240.27.5]) by
4
+ inbound-smtp.us-west-2.amazonaws.com with SMTP id
5
+ k6sbr4gfpakd50h3l0qtp3gteubfgi4rv5kvlh01 for shironeko@nyaan.example.awsapps.com; Thu, 14
6
+ Jan 2016 07:45:12 +0000
7
+ Subject: =?iso-8859-15?Q?Delivery_Status_Notification_=28Failure=29?=
8
+ From: MAILER-DAEMON@us-west-2.amazonses.com
9
+ To: =?iso-8859-15?Q?shironeko?= <shironeko@nyaan.example.awsapps.com>
10
+ Date: Thu, 14 Jan 2016 07:45:12 +0000
11
+ Mime-Version: 1.0
12
+ Content-Type: multipart/mixed;
13
+ boundary="=_weRBsyzf5DEZ4iKPso9+4xMUtxWcH6Dsd69xY+XrBBjFznNm"
14
+ X-Mailer: Amazon WorkMail
15
+ X-Ses-Outgoing: 2016.01.14-54.240.27.5
16
+ Message-Id:
17
+ <000001523f187053-c10da3fb-2737-4bc7-8a98-44d4decbfe6d-000000@us-west-2.amazonses.com>
18
+
19
+ This is a multi-part message in MIME format. Your mail reader does not
20
+ understand MIME message format.
21
+ --=_weRBsyzf5DEZ4iKPso9+4xMUtxWcH6Dsd69xY+XrBBjFznNm
22
+ Content-Type: text/plain; charset=iso-8859-15
23
+ Content-Transfer-Encoding: quoted-printable
24
+
25
+ An error occurred while trying to deliver the mail to the following recip=
26
+ ients:
27
+ kijitora@example.jp
28
+
29
+ Technical report:
30
+
31
+ Reporting-MTA: d=
32
+ sn; a27-85.smtp-out.us-west-2.amazonses.com
33
+
34
+ Action: failed
35
+ Final-Reci=
36
+ pient: rfc822; kijitora@example.jp
37
+ Diagnostic-Code: smtp; 550 5.1.1=
38
+ <kijitora@example.jp>... User Unknown
39
+ Status: 5.1.1
40
+
41
+
42
+ --=_weRBsyzf5DEZ4iKPso9+4xMUtxWcH6Dsd69xY+XrBBjFznNm
43
+ Content-Type: message/rfc822
44
+ Content-Disposition: attachment
45
+
46
+ Subject: Nyaaaaan
47
+ From: =?utf-8?Q?shironeko?= <shironeko@nyaan.example.awsapps.com>
48
+ To: =?utf-8?Q?kijitora=40example=2Ejp?= <kijitora@example.jp>
49
+ Date: Thu, 14 Jan 2016 07:45:09 +0000
50
+ Mime-Version: 1.0
51
+ Content-Type: multipart/alternative;
52
+ boundary="=_weRBaJZg6ttYHi3reqsZyiFLKu1432GwSx+ZXHgSZi-nbhzE"
53
+ Message-Id:
54
+ <000001523f1865dd-0dbfd06e-bfce-4637-b049-3318ea42f98a-000000@us-west-2.amazonses.com>
55
+ X-Priority: 3 (Normal)
56
+ X-Mailer: Amazon WorkMail
57
+ X-Original-Mailer: Amazon WorkMail
58
+ X-Ses-Outgoing: 2016.01.14-54.240.27.85
59
+
60
+ This is a multi-part message in MIME format. Your mail reader does not
61
+ understand MIME message format.
62
+ --=_weRBaJZg6ttYHi3reqsZyiFLKu1432GwSx+ZXHgSZi-nbhzE
63
+ Content-Type: text/plain; charset=utf-8
64
+ Content-Transfer-Encoding: base64
65
+
66
+ 44Gr44KD44O844KT
67
+ --=_weRBaJZg6ttYHi3reqsZyiFLKu1432GwSx+ZXHgSZi-nbhzE
68
+ Content-Type: text/html; charset=utf-8
69
+ Content-Transfer-Encoding: quoted-printable
70
+
71
+ <!DOCTYPE HTML><html>
72
+ <head>
73
+ <meta name=3D"Generator" content=3D"Amazon=
74
+ WorkMail v3.0-2023.77">
75
+ <meta http-equiv=3D"Content-Type" content=3D"te=
76
+ xt/html; charset=3Dutf-8">
77
+ <title>Nyaaaaan</title>
78
+ </head>
79
+ <body>
80
+ <fo=
81
+ nt face=3D"Arial, Tahoma, Helvetica, sans-serif" size=3D"2">=E3=81=AB=E3=82=
82
+ =83=E3=83=BC=E3=82=93</font>
83
+ </body>
84
+ </html>
85
+ --=_weRBaJZg6ttYHi3reqsZyiFLKu1432GwSx+ZXHgSZi-nbhzE--
86
+
87
+ --=_weRBsyzf5DEZ4iKPso9+4xMUtxWcH6Dsd69xY+XrBBjFznNm
88
+ Content-Type: application/ms-tnef; name=winmail.dat
89
+ Content-Transfer-Encoding: base64
90
+ Content-Disposition: attachment; filename=winmail.dat
91
+
92
+ eJ8+IgAAAQOQBgBgDQAAKQAAAAMAFw4AAAAAAwAPNP0/BQAUAEtmAgDWHQUABgAUAEhnAQAA
93
+ AAAAAAkUAEpnAQAAAAAAAEIUAKRnAQAAAAAAAJcCAcJnAQAAABAAAADdICKau0tGUbpO/TRr
94
+ a8DfHwAIhQjx9QA/jsdGr3JeIBwjSecAAAAAAQAAAAEAAAAMAwAAIgBUAGgAdQAsACAAMQA0
95
+ ACAASgBhAG4AIAAyADAAMQA2ACAAMAA3ADoANAA1ADoAMQAyACAAKwAwADAAMAAwACIAIAAi
96
+ AEQAZQBsAGkAdgBlAHIAeQAgAFMAdABhAHQAdQBzACAATgBvAHQAaQBmAGkAYwBhAHQAaQBv
97
+ AG4AIAAoAEYAYQBpAGwAdQByAGUAKQAiACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
98
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
99
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
100
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
101
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
102
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
103
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoACIAYQB6AHUAbQBhAGsAdQBuAGkAeQB1
104
+ AGsAaQAiACAATgBJAEwAIAAiAGEAawAiACAAIgBuAHkAYQBhAG4ALgBhAHcAcwBhAHAAcABz
105
+ AC4AYwBvAG0AIgApACkAIABOAEkATAAgAE4ASQBMACAATgBJAEwAIAAiAA0ACgAgADwAMAAw
106
+ ADAAMAAwADEANQAyADMAZgAxADgANwAwADUAMwAtAGMAMQAwAGQAYQAzAGYAYgAtADIANwAz
107
+ ADcALQA0AGIAYwA3AC0AOABhADkAOAAtADQANABkADQAZABlAGMAYgBmAGUANgBkAC0AMAAw
108
+ ADAAMAAwADAAQAB1AHMALQB3AGUAcwB0AC0AMgAuAGEAbQBhAHoAbwBuAHMAZQBzAC4AYwBv
109
+ AG0APgAiAAAAHwALhYYDAgAAAAAAwAAAAAAAAEYBAAAAHgAAAHgALQBzAGUAcwAtAG8AdQB0
110
+ AGcAbwBpAG4AZwAAAAAAAQAAAC4AAAAyADAAMQA2AC4AMAAxAC4AMQA0AC0ANQA0AC4AMgA0
111
+ ADAALgAyADcALgA1AAAAAAAfABoAAQAAACgAAABSAEUAUABPAFIAVAAuAEkAUABNAC4ATgBv
112
+ AHQAZQAuAE4ARABSAAAAAgE/AAEAAACUAAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAAAAAA
113
+ AC9PPW0tYTA5NTVjNDZmMDA1NDMwMjhjMzM3NjFmZmQ5ZjdiYjMvT1U9QW1hem9uIFdvcmtN
114
+ YWlsL0NOPVJlY2lwaWVudHMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0zNTIzNjc0NDUxLTMz
115
+ MTgxODA5Ny0xMTA4AB8AQAABAAAAHAAAAGEAegB1AG0AYQBrAHUAbgBpAHkAdQBrAGkAAAAf
116
+ AEkAAQAAABIAAABOAHkAYQBhAGEAYQBhAG4AAAAAAEAATgCAcO59n07RAQIBUQABAAAAewAA
117
+ AEVYOi9PPU0tQTA5NTVDNDZGMDA1NDMwMjhDMzM3NjFGRkQ5RjdCQjMvT1U9QU1BWk9OIFdP
118
+ UktNQUlML0NOPVJFQ0lQSUVOVFMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0zNTIzNjc0NDUx
119
+ LTMzMTgxODA5Ny0xMTA4AAALAFcAAQAAAAsAWAAAAAAACwBZAAEAAAAfAFoAAQAAABwAAABh
120
+ AHoAdQBtAGEAawB1AG4AaQB5AHUAawBpAAAAAgFbAAEAAACUAAAAAAAAANynQMjAQhAatLkI
121
+ ACsv4YIBAAAAAAAAAC9PPW0tYTA5NTVjNDZmMDA1NDMwMjhjMzM3NjFmZmQ5ZjdiYjMvT1U9
122
+ QW1hem9uIFdvcmtNYWlsL0NOPVJlY2lwaWVudHMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0z
123
+ NTIzNjc0NDUxLTMzMTgxODA5Ny0xMTA4AAIBXAABAAAAewAAAEVYOi9PPU0tQTA5NTVDNDZG
124
+ MDA1NDMwMjhDMzM3NjFGRkQ5RjdCQjMvT1U9QU1BWk9OIFdPUktNQUlML0NOPVJFQ0lQSUVO
125
+ VFMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0zNTIzNjc0NDUxLTMzMTgxODA5Ny0xMTA4AAAf
126
+ AF0AAQAAABwAAABhAHoAdQBtAGEAawB1AG4AaQB5AHUAawBpAAAAAgFeAAEAAACUAAAAAAAA
127
+ ANynQMjAQhAatLkIACsv4YIBAAAAAAAAAC9PPW0tYTA5NTVjNDZmMDA1NDMwMjhjMzM3NjFm
128
+ ZmQ5ZjdiYjMvT1U9QW1hem9uIFdvcmtNYWlsL0NOPVJlY2lwaWVudHMvQ049Uy0xLTUtMjEt
129
+ MzExMjY2NDk5OC0zNTIzNjc0NDUxLTMzMTgxODA5Ny0xMTA4AAIBXwABAAAAewAAAEVYOi9P
130
+ PU0tQTA5NTVDNDZGMDA1NDMwMjhDMzM3NjFGRkQ5RjdCQjMvT1U9QU1BWk9OIFdPUktNQUlM
131
+ L0NOPVJFQ0lQSUVOVFMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0zNTIzNjc0NDUxLTMzMTgx
132
+ ODA5Ny0xMTA4AAAfAGYAAQAAAAYAAABFAFgAAAAAAB8AZwABAAAA8AAAAC8ATwA9AG0ALQBh
133
+ ADAAOQA1ADUAYwA0ADYAZgAwADAANQA0ADMAMAAyADgAYwAzADMANwA2ADEAZgBmAGQAOQBm
134
+ ADcAYgBiADMALwBPAFUAPQBBAG0AYQB6AG8AbgAgAFcAbwByAGsATQBhAGkAbAAvAEMATgA9
135
+ AFIAZQBjAGkAcABpAGUAbgB0AHMALwBDAE4APQBTAC0AMQAtADUALQAyADEALQAzADEAMQAy
136
+ ADYANgA0ADkAOQA4AC0AMwA1ADIAMwA2ADcANAA0ADUAMQAtADMAMwAxADgAMQA4ADAAOQA3
137
+ AC0AMQAxADAAOAAAAB8AaAABAAAABgAAAEUAWAAAAAAAHwBpAAEAAADwAAAALwBPAD0AbQAt
138
+ AGEAMAA5ADUANQBjADQANgBmADAAMAA1ADQAMwAwADIAOABjADMAMwA3ADYAMQBmAGYAZAA5
139
+ AGYANwBiAGIAMwAvAE8AVQA9AEEAbQBhAHoAbwBuACAAVwBvAHIAawBNAGEAaQBsAC8AQwBO
140
+ AD0AUgBlAGMAaQBwAGkAZQBuAHQAcwAvAEMATgA9AFMALQAxAC0ANQAtADIAMQAtADMAMQAx
141
+ ADIANgA2ADQAOQA5ADgALQAzADUAMgAzADYANwA0ADQANQAxAC0AMwAzADEAOAAxADgAMAA5
142
+ ADcALQAxADEAMAA4AAAAHwBwAAEAAABOAAAARABlAGwAaQB2AGUAcgB5ACAAUwB0AGEAdAB1
143
+ AHMAIABOAG8AdABpAGYAaQBjAGEAdABpAG8AbgAgACgARgBhAGkAbAB1AHIAZQApAAAAAAAf
144
+ AHIAAQAAAAIAAAAAAAAAHwBzAAEAAAACAAAAAAAAAB8AdAABAAAAMgAAAHUAcwBlAHIAdQBu
145
+ AGsAbgBvAHcAbgBAAGMAdQBiAGkAYwByAG8AbwB0AC4AagBwAAAAAAAfAHUAAQAAAAYAAABF
146
+ AFgAAAAAAB8AdgABAAAA8AAAAC8ATwA9AG0ALQBhADAAOQA1ADUAYwA0ADYAZgAwADAANQA0
147
+ ADMAMAAyADgAYwAzADMANwA2ADEAZgBmAGQAOQBmADcAYgBiADMALwBPAFUAPQBBAG0AYQB6
148
+ AG8AbgAgAFcAbwByAGsATQBhAGkAbAAvAEMATgA9AFIAZQBjAGkAcABpAGUAbgB0AHMALwBD
149
+ AE4APQBTAC0AMQAtADUALQAyADEALQAzADEAMQAyADYANgA0ADkAOQA4AC0AMwA1ADIAMwA2
150
+ ADcANAA0ADUAMQAtADMAMwAxADgAMQA4ADAAOQA3AC0AMQAxADAAOAAAAB8ANRABAAAArgAA
151
+ ADwAMAAwADAAMAAwADEANQAyADMAZgAxADgANwAwADUAMwAtAGMAMQAwAGQAYQAzAGYAYgAt
152
+ ADIANwAzADcALQA0AGIAYwA3AC0AOABhADkAOAAtADQANABkADQAZABlAGMAYgBmAGUANgBk
153
+ AC0AMAAwADAAMAAwADAAQAB1AHMALQB3AGUAcwB0AC0AMgAuAGEAbQBhAHoAbwBuAHMAZQBz
154
+ AC4AYwBvAG0APgAAAAAAAwCQEAAAAAADAJUQAAAAAAIBFDoBAAAAEAAAAN16zwWwv0SMp+Zh
155
+ 8xfeh94DAN4/vW8AAEAAhmcAAN+CXk7RAUAAh2cAAN+CXk7RAR42
156
+ --=_weRBsyzf5DEZ4iKPso9+4xMUtxWcH6Dsd69xY+XrBBjFznNm--
@@ -0,0 +1,160 @@
1
+ Return-Path: <>
2
+ Received: from a27-8.smtp-out.us-west-2.amazonses.com
3
+ (a27-8.smtp-out.us-west-2.amazonses.com [54.240.27.8]) by
4
+ inbound-smtp.us-west-2.amazonaws.com with SMTP id
5
+ osl0dgvuj3fldo8ndnchv3uvi5o1tbi5sbe4us81 for shironeko@nyaan.example.awsapps.com; Thu, 14
6
+ Jan 2016 07:54:14 +0000
7
+ Subject: =?iso-8859-15?Q?Delivery_Status_Notification_=28Failure=29?=
8
+ From: MAILER-DAEMON@us-west-2.amazonses.com
9
+ To: =?iso-8859-15?Q?shironeko?= <shironeko@nyaan.example.awsapps.com>
10
+ Date: Thu, 14 Jan 2016 07:54:14 +0000
11
+ Mime-Version: 1.0
12
+ Content-Type: multipart/mixed;
13
+ boundary="=_PhRB5IEn4lf-tdAHHW8OeOD3zWQ4mZWzqs3gSLoUWdYGmWDH"
14
+ X-Mailer: Amazon WorkMail
15
+ X-Ses-Outgoing: 2016.01.14-54.240.27.8
16
+ Message-Id:
17
+ <000001523f20b4f9-727e5309-b13e-4fa5-836d-327e5cbcd88c-000000@us-west-2.amazonses.com>
18
+
19
+ This is a multi-part message in MIME format. Your mail reader does not
20
+ understand MIME message format.
21
+ --=_PhRB5IEn4lf-tdAHHW8OeOD3zWQ4mZWzqs3gSLoUWdYGmWDH
22
+ Content-Type: text/plain; charset=iso-8859-15
23
+ Content-Transfer-Encoding: quoted-printable
24
+
25
+ An error occurred while trying to deliver the mail to the following recip=
26
+ ients:
27
+ sabineko@example.jp
28
+
29
+ Technical report:
30
+
31
+ Reporting-MTA: dsn;=
32
+ a27-80.smtp-out.us-west-2.amazonses.com
33
+
34
+ Action: failed
35
+ Final-Recipie=
36
+ nt: rfc822; sabineko@example.jp
37
+ Diagnostic-Code: smtp; 550 5.2.1 <filt=
38
+ ered@example.jp>... User Unknown
39
+ Status: 5.2.1
40
+
41
+
42
+ --=_PhRB5IEn4lf-tdAHHW8OeOD3zWQ4mZWzqs3gSLoUWdYGmWDH
43
+ Content-Type: message/rfc822
44
+ Content-Disposition: attachment
45
+
46
+ Subject: Nyaaaan
47
+ From: =?utf-8?Q?shironeko?= <shironeko@nyaan.example.awsapps.com>
48
+ To: =?utf-8?Q?sabineko=40example=2Ejp?= <sabineko@example.jp>,
49
+ =?utf-8?Q?kuroneko=40example=2Eorg?= <kuroneko@example.org>
50
+ Date: Thu, 14 Jan 2016 07:54:12 +0000
51
+ Mime-Version: 1.0
52
+ Content-Type: multipart/alternative;
53
+ boundary="=_PhRBHRh3eLB1z5jtlGl+QMuhIDABRjOPj3RwBOQbzieklBEQ"
54
+ Message-Id:
55
+ <000001523f20aeff-9f2bb10f-0500-407a-9f92-3b319a7f6a55-000000@us-west-2.amazonses.com>
56
+ X-Priority: 3 (Normal)
57
+ X-Mailer: Amazon WorkMail
58
+ X-Original-Mailer: Amazon WorkMail
59
+ X-Ses-Outgoing: 2016.01.14-54.240.27.80
60
+
61
+ This is a multi-part message in MIME format. Your mail reader does not
62
+ understand MIME message format.
63
+ --=_PhRBHRh3eLB1z5jtlGl+QMuhIDABRjOPj3RwBOQbzieklBEQ
64
+ Content-Type: text/plain; charset=utf-8
65
+ Content-Transfer-Encoding: 7bit
66
+
67
+ Nyaaan
68
+ --=_PhRBHRh3eLB1z5jtlGl+QMuhIDABRjOPj3RwBOQbzieklBEQ
69
+ Content-Type: text/html; charset=utf-8
70
+ Content-Transfer-Encoding: quoted-printable
71
+
72
+ <!DOCTYPE HTML><html>
73
+ <head>
74
+ <meta name=3D"Generator" content=3D"Amazon=
75
+ WorkMail v3.0-2023.77">
76
+ <meta http-equiv=3D"Content-Type" content=3D"te=
77
+ xt/html; charset=3Dutf-8">
78
+ <title>Nyaaaan</title>
79
+ </head>
80
+ <body>
81
+ <fon=
82
+ t face=3D"Arial, Tahoma, Helvetica, sans-serif" size=3D"2"><gs id=3D"3665=
83
+ 2847-e492-4307-bf0a-c57b38d8aa4c" ginger_software_uiphraseguid=3D"b436f11=
84
+ d-d383-4e3c-b8f6-db89cd5ef832" class=3D"GINGER_SOFTWARE_mark">Nyaaan</gs>=
85
+ </font>
86
+ </body>
87
+ </html>
88
+ --=_PhRBHRh3eLB1z5jtlGl+QMuhIDABRjOPj3RwBOQbzieklBEQ--
89
+
90
+ --=_PhRB5IEn4lf-tdAHHW8OeOD3zWQ4mZWzqs3gSLoUWdYGmWDH
91
+ Content-Type: application/ms-tnef; name=winmail.dat
92
+ Content-Transfer-Encoding: base64
93
+ Content-Disposition: attachment; filename=winmail.dat
94
+
95
+ eJ8+IgAAAQOQBgCADQAAJwAAAAMAFw4AAAAAAwAPNP0/BQAUAEtmAgDWHQUABgAUAEhnAQAA
96
+ AAAAAAkUAEpnAQAAAAAAAGUUAKRnAQAAAAAAAKUCAcJnAQAAABAAAADdICKau0tGUbpO/TRr
97
+ a8DfHwAIhQjx9QA/jsdGr3JeIBwjSecAAAAAAQAAAAEAAAAMAwAAIgBUAGgAdQAsACAAMQA0
98
+ ACAASgBhAG4AIAAyADAAMQA2ACAAMAA3ADoANQA0ADoAMQA0ACAAKwAwADAAMAAwACIAIAAi
99
+ AEQAZQBsAGkAdgBlAHIAeQAgAFMAdABhAHQAdQBzACAATgBvAHQAaQBmAGkAYwBhAHQAaQBv
100
+ AG4AIAAoAEYAYQBpAGwAdQByAGUAKQAiACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
101
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
102
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
103
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
104
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoAE4ASQBMACAATgBJAEwAIAAiAE0AQQBJ
105
+ AEwARQBSAC0ARABBAEUATQBPAE4AIgAgACIAdQBzAC0AdwBlAHMAdAAtADIALgBhAG0AYQB6
106
+ AG8AbgBzAGUAcwAuAGMAbwBtACIAKQApACAAKAAoACIAYQB6AHUAbQBhAGsAdQBuAGkAeQB1
107
+ AGsAaQAiACAATgBJAEwAIAAiAGEAawAiACAAIgBuAHkAYQBhAG4ALgBhAHcAcwBhAHAAcABz
108
+ AC4AYwBvAG0AIgApACkAIABOAEkATAAgAE4ASQBMACAATgBJAEwAIAAiAA0ACgAgADwAMAAw
109
+ ADAAMAAwADEANQAyADMAZgAyADAAYgA0AGYAOQAtADcAMgA3AGUANQAzADAAOQAtAGIAMQAz
110
+ AGUALQA0AGYAYQA1AC0AOAAzADYAZAAtADMAMgA3AGUANQBjAGIAYwBkADgAOABjAC0AMAAw
111
+ ADAAMAAwADAAQAB1AHMALQB3AGUAcwB0AC0AMgAuAGEAbQBhAHoAbwBuAHMAZQBzAC4AYwBv
112
+ AG0APgAiAAAAHwALhYYDAgAAAAAAwAAAAAAAAEYBAAAAHgAAAHgALQBzAGUAcwAtAG8AdQB0
113
+ AGcAbwBpAG4AZwAAAAAAAQAAAC4AAAAyADAAMQA2AC4AMAAxAC4AMQA0AC0ANQA0AC4AMgA0
114
+ ADAALgAyADcALgA4AAAAAAAfABoAAQAAACgAAABSAEUAUABPAFIAVAAuAEkAUABNAC4ATgBv
115
+ AHQAZQAuAE4ARABSAAAAAgE/AAEAAACUAAAAAAAAANynQMjAQhAatLkIACsv4YIBAAAAAAAA
116
+ AC9PPW0tYTA5NTVjNDZmMDA1NDMwMjhjMzM3NjFmZmQ5ZjdiYjMvT1U9QW1hem9uIFdvcmtN
117
+ YWlsL0NOPVJlY2lwaWVudHMvQ049Uy0xLTUtMjEtMzExMjY2NDk5OC0zNTIzNjc0NDUxLTMz
118
+ MTgxODA5Ny0xMTA4AB8AQAABAAAAHAAAAGEAegB1AG0AYQBrAHUAbgBpAHkAdQBrAGkAAAAf
119
+ AEkAAQAAABAAAABOAHkAYQBhAGEAYQBuAAAAQABOAACqlcGgTtEBAgFRAAEAAAB7AAAARVg6
120
+ L089TS1BMDk1NUM0NkYwMDU0MzAyOEMzMzc2MUZGRDlGN0JCMy9PVT1BTUFaT04gV09SS01B
121
+ SUwvQ049UkVDSVBJRU5UUy9DTj1TLTEtNS0yMS0zMTEyNjY0OTk4LTM1MjM2NzQ0NTEtMzMx
122
+ ODE4MDk3LTExMDgAAAsAVwABAAAACwBYAAAAAAALAFkAAQAAAB8AWgABAAAAHAAAAGEAegB1
123
+ AG0AYQBrAHUAbgBpAHkAdQBrAGkAAAACAVsAAQAAAJQAAAAAAAAA3KdAyMBCEBq0uQgAKy/h
124
+ ggEAAAAAAAAAL089bS1hMDk1NWM0NmYwMDU0MzAyOGMzMzc2MWZmZDlmN2JiMy9PVT1BbWF6
125
+ b24gV29ya01haWwvQ049UmVjaXBpZW50cy9DTj1TLTEtNS0yMS0zMTEyNjY0OTk4LTM1MjM2
126
+ NzQ0NTEtMzMxODE4MDk3LTExMDgAAgFcAAEAAAB7AAAARVg6L089TS1BMDk1NUM0NkYwMDU0
127
+ MzAyOEMzMzc2MUZGRDlGN0JCMy9PVT1BTUFaT04gV09SS01BSUwvQ049UkVDSVBJRU5UUy9D
128
+ Tj1TLTEtNS0yMS0zMTEyNjY0OTk4LTM1MjM2NzQ0NTEtMzMxODE4MDk3LTExMDgAAB8AXQAB
129
+ AAAAHAAAAGEAegB1AG0AYQBrAHUAbgBpAHkAdQBrAGkAAAACAV4AAQAAAJQAAAAAAAAA3KdA
130
+ yMBCEBq0uQgAKy/hggEAAAAAAAAAL089bS1hMDk1NWM0NmYwMDU0MzAyOGMzMzc2MWZmZDlm
131
+ N2JiMy9PVT1BbWF6b24gV29ya01haWwvQ049UmVjaXBpZW50cy9DTj1TLTEtNS0yMS0zMTEy
132
+ NjY0OTk4LTM1MjM2NzQ0NTEtMzMxODE4MDk3LTExMDgAAgFfAAEAAAB7AAAARVg6L089TS1B
133
+ MDk1NUM0NkYwMDU0MzAyOEMzMzc2MUZGRDlGN0JCMy9PVT1BTUFaT04gV09SS01BSUwvQ049
134
+ UkVDSVBJRU5UUy9DTj1TLTEtNS0yMS0zMTEyNjY0OTk4LTM1MjM2NzQ0NTEtMzMxODE4MDk3
135
+ LTExMDgAAB8AZgABAAAABgAAAEUAWAAAAAAAHwBnAAEAAADwAAAALwBPAD0AbQAtAGEAMAA5
136
+ ADUANQBjADQANgBmADAAMAA1ADQAMwAwADIAOABjADMAMwA3ADYAMQBmAGYAZAA5AGYANwBi
137
+ AGIAMwAvAE8AVQA9AEEAbQBhAHoAbwBuACAAVwBvAHIAawBNAGEAaQBsAC8AQwBOAD0AUgBl
138
+ AGMAaQBwAGkAZQBuAHQAcwAvAEMATgA9AFMALQAxAC0ANQAtADIAMQAtADMAMQAxADIANgA2
139
+ ADQAOQA5ADgALQAzADUAMgAzADYANwA0ADQANQAxAC0AMwAzADEAOAAxADgAMAA5ADcALQAx
140
+ ADEAMAA4AAAAHwBoAAEAAAAGAAAARQBYAAAAAAAfAGkAAQAAAPAAAAAvAE8APQBtAC0AYQAw
141
+ ADkANQA1AGMANAA2AGYAMAAwADUANAAzADAAMgA4AGMAMwAzADcANgAxAGYAZgBkADkAZgA3
142
+ AGIAYgAzAC8ATwBVAD0AQQBtAGEAegBvAG4AIABXAG8AcgBrAE0AYQBpAGwALwBDAE4APQBS
143
+ AGUAYwBpAHAAaQBlAG4AdABzAC8AQwBOAD0AUwAtADEALQA1AC0AMgAxAC0AMwAxADEAMgA2
144
+ ADYANAA5ADkAOAAtADMANQAyADMANgA3ADQANAA1ADEALQAzADMAMQA4ADEAOAAwADkANwAt
145
+ ADEAMQAwADgAAAAfAHAAAQAAAE4AAABEAGUAbABpAHYAZQByAHkAIABTAHQAYQB0AHUAcwAg
146
+ AE4AbwB0AGkAZgBpAGMAYQB0AGkAbwBuACAAKABGAGEAaQBsAHUAcgBlACkAAAAAAB8AcgAB
147
+ AAAAAgAAAAAAAAAfAHMAAQAAAAIAAAAAAAAAHwB0AAEAAABmAAAAZgBpAGwAdABlAHIAZQBk
148
+ AEAAYwB1AGIAaQBjAHIAbwBvAHQALgBqAHAAOwAgAHMAeQBzAHQAZQBtAGUAcgByAG8AcgBA
149
+ AGIAbwB1AG4AYwBlAGgAYQBtAG0AZQByAC4AagBwAAAAAAAfAHUAAQAAAAYAAABFAFgAAAAA
150
+ AB8AdgABAAAA8AAAAC8ATwA9AG0ALQBhADAAOQA1ADUAYwA0ADYAZgAwADAANQA0ADMAMAAy
151
+ ADgAYwAzADMANwA2ADEAZgBmAGQAOQBmADcAYgBiADMALwBPAFUAPQBBAG0AYQB6AG8AbgAg
152
+ AFcAbwByAGsATQBhAGkAbAAvAEMATgA9AFIAZQBjAGkAcABpAGUAbgB0AHMALwBDAE4APQBT
153
+ AC0AMQAtADUALQAyADEALQAzADEAMQAyADYANgA0ADkAOQA4AC0AMwA1ADIAMwA2ADcANAA0
154
+ ADUAMQAtADMAMwAxADgAMQA4ADAAOQA3AC0AMQAxADAAOAAAAB8ANRABAAAArgAAADwAMAAw
155
+ ADAAMAAwADEANQAyADMAZgAyADAAYgA0AGYAOQAtADcAMgA3AGUANQAzADAAOQAtAGIAMQAz
156
+ AGUALQA0AGYAYQA1AC0AOAAzADYAZAAtADMAMgA3AGUANQBjAGIAYwBkADgAOABjAC0AMAAw
157
+ ADAAMAAwADAAQAB1AHMALQB3AGUAcwB0AC0AMgAuAGEAbQBhAHoAbwBuAHMAZQBzAC4AYwBv
158
+ AG0APgAAAAAAAgEUOgEAAAAQAAAAQAgLUObRQOmx/mWx2Hj6+AMA3j+9bwAAQACGZwAA34Je
159
+ TtEBQACHZwAA34JeTtEBlz0=
160
+ --=_PhRB5IEn4lf-tdAHHW8OeOD3zWQ4mZWzqs3gSLoUWdYGmWDH--