Browse Source

Improved unit tests.

Martin Edenhofer 11 years ago
parent
commit
565d99f5e9
3 changed files with 175 additions and 5 deletions
  1. 15 5
      app/models/channel/email_parser.rb
  2. 148 0
      test/fixtures/mail16.box
  3. 12 0
      test/unit/email_parser_test.rb

+ 15 - 5
app/models/channel/email_parser.rb

@@ -69,12 +69,22 @@ class Channel::EmailParser
       data[field.name.to_s.downcase.to_sym] = Encode.conv( 'utf8', field.to_s )
     }
 
+    # get sender
+    from = nil
+    ['from', 'reply-to', 'return-path'].each { |item|
+      if !from
+        if mail[ item.to_sym ]
+          from = mail[ item.to_sym ].value
+        end
+      end
+    }
+
     # set extra headers
-    data[:from_email]        = Mail::Address.new( mail[:from].value ).address
-    data[:from_local]        = Mail::Address.new( mail[:from].value ).local
-    data[:from_domain]       = Mail::Address.new( mail[:from].value ).domain
-    data[:from_display_name] = Mail::Address.new( mail[:from].value ).display_name ||
-    ( Mail::Address.new( mail[:from].value ).comments && Mail::Address.new( mail[:from].value ).comments[0] )
+    data[:from_email]        = Mail::Address.new( from ).address
+    data[:from_local]        = Mail::Address.new( from ).local
+    data[:from_domain]       = Mail::Address.new( from ).domain
+    data[:from_display_name] = Mail::Address.new( from ).display_name ||
+    ( Mail::Address.new( from ).comments && Mail::Address.new( from ).comments[0] )
 
     # do extra decoding because we needed to use field.value
     data[:from_display_name] = Mail::Field.new( 'X-From', data[:from_display_name] ).to_s

+ 148 - 0
test/fixtures/mail16.box

@@ -0,0 +1,148 @@
+From w2sjy@ns2.actionserv.com  Tue Oct 29 03:52:03 2013
+Return-Path: <w2sjy@ns2.actionserv.com>
+X-Original-To: info@znuny.com
+Delivered-To: znuny-sales@arber.znuny.com
+Received: from mail.sasscoyc.com (unknown [184.22.37.11])
+	by arber.znuny.com (Postfix) with ESMTP id EB79D60039
+	for <info@znuny.com>; Tue, 29 Oct 2013 03:52:02 +0100 (CET)
+Date: Sun, 8 Dec 2013 08:40:11 +0800
+To: "enterprisemobility.apacservice" <enterprisemobility.apacservice@motorola.com>
+Reply-To: <vipyimin@126.com>
+Subject: =?GB2312?B?ob4g1rHNqMPAufrFxcP7tdo0ObTz0acgs8m5prrzuLa30SChvw==?=
+MIME-Version: 1.0
+X-Priority: 3
+X-MSMail-Priority: Normal
+X-Mailer: Microsoft Outlook Express 6.00.2800.1158
+Content-Type: text/html;
+	charset="GB2312"
+Content-Transfer-Encoding: base64
+Content-Disposition: inline
+X-UID: 230                                                  
+Status: RO
+Content-Length: 9411
+Lines: 123
+
+PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
+L0VOIj4NCjxIVE1MPjxIRUFEPjxUSVRMRT7Qwr2ozfjSsyAzPC9USVRMRT4NCjxNRVRBIGh0dHAt
+ZXF1aXY9Q29udGVudC1MYW5ndWFnZSBjb250ZW50PXpoLWNuPg0KPE1FVEEgaHR0cC1lcXVpdj1D
+b250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWdiayI+DQo8TUVUQSBjb250
+ZW50PSJNU0hUTUwgNi4wMC4yODAwLjExMDYiIG5hbWU9R0VORVJBVE9SPjwvSEVBRD4NCjxCT0RZ
+PjxTUEFOIHN0eWxlPSJGT05ULVNJWkU6IDE1cHQ7IENPTE9SOiBibHVlOyBGT05ULUZBTUlMWTog
+y87M5SI+DQo8RElWPjxGT05UIGNvbG9yPWJsYWNrIHNpemU9Mj7E+rrDo6zV4rfi0MXI57n707DP
+7LW9xPq1xMn6u+66zbmk1/ejrM7Sw8fP8sT6s8+/0rXEtcDHuKGjPC9GT05UPjwvRElWPg0KPERJ
+Vj48Rk9OVCBjb2xvcj1ibGFjayBzaXplPTI+xPq72Li0tMvTys/kvLS/yc3LtqmjrNLUuvO++LbU
+sru74dTZtM7K1bW9o6w8L0ZPTlQ+PC9ESVY+DQo8RElWPjxGT05UIGNvbG9yPWJsYWNrPjxGT05U
+IGZhY2U9utrM5SANCnNpemU9Mz48U1RST05HPtTZtM7Xo7ijxPq5pNf3y7PA+6Osu+nS9sPAwvqj
+rLzSzaXQ0rijo6zJ+tLi0MvCoaGjPC9TVFJPTkc+PC9GT05UPiA8L0ZPTlQ+PC9ESVY+DQo8RElW
+PiZuYnNwOzwvRElWPjwvU1BBTj4NCjxQIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0iTUFSR0lOOiAw
+Y20gMGNtIDBwdDsgTElORS1IRUlHSFQ6IDE3LjI1cHQiPjxTUEFOIA0Kc3R5bGU9IkZPTlQtU0la
+RTogMTVwdDsgQ09MT1I6IGJsdWU7IEZPTlQtRkFNSUxZOiDLzszlIj48Qj7Wsc2ow8C5+sXFw/u1
+2jQ5tPPRpyANCrPJuaa687i2t9E8QlI+PC9CPjxCUj48L1NQQU4+PFNQQU4gDQpzdHlsZT0iRk9O
+VC1TSVpFOiAxNXB0OyBGT05ULUZBTUlMWTogy87M5SI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7
+Jm5ic3A7IA0KPEI+Jm5ic3A7ILarsbG089GnPC9CPjxCUj4mbmJzcDsmbmJzcDsmbmJzcDsgPEEg
+DQpocmVmPSJodHRwOi8vd3d3Lm5vcnRoZWFzdGVybi5lZHUiPnd3dy5ub3J0aGVhc3Rlcm4uZWR1
+PC9BPjxCUj6hoTwvU1BBTj48L1A+DQo8UCBjbGFzcz1Nc29Ob3JtYWwgDQpzdHlsZT0iTUFSR0lO
+OiAwY20gMGNtIDBwdDsgTElORS1IRUlHSFQ6IDE3LjI1cHQiPjGhosfFwbq/zrPMo7rN6rPJuvO0
+77W9sc/StbHq17yjrLy0v8nJ6sfrtquxsbTz0ae1xNGnyr/Rp867L8u2yr/Rp867oaM8QlI+PFNQ
+QU4gDQpsYW5nPUVOLVVTIA0Kc3R5bGU9IkZPTlQtU0laRTogMTAuNXB0OyBDT0xPUjogYmxhY2s7
+IEZPTlQtRkFNSUxZOiBXaW5nZGluZ3MiPmw8U1BBTiANCnN0eWxlPSJGT05UOiA3cHQgJ1RpbWVz
+IE5ldyBSb21hbiciPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyANCjwvU1BBTj48L1NQQU4+VE9F
+Rkw6NjFJYnQotaXP7rK7tc3T2jEzt9ajrMbk1tC/2tPvMTa31ryw0LTX9zE0t9bS1MnPKUlFTFRT
+OjYuMCAotaXP7rK7tc3T2jUuNSk8QlI+PFNQQU4gDQpsYW5nPUVOLVVTIA0Kc3R5bGU9IkZPTlQt
+U0laRTogMTAuNXB0OyBDT0xPUjogYmxhY2s7IEZPTlQtRkFNSUxZOiBXaW5nZGluZ3MiPmw8U1BB
+TiANCnN0eWxlPSJGT05UOiA3cHQgJ1RpbWVzIE5ldyBSb21hbiciPiZuYnNwOyZuYnNwOyZuYnNw
+OyZuYnNwOyANCjwvU1BBTj48L1NQQU4+1NrQo7PJvKjGvb75ODC31tLUyc+jrMbk1tDJz8nM0afU
+usv509DXqNK1o6y+rbzD0ae6zb2o1v7Rp9Kqx/PGvb75ODS31tLUyc88QlI+PEJSPjKhotaxvdPJ
+6sfrsb6/xqO60OjSqrjf1tCxz9K1u/K438j91Nq2wTsgDQpUT0VGTGlidDkyo6hyZWFkaW5nMjKj
+rGxpc3RlbmluZzIyo6xzcGVha2luZzI0o6w8QlI+d3JpdGluZzIyo6ksIA0KSUVMVFM2LjWju7bU
+ufq8ytGnyfq2+NHUo6xTQVS78kFDVLfHsdjQ68zhuamho0dQQTMuMNLUyc88QlI+PEJSPjOhotax
+vdPJ6sfry7bKv6O60Oixvr/Gsc/StdPQ0afOu7vytPPLxNTatsHRp8n6oaPLtsq/0qrH89Pv0dSz
+ybyoMTAwt9bS1MnPoaM8QlI+R1BBMy4w0tTJz6Ossr+31teo0rXSqsfzMy4zM9LUyc+hozxCUj48
+QlI+08XKxteo0rWjujxCUj48QlI+yczStbywyee74b/G0aejrLmks8zRp6Osyv3Rp7ywvMbL47v6
+0aejrM7vwO28sMn6w/y/xtGno6zJzNK10NDV/rncwO2jrLzGy+O7+tGno6w8QlI+0NDOqsnxvq2/
+xtGno6y+rbzD0aejrLuv0aejrMn6zu+jrL3wyNq8sLvhvMajrLmks8zRpy3NwcS+vLC7t7Gjo6zJ
++s7vvLzK9aOsufq8yjxCUj7Kws7xo6y5pLPM0actvMbL47v6z7XNs6Os0MLOxdGno6y5pLPM0act
+tee7+qOsvaG/tb/G0aejrMr90aejrM7vwO21yKGjPC9QPg0KPFAgY2xhc3M9TXNvTm9ybWFsIA0K
+c3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExJTkUtSEVJR0hUOiAxNy4yNXB0Ij48QlI+PEI+
+PEZPTlQgY29sb3I9IzAwMDBmZiANCnNpemU9ND7B9NGn18nRr6O6PC9GT05UPjwvQj48L1A+DQo8
+UCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExJTkUtSEVJR0hU
+OiAxNy4yNXB0Ij6hoTwvUD4NCjxQIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0iTUFSR0lOOiAwY20g
+MGNtIDBwdDsgTElORS1IRUlHSFQ6IDE3LjI1cHQiPjxCPjxGT05UIA0KY29sb3I9IzAwMDBmZiBz
+aXplPTQ+s8LAz8qmo7pxcTo0Nzc5NDE5MTImbmJzcDsgtee7sKO6MTM1MjE0ODE2NDQ8QlI+zfXA
+z8qmo7pxcToxNzU2NzAzMTE0IA0Ktee7sDogMTM2NzExNzcwODk8L0ZPTlQ+PC9CPjxCUj6hoTwv
+UD4NCjxQIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTElORS1I
+RUlHSFQ6IDE3LjI1cHQiPjxCPjxGT05UIA0Kc2l6ZT01PqG+18nRr7vYuLTTys/kvLS/yaG/PC9G
+T05UPjwvQj48L1A+DQo8UCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAw
+cHQ7IExJTkUtSEVJR0hUOiAxNy4yNXB0Ij6hoTwvUD4NCjxQIGNsYXNzPU1zb05vcm1hbCBzdHls
+ZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTElORS1IRUlHSFQ6IDE3LjI1cHQiPjxCPjxTUEFOIA0K
+c3R5bGU9IkZPTlQtU0laRTogMTZwdDsgQkFDS0dST1VORDogYXF1YTsgQ09MT1I6IGJsYWNrOyBG
+T05ULUZBTUlMWTogy87M5SI+w8C5+s2218rSxsPxoaqhqjwvU1BBTj48U1BBTiANCmxhbmc9RU4t
+VVMgDQpzdHlsZT0iRk9OVC1TSVpFOiAxNnB0OyBCQUNLR1JPVU5EOiBhcXVhOyBDT0xPUjogYmxh
+Y2s7IEZPTlQtRkFNSUxZOiBBcmlhbCI+NTA8L1NQQU4+PFNQQU4gDQpzdHlsZT0iRk9OVC1TSVpF
+OiAxNnB0OyBCQUNLR1JPVU5EOiBhcXVhOyBDT0xPUjogYmxhY2s7IEZPTlQtRkFNSUxZOiDLzszl
+Ij7N8sPA1KrWsc22z+7EvzwvU1BBTj48L0I+PC9QPg0KPFAgY2xhc3M9TXNvTm9ybWFsIHN0eWxl
+PSJNQVJHSU46IDBjbSAwY20gMHB0OyBMSU5FLUhFSUdIVDogMTcuMjVwdCI+oaE8L1A+DQo8UCBj
+bGFzcz1Nc29Ob3JtYWwgDQpzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTElORS1IRUlHSFQ6
+IDE3LjI1cHQiPtK7oaLP7sS/vPK96aO6PEJSPjxCUj41MM3yw8DUqiANCrzTw8vDwLn61qrD+8PA
+t6LGt8XGIKOsv6rX1Ly6tcQzvNLDwLeizPyjrCC/ydLUzOG5qTEyLTE1uPbIq9awuaTX97v6PEJS
+Prvho6zN6sirwvrX482218rSxsPxtcTTw7mk0OjH86O719S8utO109DI/bzSterD5rXEMTAwJSC5
+ycioo6wgDQrGt8XGyczNxrz2vq25/TxCUj7G89K10c+48b+8usu1xLjfvLbWsNK1vq3A7db3wO2j
+rLLGzvExMDAlzbjD96OsILGjtdfE6rvYsajCyjElo6wgNcTquvO72Lm6oaM8QlI+PEJSPrb+oaLP
+7sS/zNi146O6PC9QPg0KPFAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSJNQVJHSU46IDBjbSAwY20g
+MHB0OyBMSU5FLUhFSUdIVDogMTcuMjVwdCI+PEJSPjxTUEFOIA0KbGFuZz1FTi1VUyANCnN0eWxl
+PSJGT05ULVNJWkU6IDEwLjVwdDsgQ09MT1I6IGJsYWNrOyBGT05ULUZBTUlMWTogV2luZ2Rpbmdz
+Ij5sPFNQQU4gDQpzdHlsZT0iRk9OVDogN3B0ICdUaW1lcyBOZXcgUm9tYW4nIj4mbmJzcDsmbmJz
+cDsmbmJzcDsgDQo8L1NQQU4+PC9TUEFOPjEwMCXWsb3TzbbXyqGi1rG9077N0rWhosnzxfrKsbzk
+tsyjuzxCUj48U1BBTiBsYW5nPUVOLVVTIA0Kc3R5bGU9IkZPTlQtU0laRTogMTAuNXB0OyBDT0xP
+UjogYmxhY2s7IEZPTlQtRkFNSUxZOiBXaW5nZGluZ3MiPmw8U1BBTiANCnN0eWxlPSJGT05UOiA3
+cHQgJ1RpbWVzIE5ldyBSb21hbiciPiZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+PC9TUEFOPtfU
+09AxMDAltcSy+sioo6wgDQqyxs7xzerIq824w/ejuzxCUj48U1BBTiBsYW5nPUVOLVVTIA0Kc3R5
+bGU9IkZPTlQtU0laRTogMTAuNXB0OyBDT0xPUjogYmxhY2s7IEZPTlQtRkFNSUxZOiBXaW5nZGlu
+Z3MiPmw8U1BBTiANCnN0eWxlPSJGT05UOiA3cHQgJ1RpbWVzIE5ldyBSb21hbiciPiZuYnNwOyZu
+YnNwOyZuYnNwOyANCjwvU1BBTj48L1NQQU4+1qrD+8a3xca1xLPJyuzJzNK1xKPKvaOs0c+48b+8
+usu1xNaw0rW+rcDtyMvW98Dto7s8QlI+PFNQQU4gbGFuZz1FTi1VUyANCnN0eWxlPSJGT05ULVNJ
+WkU6IDEwLjVwdDsgQ09MT1I6IGJsYWNrOyBGT05ULUZBTUlMWTogV2luZ2RpbmdzIj5sPFNQQU4g
+DQpzdHlsZT0iRk9OVDogN3B0ICdUaW1lcyBOZXcgUm9tYW4nIj4mbmJzcDsmbmJzcDsmbmJzcDsg
+DQo8L1NQQU4+PC9TUEFOPs7lxOq687CyyKu1xMrVubq068qpoaM8QlI+oaE8L1A+DQo8UCBjbGFz
+cz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExJTkUtSEVJR0hUOiAxNy4y
+NXB0Ij7I/aGi1MvTqsSjyr2jujwvUD4NCjxQIGNsYXNzPU1zb05vcm1hbCANCnN0eWxlPSJNQVJH
+SU46IDBjbSAwY20gMHB0OyBMSU5FLUhFSUdIVDogMTcuMjVwdCI+PEJSPsa3xca+rcDto6jP4LWx
+09rP7sS/vq3A7aOp0tG+rdPQ19S8usj9vNLTr8D7tcS16qOszbbXysjL19S8utKyv6rI/bzSteqj
+rCANCs6vzdDGt8XGPEJSPr6twO3AtLncwO2jrCDI57n706/A+8v7xMMxLzTA+8jzo6zI57n7v/fL
+8Mv70rLSqsXiMS80LiDE+r71tcPV4tH5us/A7cLwo78gDQo8QlI+PEJSPrbU09q53MDtuavLvqOo
+z+7Ev9fcs9Cw/KOpwLS9sqOsyOe5+82syrG53MDt18UyMDC80sPFteq1xMa3xca+rcDto6jP7sS/
+vq3A7aOpo6wgDQo8QlI+1eLR+bXE1MvTqrvhxeLHrsLwo7/I57n7y+PX3NXLsrvF4seuo6zL+8PH
+vs2/ydLUsLTV1dStvNvK1bm6w7+49s2218rIy7XEterD5qOsIDxCUj7Iu7rz1NmwtNXVytCzobzb
+wvS4+LzTw8u16rXEvq3A7S4gDQrL+dLUudzA7bmry77U2s/tytzNttfKxtq85DMvNLXEwPvS5rXE
+zazKsaOsPEJSPru5u+HP7crczbbXyrO3s/a687Xqw+bU9ta1tcTK1dLmoaMgPC9QPg0KPFAgY2xh
+c3M9TXNvTm9ybWFsIHN0eWxlPSJNQVJHSU46IDBjbSAwY20gMHB0OyBMSU5FLUhFSUdIVDogMTcu
+MjVwdCI+oaE8L1A+DQo8UCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAw
+cHQ7IExJTkUtSEVJR0hUOiAxNy4yNXB0Ij48Qj48U1BBTiANCnN0eWxlPSJCQUNLR1JPVU5EOiBh
+cXVhOyBDT0xPUjogYmxhY2s7IEZPTlQtRkFNSUxZOiDLzszlIj48Rk9OVCANCnNpemU9NT7SxsPx
+18nRr6O6PC9GT05UPjwvU1BBTj48L0I+PC9QPg0KPFAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSJN
+QVJHSU46IDBjbSAwY20gMHB0OyBMSU5FLUhFSUdIVDogMTcuMjVwdCI+oaE8L1A+DQo8UCBjbGFz
+cz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExJTkUtSEVJR0hUOiAxNy4y
+NXB0Ij48Qj48U1BBTiANCnN0eWxlPSJCQUNLR1JPVU5EOiBhcXVhOyBDT0xPUjogYmxhY2s7IEZP
+TlQtRkFNSUxZOiDLzszlIj48Rk9OVCANCnNpemU9NT7A7s/IyfqjujwvRk9OVD48L1NQQU4+PEZP
+TlQgc2l6ZT01PjxTUEFOIGxhbmc9RU4tVVMgDQpzdHlsZT0iQkFDS0dST1VORDogYXF1YTsgQ09M
+T1I6IGJsYWNrOyBGT05ULUZBTUlMWTogQXJpYWwiPnFxOiAyNjU0MDM1OTk5Jm5ic3A7IA0KPC9T
+UEFOPjwvRk9OVD48L0I+PEI+PEZPTlQgc2l6ZT01PjxTUEFOIA0Kc3R5bGU9IkJBQ0tHUk9VTkQ6
+IGFxdWE7IENPTE9SOiBibGFjazsgRk9OVC1GQU1JTFk6IMvOzOUiPrXnu7CjujwvU1BBTj48L0ZP
+TlQ+PFNQQU4gDQpsYW5nPUVOLVVTIHN0eWxlPSJCQUNLR1JPVU5EOiBhcXVhOyBDT0xPUjogYmxh
+Y2s7IEZPTlQtRkFNSUxZOiBBcmlhbCI+PEZPTlQgDQpzaXplPTU+MTMzOTE1Mzk5ODg8L0ZPTlQ+
+PC9TUEFOPjwvQj48L1A+DQo8UCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBj
+bSAwcHQ7IExJTkUtSEVJR0hUOiAxNy4yNXB0Ij48QlI+oaE8L1A+DQo8UCBjbGFzcz1Nc29Ob3Jt
+YWwgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExJTkUtSEVJR0hUOiAxNy4yNXB0Ij6hoTwv
+UD4NCjxQIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTElORS1I
+RUlHSFQ6IDE3LjI1cHQiPqGhPC9QPg0KPFAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSJNQVJHSU46
+IDBjbSAwY20gMHB0OyBMSU5FLUhFSUdIVDogMTcuMjVwdCI+oaE8L1A+DQo8UCBjbGFzcz1Nc29O
+b3JtYWwgDQpzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTElORS1IRUlHSFQ6IDE3LjI1cHQi
+PqGhPC9QPmVudGVycHJpc2Vtb2JpbGl0eS5hcGFjc2VydmljZSBYWUNKRE1QWFlDSUNIWUNJQ0pF
+T1VOU0lDSUFBQ0hYWFlDR1ZUTVBZQkdWUkRMTU5TSUJFUFpHVlNKRU5TSUFCRlRLSkZRQ0pGUUJH
+VlFDSkRMTU5TR1dWU0lDSFlDSUJETE5SRE1QWFpGUkZRREtKRlNIWUNIWURLSFpHVU9VT1ZSR1ZS
+RlJETU9XVU5UTE5RQkdVT1VPV1VRQkRMTEtKRU9UTlFCR1VQWkZSRVBYQUJFT1ZSRlRMTEtJQkZT
+SkVOUkdWVExLSkVQWkVPVU9VUFlDSFhaRlNIWFhaRU5TSFhYWUNKRlNKRU5RQ0pFUUFDSUJGUUJG
+UkVQWFpGUkZSR1VQWFpHVVBZQ0dWVE1OUkZTSFpFTlRLSUNIWURLSUNJQ0lCRVFCRU9XVU5UTEtH
+V1ROUkRNTlRMS0hYWUNKRVBZQ0haR1dWUkZTSFpETVFBQ0pFTlJFT1dVUUMgDQoxNzYyNSA8L0JP
+RFk+PC9IVE1MPg0K
+

+ 12 - 0
test/unit/email_parser_test.rb

@@ -314,6 +314,18 @@ Hof
           :to                 => 'info42@znuny.com',
         },
       },
+      # spam email
+      {
+        :data         => IO.read('test/fixtures/mail16.box'),
+        :body_md5     => 'b255fb5620db3b63131924513061d974',
+        :params   => {
+          :from               => nil,
+          :from_email         => 'vipyimin@126.com',
+          :from_display_name  => "",
+          :subject            => '【 直通美国排名第49大学 成功后付费 】',
+          :to                 => '"enterprisemobility.apacservice" <enterprisemobility.apacservice@motorola.com>',
+        },
+      },
     ]
 
     files.each { |file|