From 0fd5c971fc53040251c04cee173528213321f0e4 Mon Sep 17 00:00:00 2001 From: Martin Edenhofer Date: Wed, 22 Mar 2017 07:55:33 +0100 Subject: [PATCH] Fixed html sanitizer with non utf8 content in href attributes. --- lib/html_sanitizer.rb | 27 +- test/fixtures/mail47.box | 3812 +++++++++++++++++++++++++++++++ test/unit/aaa_string_test.rb | 25 +- test/unit/email_process_test.rb | 25 + 4 files changed, 3873 insertions(+), 16 deletions(-) create mode 100644 test/fixtures/mail47.box diff --git a/lib/html_sanitizer.rb b/lib/html_sanitizer.rb index 1283662e5..920a657e8 100644 --- a/lib/html_sanitizer.rb +++ b/lib/html_sanitizer.rb @@ -29,12 +29,7 @@ satinize html string based on whiltelist # remove tag, insert quoted content if tags_quote_content.include?(node.name) - string = node.content - string.gsub!('&', '&') - string.gsub!('<', '<') - string.gsub!('>', '>') - string.gsub!('"', '"') - string.gsub!(' ', ' ') + string = html_decode(node.content) text = Nokogiri::XML::Text.new(string, node.document) node.add_next_sibling(text) node.remove @@ -155,8 +150,7 @@ satinize html string based on whiltelist text = Nokogiri::XML::Text.new(')', node.document) node.add_next_sibling(text) else - text = Nokogiri::XML::Text.new(cleanup_target(node['href']), node.document) - node.content = text + node.content = cleanup_target(node['href']) end end @@ -286,8 +280,7 @@ cleanup html string: text = Nokogiri::XML::Text.new(')', node.document) node.add_next_sibling(text) else - text = Nokogiri::XML::Text.new(cleanup_target(node['href']), node.document) - node.content = text + node.content = cleanup_target(node['href']) end end @@ -352,13 +345,20 @@ cleanup html string: end end + def self.html_decode(string) + string.gsub('&', '&').gsub('<', '<').gsub('>', '>').gsub('"', '"').gsub(' ', ' ') + end + def self.cleanup_target(string) - URI.unescape(string).gsub(/[[:space:]]|\t|\n|\r/, '').gsub(%r{/\*.*?\*/}, '').gsub(//, '').gsub(/\[.+?\]/, '') + string = URI.unescape(string).encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '?') + string.gsub(/[[:space:]]|\t|\n|\r/, '').gsub(%r{/\*.*?\*/}, '').gsub(//, '').gsub(/\[.+?\]/, '') end def self.url_same?(url_new, url_old) - url_new = URI.unescape(url_new.to_s).downcase.gsub(%r{/$}, '').gsub(/[[:space:]]|\t|\n|\r/, '').strip - url_old = URI.unescape(url_old.to_s).downcase.gsub(%r{/$}, '').gsub(/[[:space:]]|\t|\n|\r/, '').strip + url_new = URI.unescape(url_new.to_s).encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '?').downcase.gsub(%r{/$}, '').gsub(/[[:space:]]|\t|\n|\r/, '').strip + url_old = URI.unescape(url_old.to_s).encode('utf-8', 'binary', invalid: :replace, undef: :replace, replace: '?').downcase.gsub(%r{/$}, '').gsub(/[[:space:]]|\t|\n|\r/, '').strip + url_new = html_decode(url_new).sub('/?', '?') + url_old = html_decode(url_old).sub('/?', '?') return true if url_new == url_old return true if "http://#{url_new}" == url_old return true if "http://#{url_old}" == url_new @@ -437,5 +437,6 @@ satinize style of img tags private_class_method :cleanup_target private_class_method :add_link private_class_method :url_same? + private_class_method :html_decode end diff --git a/test/fixtures/mail47.box b/test/fixtures/mail47.box new file mode 100644 index 000000000..55665e98c --- /dev/null +++ b/test/fixtures/mail47.box @@ -0,0 +1,3812 @@ +Received: from EX132MBOX2D.de2.local (1.0.0.0) by EX132MBOX2B.de2.local + (10.50.10.182) with Microsoft SMTP Server (TLS) id 15.0.1263.5 via Mailbox + Transport; Fri, 17 Mar 2017 17:29:14 +0100 +Received: from EX132MBOX1C.de2.local (1.0.0.0) by EX132MBOX2D.de2.local + (1.0.0.0) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Fri, 17 Mar + 2017 17:29:14 +0100 +Received: from mx-gate21.example.ag (1.0.0.0) by + EX132MBOX1C.de2.local (1.0.0.0) with Microsoft SMTP Server (TLS) id + 15.0.1263.5; Fri, 17 Mar 2017 17:29:14 +0100 +Received: from relay.example.de (1.0.0.0) by mx-gate21.example.ag; + Fri, 17 Mar 2017 17:29:14 +0100 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; + d=example.de; i=@example.de; l=287109; q=dns/txt; + s=mail110321; t=1489767685; x=1521303685; + h=date:from:reply-to:to:message-id:subject:mime-version; + bh=SwBtJQWneLpeyvW4ID6c66MEEZEk8cV3mdRvCLaZEQw=; + b=IQ3xoMCg6yx4Ex8avdtNTBs+1h+lBtlJkKvhHPJ+JSdgf1wpH8p+UxFS + X5rTMcpX+DtXitL1wKocgbsk1Sz2+Q8iySLVQXJKuNRppngfmV+vJeQh+ + iOyomvMAVedaBGlslFMaqMe3hQaR8c2w1IK+xeG84Bo8rb5OvC4ZiGAr2 + o=; +Authentication-Results: relay.example.de; dkim=none (message not signed) header.i=none +Received: from sas2bp8.example.net (HELO example.de) ([1.0.0.0]) + by relay.example.de with ESMTP; 17 Mar 2017 17:21:25 +0100 +Date: Fri, 17 Mar 2017 17:28:02 +0100 +From: EXAMPLE HotPriceMail +Reply-To: bestellauskunft@example.de +To: info@example.de +Message-ID: +Subject: =?ISO-8859-1?Q?-90%!_Nur_3,90_statt_39,90_EU?= + =?ISO-8859-1?Q?R:_In-Ear-Stereo-Headset_mit_B?= + =?ISO-8859-1?Q?luetooth_4.1_und_Magnetverschl?= + =?ISO-8859-1?Q?uss_f=FCr_Bob_Max_Example?= +Content-Type: multipart/related; + boundary="----=_Part_138976098_-1336032482.1489768083023" +X-antispameurope-sender: prvs=242bf6dc3=anja.weber@example.de +X-antispameurope-recipient: info@example.de +X-antispameurope-MSGID: d32abae046682d3c5225951442c703cc-a56816210645a38e63ded892ae5b8838 +X-antispameurope-Virusscan: CLEAN +X-antispameurope-disclaimer: This E-Mail was scanned by www.antispameurope.com E-Mailservice on mx-gate21 with 3E61CC9F3A1 +X-antispameurope-date: 1489768084 +X-antispameurope: INCOMING: +X-antispameurope-Connect: relay.example.de[1.0.0.0],TLS=1;EMIG=0 +X-antispameurope-detected-infomail: yes +X-antispameurope-Spamstatus: CLEAN +X-antispameurope-REASON: CleanIP:NET:1.0.0.0 +Return-Path: prvs=242bf6dc3=anja.weber@example.de +X-MS-Exchange-Organization-Network-Message-Id: f91ed78b-2cd6-403d-303c-08d46d52c037 +X-MS-Exchange-Organization-AVStamp-Enterprise: 1.0 +X-EXCLAIMER-MD-CONFIG: 2329e0da-e5c9-454a-b62b-9269baa51382 +X-MS-Exchange-Organization-AuthSource: EX132MBOX1C.de2.local +X-MS-Exchange-Organization-AuthAs: Anonymous +MIME-Version: 1.0 + +------=_Part_138976098_-1336032482.1489768083023 +Content-Type: text/html; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + + +HotPriceMail - -90%! Nur 3,90 statt 39,90 EUR: In-Ear-Stereo-Headset m= +it Bluetooth 4.1 und Magnetverschluss    Multitalent f=C3=BCr unterwegs: Freisprecher, Radio, MP3-Pl= +ayer, Fernausl=C3=B6ser & Card-Reader. Ideal im Auto & beim Spor= +t.    <= +td width=3D"190" style=3D"padding-left: 10px; padding-right: 10px; padding-= +top: 10px; border-top: 1px solid #eaeaea; padding-bottom: 10px;" bgcolor=3D= +"#ffffff" valign=3D"top">Set: 2 x = +Alu-Kabelmanager + Lesezeichen aus Edelstahl  
> In-Ear-Stereo-Headset mit Bluetooth 4.1 und Magnetverschluss nur 3= +,90 EUR - jetzt superg=C3=BCnstig! <
Zur Online-Vers= +ion dieses Newsletters bitte = +HIER klicken.
3D"EXAMPLE.GmbH"
3D"immer3D"Neu"3D"Top-Aufsteiger"3D"Bestseller"= +3D"Geschenkefinder"
Exklusives Angebot f= +=C3=BCr:

Bob Max Example
Example
Saue= + 111
10000 Somwhere

Ihre Kunden-Nr: 5433623-1
Ih= +re E-Mail-Adresse: info@example.de
= +
3D"HotPriceMail<= +/a>
3D"HotPriceMail
3D"HotPriceMail

3D"Produktvorstellung"
3D"example.tv3D"Youtube3D"TV-Livestream"
3D"Ab
Sehr geehrter Herr Example,

genie=C3=9Fen Sie I= +hre Lieblings-Musik jetzt ohne st=C3=B6rende Kabel - ob zu Hause oder u= +nterwegs:

+ +Mit dem In-Ear-Stereo-Headset SH-30 = +=C3=BCbertragen Sie Ihre MP3-Hits einfach per Bluetooth 4.1 - von Sm= +artphone, iPhone, Tablet-PC, iPad u.v.m. Auch Ihre Telefonate f=C3= +=BChren Sie kabellos. Das Smartphone bleibt dabei in der Tasche.

+ +=C3=9Cber die integrierte Fernbedienung steuern Sie die Musikwiederg= +abe und Lautst=C3=A4rke sowie Ihre Gespr=C3=A4che komfortabel =C3=BCber 3 T= +asten.

+ +Der leistungsstarke Akku versorgt Ihr Headset f=C3=BCr bis zu 5 S= +tunden Non-Stop-Musikgenuss mit Energie und erreicht bis zu 100 Stunden= + Standby-Zeit.

+ +Wenn Sie Ihr Headset gerade nicht ben=C3=B6tigen, tragen Sie es bequem wie = +eine Kette um den Hals. Verbinden Sie dazu einfach die beiden magnetisch= +en Ohrh=C3=B6rer mit einem Klick miteinander.



+ +Im Vorfeld der CeBIT konnten wir einen Posten von 12.000 St=C3=BCck im Bulk= +-Pack aus Produktions=C3=BCberhang unfassbar g=C3=BCnstig einkaufen = +- diesen Vorteil geben wir an unsere Newsletterkunden weiter: Ihr komfortab= +les Hightech-Headset erhalten Sie heute zum exklusiven Sonderpreis = +von nur 3,90 Euro* statt1 f=C3=BCr 39= +,90 Euro. Greifen Sie gleich zu!

USB-Netzteile zum = +Aufladen Ihres Bluetooth-Headsets bestellen Sie schon ab 2,90 Euro* = +hier im Webshop.

+ +Mein Tipp f=C3=BCr alle Ger=C3=A4te ohne Bluetooth: Das Premium-In-Ear-Headset mit Kabel-Fernbedienung un= +d patentiertem Doppel-Luftkammer-Soundsystem erhalten Sie zum Vorzug= +spreis von nur 6,90 Euro* statt1 f=C3=BCr 39,90 Euro. Bestellen = +Sie direkt hier!

+ +Viel Freude beim Musik-H=C3=B6ren und Telefonieren w=C3=BCnscht + +

Ihre 3D"Anja
 
= +
 =C3=9Cbertragen Sie Ihre Hits kabellos. Mit 2 Ger=C3=A4ten glei= +chzeitig koppeln. Musik-Steuerung =C3=BCber 3 Tasten im Kabel. <= +/font>      <= +td width=3D"190" bgcolor=3D"#ffffff" style=3D"padding-left: 10px; padding-r= +ight: 10px; padding-bottom: 10px;" valign=3D"top">Nehmen Sie mit Ihrem Ohrh=C3=B6rer zum Musikh=C3=B6ren auch A= +nrufe entgegen. Klangstark, bequem und dank Flachkabel robust.          <= +td width=3D"190" style=3D"padding-left: 10px; padding-right: 10px; padding-= +top: 10px; border-top: 1px solid #eaeaea; padding-bottom: 10px;" bgcolor=3D= +"#ffffff" valign=3D"top">Knochen-L= +eit-Bluetooth-Headset        Spitzen-Sound und maximaler Tragekomfort. F=C3=BCr = +Smartphone, Tablet, MP3-Player u.v.m. Fernbedienung mit Mikro.<= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +"> <= +td width=3D"190" bgcolor=3D"#ffffff" style=3D"padding-left: 10px; padding-r= +ight: 10px; padding-bottom: 10px;" valign=3D"top">Hochwertiger, bass-starker Luxus-Ohrh=C3=B6rer f=C3=BCr M= +P3-/ Mediaplayer. Extrem klares, detailreiches Klangbild. Weiche Silikon-Ti= +ps.     <= +/tr>= + <= +td width=3D"190" bgcolor=3D"#ffffff" style=3D"padding-left: 10px; padding-r= +ight: 10px; padding-bottom: 10px;" valign=3D"top">Kabellos telefonieren im Auto, B=C3=BCro und zu Ha= +use. Starker Li-Po-Akku, Multifunktions-Taste. Winzige Ma=C3= +=9Fe.<= +/tr>    = +         3D"" <= +td width=3D"5" style=3D"border-right: 1px solid #eaeaea;" bgcolor=3D"#efefe= +f"> 
= + 
 
= + = +Stereo-Headset mit Magnetverschluss Magnetisches In-Ear-Stereo-Headset, BT 4.1, Multipoint & Auto-Conne= +ct  In-Ear-Headset mit Bluetooth = +4.1, 2x 2 Membranen & 3-Tasten-Bedienteil = + In-Ear-Headset mit 2x 2 Membranen & 3-Tasten-Bedienteil, = +3,5-mm-Klinke 
 3D""  3D""  3D""  3D"" = +
 Ohne l=C3=A4stigen Kabelsalat genie=C3=9Fen Sie mit diesem Bluetooth-Headset Ihre Lieblingsmusi= +k und telefonieren komfortabel.    Kr=C3=A4ftiger Klang= + & hoher Tragekomfort beim Musikh=C3=B6ren & Telefoniere= +n. Multipoint-Unterst=C3=BCtzung, Kabel-Fernbedienung...   2 Membranen je Ohrh=C3= +=B6rer sorgen f=C3=BCr vollen Sound bei Musik und Telefonie. Kabe= +l-Fernbedienung f=C3=BCr Musik-Steuerung. 
 
Bestell-Nr.
HZ-2654-924
= +=E2=82=AC 19,90*
statt1 &= +nbsp; + =E2=82=AC 39,90
 
Bestell-Nr.
ZX-1618-924
= +=E2=82=AC 29,90*
statt1 = +   + =E2=82=AC 69,90
 
Bestell-Nr.
ZX-1624-924
= +=E2=82=AC 26,90*
statt1 = +   + =E2=82=AC 59,90
 
Bestell-Nr.
ZX-1623-924
= +=E2=82=AC 16,90*
statt1 = +   + =E2=82=AC 39,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">In-Ear-Stereo-Heads= +et IHS-570 mit High-Resolution-Audio, 5 Hz - 70 kHz&= +nbsp; In-Ear-Stereo-Headset IHS-100 mit Flachkabel, Aluminium-Ge= +h=C3=A4use  Sport-Headset, Bone Cond= +uction  In-Ear-Sport-Headset, Blueto= +oth 4.1, Multipoint, Fernbed. 
3D"=  3D"" 3D""  <= +/td>3D"" 
 High-End-In-Ear-Kopfh= +=C3=B6rer mit hochaufl=C3=B6sendem Spitzen-Sound. Kabel-Fernbedienun= +g mit Freisprech-Funktion.    Sicheres H=C3=B6rverg= +n=C3=BCgen: Sitzt nicht auf, sondern neben dem Ohr. So nehmen Sie Ih= +re Umwelt auch beim Musikh=C3=B6ren wahr.  Komfortabler Musikgenuss und bequemes Telefoniere= +n. Ideal f=C3=BCrs Joggen, Fitness-Studio u.v.m. Mit Kabel-Fernbe= +dienung u.v.m. 
 
Bestell-Nr.
ZX-1598= +-924
= +=E2=82=AC 14,90*
statt1   + =E2=82=AC 49,90
 
Bestell-Nr.
PX-8489-924
= +=E2=82=AC 9,90*
statt1 = +   + =E2=82=AC 29,90
 
Bestell-Nr.
PX-1846-924
= +=E2=82=AC 33,90*
statt1 = +   + =E2=82=AC 79,00
 
Bestell-Nr.
ZX-1621-924
= +=E2=82=AC 12,90*
statt1 = +   + =E2=82=AC 29,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">Spritzwasser- gesch= +=C3=BCtztes Sport-Headset mit Bluetooth 4.1  Bluetooth-4.1-Sport-Headset, spritzwasser-gesch=C3=BCtzt, aptX   Wasserdichtes Sport-Headset  Bluetooth-4.1-Sport-Headset, In-Ear  
&n= +bsp;3D""  3D""= +  3D"" 3D"= 
&nbs= +p;Die H=C3=A4nde frei und bequem telefonieren und Musik= + h=C3=B6ren ohne Kabelsalat oder Mikro im Gesicht: perfekt auch f=C3=BC= +r den Sport.  Voller Mus= +ik-Genuss bei Sport & Outdoor-Spa=C3=9F. Mit aptX-Technologie f= +=C3=BCr glasklaren Sound. Kabelfernbedienung. = + Wasserdicht, superleicht und kompakt= +. Bluetooth 4.0. Ergonomische Silikonb=C3=BCgel f=C3=BCr bequemen Si= +tz auf Schritt und Tritt.  Bequem telefonieren und Musik h=C3=B6ren. Drahtlose Blueto= +oth-Verbindung. Bis zu 10m Reichweite. Ideal f=C3=BCr Sport und Frei= +zeit. 
 
Bestell-Nr.
ZX-1535-924
= +=E2=82=AC 39,90*
statt1   + =E2=82=AC 89,90
 
Bestell-Nr.
ZX-1534-924
= +=E2=82=AC 24,90*
statt1 = +   + =E2=82=AC 49,90
 
Bestell-Nr.
ZX-1549-924
= +=E2=82=AC 47,90*
statt1 = +   + =E2=82=AC 99,90
 
Bestell-Nr.
ZX-1533-924
= +=E2=82=AC 19,90*
statt1 = +   + =E2=82=AC 39,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">Wasserdichtes BT-4.= +0-Headset Bone Conduction    Stereo-Heads= +et mit Bluetooth 4.0, aptX, schwarz  &= +nbsp;<= +b>Komfort-Sport-Ohrh=C3=B6rer  
3D=  3D"" 3D""  <= +/td>3D"" 
 Es =C3=BCbertr=C3= +=A4gt den Sound =C3=BCber die Wangenknochen direkt ins Innenohr.= + Schont das Geh=C3=B6r und Sie nehmen Ihre Umwelt wahr! = +; =C3=9Cbertr=C3=A4gt den Sound per Schl=C3= +=A4fenbein direkt ins Innenohr. Schont das Geh=C3=B6r. Musik-= +Steuerung direkt am Headset.  Kabelloses Musikh=C3=B6ren & Telefonieren. Multipoint f= +=C3=BCr 2 BT-Verbindungen gleichzeitig. Flexibler Nackenb=C3=BCgel.<= +/font>  Toller Klang & p= +erfekter Sitz: Ideal f=C3=BCr unterwegs & beim Sport. Leicht, beque= +me Silikon-B=C3=BCgel. Passt in jede Tasche. 
 
Bestell-Nr.
ZX-1547-924
=E2=82=AC 99,90*
statt1 = +   + =E2=82=AC 169,90
 
Bestell-Nr.
ZX-1546-924
=E2=82=AC 77,90*
statt1 = +   + =E2=82=AC 149,90
 
Bestell-Nr.
ZX-1539-924
= +=E2=82=AC 19,90*
statt1 = +   + =E2=82=AC 39,90
 
Bestell-Nr.
PX-1165-924
= +=E2=82=AC 12,90*
statt1 = +   + =E2=82=AC 24,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">Aluminium-Stereo-Oh= +rh=C3=B6rer "Premium-Sound"  Ohrh=C3=B6rer mit Kabel-Fernbedienung & IST-Technologie<= +/a>  Earbud-Ohrh=C3=B6rer 'Basic'   Premium-Stereo-Ohrh=C3=B6rer auvisio 'Bass Tub= +e' 
 3D""  <= +/td>3D""  3D"" = + 3D"" 
 Konzert-Feeling: Druck- volle B=C3=A4ss= +e & glasklare H=C3=B6hen sorgen f=C3=BCr einen harmonischen Klang. InEar-Bauweise.   Klein, leicht handlich und besonder= +s erschwinglich! Voller Musikgenuss f=C3=BCr Smartphone, iPod= +, MP3-Player. Solide verarbeitet.   
 
Bestell-Nr.
PX-1062-924
= +=E2=82=AC 12,90*
statt1   + =E2=82=AC 24,90
 
Bestell-Nr.
PX-1490-924
= +=E2=82=AC 24,90*
statt1 = +   + =E2=82=AC 79,90
 
Bestell-Nr.
PX-1148-924
statt1 = +   + =E2=82=AC 9,90
<= +b>=E2=82=AC 1,90*
&n= +bsp; 
Bestell-Nr.
PE-5848-924
= += +=E2=82=AC 9,90*
statt1 = +   + =E2=82=AC 29,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">MiniBluetooth 4.0 A= +kku-In-Ear-Headset, One-Touch-Bedienung Headset mit Bluetooth 3.0 f=C3=BCr Musik & Telefonate   Universelles Bluetooth-Headset mit Bluetoo= +th 3.0   Knopf-Headset mit Kfz-Lad= +estation, Bluetooth 4.0, 2 USB-Ladeports 
 3D""  3D""<= +/a>  3D""  3D"" 
 Kabell= +os telefonieren im Auto, B=C3=BCro und zu Hause. Starker Li-P= +o-Akku, Multifunktions-Taste. Winzige Ma=C3=9Fe.  Leichtes Bluetooth-Headset f= +=C3=BCr iPhone, Smartphone, Handy... F=C3=BCr Telefonie und MP3-= +=C3=9Cbertragung. Power-Akku.    Bequem tel= +efonieren und Musik vom Smartphone h=C3=B6ren. Mit praktischer USB-Lades= +tation f=C3=BCr den Zigarettenanz=C3=BCnder. 
 
Bestell-Nr.
ZX-1627-924
= += +=E2=82=AC 9,90*
statt1 = +   + =E2=82=AC 24,90
 
Bestell-Nr.
HZ-3489-924
= +=E2=82=AC 19,90*
statt1 = +   + =E2=82=AC 29,90
 
Bestell-Nr.
HZ-2236-924
= +=E2=82=AC 7,90*
statt1 = +   + =E2=82=AC 29,90
 
Bestell-Nr.
HZ-2811-924
= +=E2=82=AC 19,90*
statt1 = +   + =E2=82=AC 39,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">Stereo-Bluetooth-He= +adset mit Nackenb=C3=BCgel  Faltba= +res On-Ear-Bluetooth-Headset mit MP3-Player  Faltbarer HiFi-Kopfh=C3=B6rer mit Headset-Funktion, Bluetooth 3.0= +  = +Noise-Cancelling-Kopfh=C3=B6rer 
 3D""  3D""  3D"" = + 3D"" 
 Kabelloser Musikgenuss & Freispr= +echen f=C3=BCr iPhone, Handy & Player. Auch ideal beim Sport= +... Unterst=C3=BCtzt A2DP & AVRCP. = + Musikwiedergabe =C3=BCber Bluetooth-Streaming, mi= +croSD-Karte & AUX. Integriertes FM-Radio. Starker Li-Ion-Akk= +u.   Komfortabler Ove= +r-Ear-Kopfh=C3=B6rer. Kabelloses Musik-Streaming. Steuerung dire= +kt am Headset. Integr. Akku.   Geschlossener Over-Ear-Kopfh=C3=B6rer f=C3=BCr Musik ohne St= +=C3=B6rger=C3=A4usche. Mit Active Noise Cancellation. Integr. Lautst= +=C3=A4rkeregler.  
 
Bestell-Nr.
HZ-1765= +-924
= +=E2=82=AC 29,90*
statt1   + =E2=82=AC 49,90
 
Bestell-Nr.
ZX-1572-924
= +=E2=82=AC 19,90*
statt1 = +   + =E2=82=AC 49,90
 
Bestell-Nr.
ZX-1564-924
= +=E2=82=AC 27,90*
statt1 = +   + =E2=82=AC 69,90
 
Bestell-Nr.
PX-1489-924
= +=E2=82=AC 39,90*
statt1 = +   + =E2=82=AC 99,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">Bluetooth 4 Over-Ea= +r-HiFi-Headset OHS-420 mit Steuertasten Stereo-B=C3=BCgelkopfh=C3=B6rer klappbar, on-ear   Premium-On-Ear-Headset OHS-250 im Aluminiumgeh=C3=A4u= +se, Bluetooth 4.0  Funk-Kopfh=C3=B6r= +er mit Ladestation 
 3D""  3D"" &nb= +sp;3D""  3D""&nb= +sp;
 Kabellose HiFi-Kopfh=C3=B6r= +er f=C3=BCr Premium-Musikgenuss. Geschlossene Bauweise, zus=C3=A4tzlich= +er AUX-Eingang, Freisprechen u.v.m.  &n= +bsp;Prima-Sound, ideal zum Mitnehmen. Einfach zusam= +menfaltbar. Die geschlossene Bauweise d=C3=A4mpft Au=C3=9Fenger=C3= +=A4usche.   Edles Design= + mit hohem Tragekomfort: Kabellose HiFi-Kopfh=C3=B6rer mit extra Aud= +io-Eingang, Freisprechfunktion u.v.m. = + Versorgt Sie per Funk =C3=BCberall kabellos m= +it Ihre Lieblingsmusik. Integriertes FM-Radio. Akku reicht bis zu 10= + Std. lang. 
 
Bestell-Nr.
ZX-1571-924= +
=E2=82=AC 47,90*
statt1   + =E2=82=AC 129,90
 
Bestell-Nr.
PX-1467-924
= +=E2=82=AC 9,90*
statt1 = +   + =E2=82=AC 29,90
 
Bestell-Nr.
ZX-1599-924
= +=E2=82=AC 27,90*
statt1 = +   + =E2=82=AC 69,90
 
Bestell-Nr.
PX-1390-924
= +=E2=82=AC 49,90*
statt1 = +   + =E2=82=AC 79,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">HiFi-Kopfh=C3=B6rer= + mit integr. MP3-Player & Radio &n= +bsp;MP4-Player mit Bluetooth, FM-Radio, Video   MP3- & Video-Player f=C3=BCr microSD-Karten   Wasserdichter, kabelloser Sport-MP3-Player, 4GB= + 
= + 3D""  = +  3D"" 3D"= 
&nbs= +p;Mobiler Musikgenuss: Das HiFi-Headset spielt Ihre= + Lieblingshits von SD-Karte, Radio oder von externen Playern.= + Inkl. SD-Adapter.  Komp= +akter Media-Player f=C3=BCr Musik, Videos, Fotos, Radio. Mit Farb= +-Display. Bluetooth f=C3=BCr drahtlose Audio-=C3=9Cbertragung.  Mini-Player in Kl= +avierlack- Optik mit vielen Extras: eBook-Reader, Voice-Recorder. Ultraflach & federleicht. Starker Akku. Perfekter Tragekomfort: In-Ear-Kopfh=C3=B6= +rer mit Nackenb=C3=BCgel & integr. MP3- Player. Mit 4 GB = +internem Speicher, USB. 
 
Bestell-Nr.
<= +a style=3D"text-decoration: none; color:#ffffff;" href=3D"http://www.example.= +de/a-PX4815-1231.shtml?vid=3D924&curr=3DDEM&wa_id=3D995&wa_num= +=3D6640&mt=3DXD9N%2BCHzabcdeJf2qq%2F6SJOi8YuwDuC%2BSyhb9yJht6yIebbxKlkP= +Rr1RW0XYgUVt&utm_source=3D6640&utm_medium=3DBestellnr.%20PX4815">PX= +-4815-924
= +=E2=82=AC 26,90*
statt1   + =E2=82=AC 49,90
 
Bestell-Nr.
PX-1485-924
= +=E2=82=AC 29,90*
statt1 = +   + =E2=82=AC 59,90
 
Bestell-Nr.
PX-2553-924
= +=E2=82=AC 26,90*
statt1 = +   + =E2=82=AC 39,90
 
Bestell-Nr.
PX-2575-924
= +=E2=82=AC 59,90*
statt1 = +   + =E2=82=AC 99,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">4in1-Bluetooth-Head= +set-Adapter mit Mikro, MP3, Radio, 3,5-mm-Klinke&nbs= +p; 5in1-BT-Headset-Adapter mit Mikro, MP3, Radio, f=C3=BCr Kop= +fh=C3=B6rer  Bluetooth-4.2-Headset-A= +dapter mit 3,5-mm-Klinke-Anschluss & Mikrofon&nb= +sp; Kopfh=C3=B6rerverst=C3=A4rker mit Mikro f=C3=BCr Smartphone= +... 
 3D""  <= +/td>3D""  3D"" = + 3D"" 
 Musik kabellos streamen, Radio h=C3=B6r= +en oder freih=C3=A4ndig telefonieren: Einfach den Adapter per 3,5-mm= +-Klinke verbinden. Li-Ion-Akku.    Telefonieren = +Sie via Bluetooth =C3=BCber Ihre Lieblingskopfh=C3=B6rer und streame= +n Sie Musik kabellos vom Smartphone. &nb= +sp;Macht jeden Kopfh=C3=B6rer zum HiFi-Headset f=C3= +=BCr Telefonie & Musik. Mit Verst=C3=A4rker-Funktion. 3,5mm-Klin= +ke-Anschluss. 
 
Bestell-Nr.
PX-4997-924
= +=E2=82=AC 14,90*
statt<= +sup>1   + =E2=82=AC 29,90
 
Bestell-Nr.
HZ-2808-924
= +=E2=82=AC 16,90*
statt1 = +   + =E2=82=AC 39,90
 
Bestell-Nr.
HZ-2747-924
= +=E2=82=AC 9,90*
statt1 = +   + =E2=82=AC 19,90
 
Bestell-Nr.
PX-1426-924
= +=E2=82=AC 22,90*
statt1 = +   + =E2=82=AC 49,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
&nb= +sp;
 
 &nbs= +p; Lackreparaturstift f=C3=BCr alle Lack-Farben= +  Gummib=C3=A4nder-Set zum H=C3=A4keln & Bastel= +n  Extra starke Universal- Spann= +gummis 12er-Set 
 3D"" 3D""  <= +/td>3D""  3D"" = +
 Gro=C3=9Fes Ordnungs-Set ge= +gen Kabelsalat und Eselsohren: 2 Kabelwickler aus Alu f=C3=BCr Kopfh= +=C3=B6rer... 1 Lesezeichen aus geb=C3=BCrstetem Edelstahl.  F=C3=BCr alle Farben: F= +=C3=BCllt kleine Kratzer im Lack auf & macht sie unsichtbar. Hal= +tbare Versiegelung durch Sonnenlicht. &= +nbsp;Gummib=C3=A4nder in 21 Trend-Farben: F=C3=BCr = +kunterbunte Armb=C3=A4nder, Anh=C3=A4nger, Ringe... Cooles Bastelset= + mit 2262 Teilen.  12 starke Spanngummis, verschiedene L=C3=A4ngen. Mit stabilen = +Stahl-Haken & Gummischutz. Ideal f=C3=BCr Fahrrad, Kofferraum uvm.<= +/font> 
 
Bestell-Nr.
NC-2135-924
statt1   + =E2=82=AC 9,90
<= +b>=E2=82=AC 1,90*
&n= +bsp; 
Bestell-Nr.
NC-5320-924
= += +=E2=82=AC 4,90*
statt1 = +   + =E2=82=AC 19,90
 
Bestell-Nr.
NX-1186-924
<= +/tr>
  =E2=82=AC 0,1= +9 pro Gummiband
=E2=82=AC 3,90*
  <= +td width=3D"190" style=3D"padding-left: 10px; padding-right: 10px; padding-= +top: 10px; border-top: 1px solid #eaeaea; padding-bottom: 10px;" bgcolor=3D= +"#ffffff" valign=3D"top">Knielange= +r Regenmantel mit Kapuze f=C3=BCr Notf=C3=A4lle
Bestell-Nr.
NC-1034-92= +4
  =E2=82=AC 0,74 pro Gep=C3=A4ckspanner
=E2=82=AC 8,90*
 
 = +Direkt ab Lager verf=C3=BCgbar!  Direk= +t ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3= +=BCgbar! 
 
  = +; Glasreiniger-Konzentrat, 500 ml = +  201-tlg. D=C3=BCbel- & Wandschrauben-Set mit passendem B= +ohrer  Bauchweg-Trainer 
 3D""  3D"" = + 3D""  3D"" 
 Perfekter Schutz vor Regen & Hagel. Gepackt klei= +ner als ein Handschuh & 54 g leicht passt der Regenmantel in = +jede Jackentasche.  = +Umweltfreundlich, wirksam & superg=C3=BCnstig! Hochergieb= +iges Konzentrat f=C3=BCr bis zu 5 l gebrauchs-fertigen Glasreiniger.= +  Schrauben, D=C3=BCbel = +und Bohrer aufeinander abgestimmt: Fxieren Sie Regale, Spiegel u.v.m= +. im Handumdrehen.   Auf schnellem Weg zum Waschbrettbauch: Trainieren Sie opti= +mal einzelne K=C3=B6rperzonen. Inkl. Anleitung mit =C3=9Cbungen.  
 
Bestell-Nr.
NC-5103-924
statt1   + =E2=82=AC 6,90
<= +b>=E2=82=AC 2,90*
&n= +bsp;   <= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +">       <= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +">  
Bestell-Nr.
PV-8696-924
= +
  =E2=82=AC 7,80 p= +ro l
=E2=82=AC 3,90*
  
Bestell-Nr.
NX-3883-924
= +
  =E2=82=AC 0,02 pro Wabdschraube
=E2= +=82=AC 3,90*
 = + 
Bestell-Nr.
NX-1082-924
= +=E2=82=AC 24,90*
statt1 &= +nbsp; + =E2=82=AC 69,95
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">USB-WLAN-Stick WS-3= +35.at mit ext. Antenne, 300 Mbit/s, WPS Bluetooth-Lautsprecher 10 Watt mit 3-farbigem Disco-Licht= +  Marienk=C3=A4fer mit Sternen-Projektion &a= +mp; Farbwechsler   LED-Funk-Uhr = +mit Datum & Temperatur, 412 LEDs (refurb.) = +
 3D""  +=3D""  3D""  3D"" 
 Ideal f=C3=BCr =C3=A4ltere Ger=C3=A4te ohne eingebautes WLAN:= + =C3=9Cbertragen Sie gro=C3=9Fe Datenmengen auch kabellos rasend sc= +hnell.  Sorgt f=C3= +=BCr Partystimmung: Starker Sound und tolle Lichteffekte. Drahtlo= +se Musik-=C3=9Cbertragung von Smartphone, Tablet & Co. Kuscheliger Spielfreund &= +; perfekte Einschlafhilfe. Sanfter Farbwechsel oder einfarbig= +e Lichtprojektion, 4 Modi. Batteriebetrieb. &n= +bsp;Schicke Funk-Wanduhr mit wei=C3=9Fer LED-Anzeige.<= +/b> Automat. Uhrzeit-Einstellung per Funk. Stabiles Metall-Geh=C3=A4use.= + 230-V-Anschluss. 
 
= +Bestell-Nr.
NX-42= +68-924
= +=E2=82=AC 14,90*
statt1   + =E2=82=AC 29,90
 
Bestell-Nr.
ZX-1579-924
= +=E2=82=AC 16,90*
statt1 = +   + =E2=82=AC 39,90
 
Bestell-Nr.
NC-8888-924
= +=E2=82=AC 12,90*
statt1 = +   + =E2=82=AC 29,90
 
Bestell-Nr.
REF-73703-924
=E2=82=AC 67,92*
statt1 = +   + =E2=82=AC 169,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
&nb= +sp;
= +<= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +">   <= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +"> 3D""= +<= +td width=3D"5" style=3D"border-right: 1px solid #eaeaea;" bgcolor=3D"#efefe= +f"> 
 
&= +nbsp;Thinkpad T420s, 35,6 cm/14", Core i7, 8 GB, 240 GB SSD, Win 10 (re= +fu.)  Veriton M430G, Athlon II X2 = +260, 500 GB, DVD-RW, Win 10 (refurb.) = + = +Programmierbares Energiespar-Heizk=C3=B6rper-Thermostat mit Boost  Flexible Kfz-Halterung f=C3=BCr Smartphon= +es, USB-Ladefunktion, 4,8 A 
 +=3D""  3D""<= +/a>  3D""  3D"" 
 Robustes = +Notebook mit Magnesium-Rahmen. Viel Rechenpower dank 8 GB RA= +M, SSD-Festplatte mit 240 GB, n-WLAN u.v.m.  Flink bei Business & Multimedia: Komplet= +t-PC mit installiertem Win 10 , 6 GB RAM, 500 GB HDD, DVD-Bre= +nner, LAN uvm.  S= +paren Sie bis zu 30 % Energie mit zeitgesteuerter Heizk=C3=B6rper-Re= +gulierung! So heizen Sie dann, wenn Sie die W=C3=A4rme ben=C3=B6tige= +n.  Superflexibel= + dank 8 cm langem Schwanenhals und stufenlos drehbarem 360=C2=B0= +-Kugelgelenk! Bis 4.800 mA Ladestrom. 
 = +
Bestell-Nr.
REF-1300-924
= +
statt6 = +   + =E2=82=AC 1.899,00
= +=E2=82=AC 599,90*
  
Bestell-Nr.
REF-2263-924
=E2=82=AC 199,90*
statt6 = +   + =E2=82=AC 599,00
 
Bestell-Nr.
NX-5652-924
= +=E2=82=AC 12,90*
statt1 = +   + =E2=82=AC 24,90
 
Bestell-Nr.
PX-1977-924
= +=E2=82=AC 16,90*
statt1 = +   + =E2=82=AC 39,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
 <= +font color=3D"#333333" face=3D"Helvetica" size=3D"3">2in1-Powerbank mit = +integr. HD-Kamera, 5.000 mAh, 2 A &nb= +sp;Einsteiger-4K-Action-Cam mit Unterwasser-Geh=C3=A4use Funk-T=C3=BCrsprech-Anlage mit Video=C3=BCbertragung   HD-Dashcam m. G-Sensor, Bewegungs-Er= +kennung, 6,1-cm-Display 
 3D""  <= +img width=3D"160" height=3D"120" style=3D"display:block;" src=3D"http://mi.= +example.de/images/em1/nx4263_6_3.jpg" border=3D"0" alt=3D""> = + 3D""  = + 
 L=C3=A4dt Ihre Mobilger= +=C3=A4te auf und nimmt auf Wunsch hochaufl=C3=B6sende Videos auf= +. Bewegungserkennung, TV-Out, Taschenlampe... = + Hochaufl=C3=B6sende Action-Cam f=C3=BCr rasan= +te Videos. Live-Bild auf Smartphone & Tablet, wasserdicht bis 30 Met= +er, WLAN u.v.m.  Vid= +eo-T=C3=BCrsprechanlage: Nachtsicht mit 6 IR-LEDs, portabler Funk= +empf=C3=A4nger mit LCD-Bildschirm, bis zu 50 m Reichweite.   Filmt Ihre Autofahrten in HD, ist zuverl=C3=A4ssiger Augenzeuge. Gro=C3=9Fer Bildwinkel, G-Sens= +or f=C3=BCr Blackbox-Funktion... 
= +Bestell-Nr.
NX-4248-924
=E2=82=AC 69,90*
statt1 &nbs= +p; + =E2=82=AC 149,90
 
Bestell-Nr.
NX-4263-924
=E2=82=AC 69,90*
statt1 = +   + =E2=82=AC 169,90
 
Bestell-Nr.
NX-4069-924
=E2=82=AC 169,90*
statt1 = +   + =E2=82=AC 249,90
 
Bestell-Nr.
NX-4249-924
= +=E2=82=AC 29,90*
statt1 = +   + =E2=82=AC 99,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
&nb= +sp;
<= +td width=3D"5" style=3D"border-right: 1px solid #eaeaea;" bgcolor=3D"#efefe= +f"> = +3D""<= +td width=3D"5" style=3D"border-left: 1px solid #eaeaea;" bgcolor=3D"#efefef= +">      
 
Digitaler Akku-Haartrimmer mit 2-Klingen-System   High-End-Fernglas, 10x50, 91% Transmission = +  Hightech-Laserpointer mit gr=C3=BCnem Fest= +k=C3=B6rper-Laser  Medizinischer 3in= +1-Elektrostimulator 
 3D""  <= +img width=3D"160" height=3D"120" style=3D"display:block;" src=3D"http://mi.= +example.de/images/em1/nx4149_6_1.jpg" border=3D"0" alt=3D""> = + 3D""   
 F=C3=BCr perfektes Haar-= + & Bart-Styling: 2 Klingen f=C3=BCr anhaltende Sch=C3=A4rfe.= + 5 L=C3=A4ngen-Einstellungen & 3 Kammaufs=C3=A4tze. Holt weit entfernte Objekte zum = +Greifen nah heran. Hohe Lichtdurchl=C3=A4ssigkeit und 7,5=C2=B0 Sehf= +eld f=C3=BCr eine optimale =C3=9Cbersicht. Top f=C3=BCr Pr=C3=A4sentationen bei Tageslich= +t: Gr=C3=BCner Pointer, 20x besser sichtbar als normale Laser, <= +b>mehrere hundert Meter Reichweite.  = +;Ideal bei Schmerzen, f=C3=BCr Entspannung und Trai= +ning. Mit Massage- und Muskelaufbau-Funktion. Beleuchtetes LCD-Displ= +ay. 
 
Bestell-Nr.
NC-2237-924
= +
= +=E2=82=AC 29,90*
statt1   + =E2=82=AC 69,90
 
Bestell-Nr.
NX-4149-924
=E2=82=AC 99,90*
statt1 = +   + =E2=82=AC 479,90
 
Bestell-Nr.
NC-5000-924
= +=E2=82=AC 29,90*
statt1 = +   + =E2=82=AC 49,90
 
Bestell-Nr.
NX-7280-924
=E2=82=AC 59,90*
statt1 = +   + =E2=82=AC 149,90
 Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager v= +erf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!  Direkt ab Lager verf=C3=BCgbar!= + 
 
Wundersch=C3=B6nes Lichtermeer
Framania Magazin 02/17
 
= +
Kabellose Wanduhr mit Full-HD-Kamera und= + PIR-Sensor, 180 Tage Stand-by<= +/td><= +a style=3D"text-decoration: none;" target=3D"_blank" href=3D"http://www.exam= +rl.de/a-NC5828-3351.shtml?vid=3D924&curr=3DDEM&wa_id=3D995&wa_n= +um=3D6640&mt=3DXD9N%2BCHzabcdeJf2qq%2F6SJOi8YuwDuC%2BSyhb9yJht6yIebbxKl= +kPRr1RW0XYgUVt&utm_source=3D6640&utm_medium=3DTop%20Artikelbez.%20N= +C5828">Laser-Proje= +ktor mit Sternen-Regen-LichteffektLuftrei= +niger mit Ionisator und zuschaltbarem L=C3=BCfter, dunkle Holz-Optik
3D""3D""3D""
=C3=9Cberwacht Ihr Zuhause, w=C3=A4hrend sie die Zeit anzeig= +t. Maximale Sicherheit: Automatischer Aufnahmestart per Bewegungserkennu= +ng.Zaubert ein = +Lichtermeer bis 56 qm Gr=C3=B6=C3=9Fe. Ideal f=C3=BCr Hausfassaden u.v.= +m. Neun Leuchtmodi inkl. Sternen-Regen-Lichteffekt!= +Auf Knopfdruck frische Luft wie = +an der See: Beseitigt Ger=C3=BCche, Rauch, Hausstaub, Pollen u.v.m. = +Mit zuschaltbarem Aktiv-L=C3=BCfter.
Bestel= +l-Nr.
NX-4296-924
statt1  + =E2=82=AC 199,90
=E2=82=AC 99,90*
Bestell-Nr.
NC-5828-924
statt1  + =E2=82=AC 99,90
=E2=82=AC 29,90*
Bestell-Nr.
NX-9106-924
statt1  + =E2=82=AC 89,90
=E2=82=AC 39,90*
Direkt ab Lager verf=C3=BCgbar!Direkt ab Lager = +verf=C3=BCgbar!Direkt ab Lager verf=C3=BCgbar!
 
Besuchen Sie uns auf:
= ++=3D"facebook"3D"example"3D"google3D"example"3D"twitter=3D"example"3D"youtube"<= +img src=3D"http://www.example.de/images/transparent_pixel.gif" height=3D"5" w= +idth=3D"5" alt=3D"example" style=3D"display: block;">3D"pinterest"3D"example"3D"instagram"3D"example.tv"<= +/a>
<= +td valign=3D"top">
3D"Mehrfach3D"Sichere
3D"Ausgezeichnet3D"Shopvote3D"Netzsieger
3D"Bankeinzug,= +
Preisstand 17.03.2017. + Preis=C3=A4nderungen und Irrtum vorbehalten, Abbildungen =C3=A4hnli= +ch. + Angebot maximal 14 Tage g=C3=BCltig bzw. nur solange Vorrat, Zwisch= +enverkauf vorbehalten. + Es gelten unsere AGB + (auch im Katalog oder auf Anforderung). Gesetzliches Widerrufsrecht + innerhalb 14 Tagen ab Erhalt der Ware.

+ Alle hier genannten Preise verstehen sich in + EURO + und enthalten + die gesetzliche Mehrwertsteuer, zuz=C3=BCglich Versandkosten + ab EUR 4,90 innerhalb Deutschlands und ab EUR 5,90 f=C3=BCr =C3=96= +sterreich (abh=C3=A4ngig von Ihrer Zahlart). Bei Bestellung nur eines EINZE= +LNEN Artikels, auch in mehrfacher St=C3=BCckzahl ab einem Warenwert von EUR= + 2,90 gelten innerhalb Deutschlands unsere Mini-Versandkosten von nur EUR 1= +,95 (gilt nicht f=C3=BCr Angebote mit den Bestellnummern GRA-.../ GLD-.../ = +GUT-.../ HPM-.../ KOO-.../ ZPR-.../ ZR-.../ ZU-...). Details unter http://www.example.de/infos/versandkost= +en.html. Lieferungen ab einem Warenwert von EUR 150,- erfolgen versandk= +ostenfrei. Die H=C3=B6he der Versandkosten kann im Warenkorb vor Ausf=C3=BC= +hrung der Bestellung eingesehen werden.

+ Die hier angebotenen Artikel sind nur per Versand erh=C3=A4ltlic= +h und nicht in unserem Factory Outlet vorr=C3=A4tig. Aktionsangebote mi= +t den Bestell-Nummern GRA-.../ GLD-.../ GUT-.../ HPM-.../ KOO-.../ ZPR-.../= + ZR-.../ ZU-...) gelten nur f=C3=BCr Endkunden und sind begrenzt auf= + eine max. St=C3=BCckzahl pro Kunde (keine Mini-Versandkosten m=C3=B6gli= +ch). F=C3=BCr den Versand ins Ausland gelten besondere Konditionen. Bit= +te nutzen Sie unseren Onlineshop f=C3=BCr w= +eitere Informationen.

E-Mail-Info:
+ Sie sind derzeit in unserem E-Mail-Verteiler "HotPrice-Mailings= +" mit der Adresse info@example.de eingetragen. + Vielen Dank, dass Sie uns Ihr Vertrauen schenken.

Abmeldung:<= +/b>
+ Falls Sie keine weiteren E-Mails aus dem Bereich "HotPrice-= +Mailings" erhalten=20 + m=C3=B6chten, k=C3=B6nnen Sie Ihre E-Mail-Adresse aus diesem E-M= +ail-Verteiler austragen. + Hierf=C3=BCr entstehen Ihnen keinerlei Kosten.
Z= +ur ABMELDUNG des Newsletters "HotPrice-Mailings" bitte HIER klick= +en.

+ Eine =C3=9Cbersicht s=C3=A4mtlicher Newsletter-Gruppen erh= +alten Sie mit dem folgenden Link. Sie haben damit die M=C3=B6glichkeit, gez= +ielt einzelne Newsletter anzumelden oder jederzeit wieder abzumelden:
Zur Newsletter-Gesamt=C3=BCbersicht bitte HIER klicken.
= +
+ EXAMPLE.GmbH
EXAMPLE-Stra=C3=9Fe 1-3
79426 Buggingen Ger= +many

24 Stunden Bestellannahme:<= +/strong>
0180 / 555 82
(14 Cent= + / Min. aus dem dt. Festnetz, Mobilfunk maximal 42 Cent/Min.)
Fa= +x: +49 7631 / 360-444
= +E-Mail: service@example.deInternet: www.example.de

+ HRB 300375 (Amtsgericht Freiburg im Breisgau) +
Gesch=C3=A4ftsf=C3=BChrer: Daniel C. Ludwig
+ USt-ID: DE 142476770  =C2=B7  WEEE-Reg.-Nr. DE 60771113
= +
* Preise inkl. Mehrwertsteuer, zzgl. Versandkosten (abh=C3=A4ngig von Ihrer Zahlart)
1 ehem. empf. VK des Lieferanten
2 ehemaliger EXAMPLE-= +Preis
3 Preis in Originalverpackung
4 Summe der= + Einzelpreise
6 Ehem. unverb. Preisempfehl. d. Herstellers. K= +eine Gew=C3=A4hr f=C3=BCr Aktualit=C3=A4t.

+=3D"EXAMPLE
 
<= +img width=3D"1" height=3D"1" src=3D"http://www.example.de/cp/imagx/image.jsp?= +c=3DXD9N%2BCHzabcdeJf2qq%2F6SJOi8YuwDuC%2BSyhb9yJht6yIebbxKlkPRr1RW0XYgUVt&= +amp;wa_id=3D995&wa_num=3D6640&curr=3DDEM&wa_id=3D995&wa_num= +=3D6640&mt=3DXD9N%2BCHzabcdeJf2qq%2F6SJOi8YuwDuC%2BSyhb9yJht6yIebbxKlkP= +Rr1RW0XYgUVt" border=3D"0" alt=3D"">= + +------=_Part_138976098_-1336032482.1489768083023-- diff --git a/test/unit/aaa_string_test.rb b/test/unit/aaa_string_test.rb index 7e26ef3c1..c5f2f5572 100644 --- a/test/unit/aaa_string_test.rb +++ b/test/unit/aaa_string_test.rb @@ -595,6 +595,26 @@ Men-----------------------' result = 'http://example.com' assert_equal(result, html.html2html_strict) + html = "http://example.com?abc=123&123=abc" + result = 'http://example.com?abc=123&123=abc' + assert_equal(result, html.html2html_strict) + + html = "http://example.com?abc=123&123=abc" + result = 'http://example.com?abc=123&123=abc' + assert_equal(result, html.html2html_strict) + + html = "" + result = 'http://example.com/?abc=123&123=abc' + assert_equal(result, html.html2html_strict) + + html = '

https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap

' + result = '

https://wiki.lab.example.com/doku.php?id=xxxx:start&#ldap

' + assert_equal(result, html.html2html_strict) + + html = '

https://wiki.lab.example.com/doku.php?id=xxxx:start&a=1;#ldap

' + result = '

https://wiki.lab.example.com/doku.php?id=xxxx:start&a=1;#ldap

' + assert_equal(result, html.html2html_strict) + html = "
http://example.com
" result = "
http://example.com\n
" assert_equal(result, html.html2html_strict) @@ -616,7 +636,6 @@ Men-----------------------' assert_equal(result, html.html2html_strict) html = "http://facebook.de/examplesrbog" - #result = "http://facebook.de/examplesrbog" result = "http://facebook.de/examplesrbog" assert_equal(result, html.html2html_strict) @@ -641,8 +660,8 @@ abc

Von: Fritz Bauer [mailto:me@example.com]
Gesendet: Donne result = "

abc

Von: Fritz Bauer [mailto:me@example.com]
Gesendet: Donnerstag, 3. Mai 2012 11:51
An: John Smith
Cc: Smith, John Marian; johnel.fratczak@example.com; ole.brei@example.com; Günther John | Example GmbH; bkopon@example.com; john.heisterhagen@team.example.com; sven.rocked@example.com; michael.house@example.com; tgutzeit@example.com
Betreff: Re: OTRS::XXX Erweiterung - Anhänge an CI's

\n
" assert_equal(result, html.html2html_strict) - html = "
Mit freundlichem Gruß 

John Smith
Service und Support

Example Service AG & Co.
Management OHG
Someware-Str. 4
xxxxx Someware

Tel.: +49 001 7601 462
Fax: +49 001 7601 472
john.smith@example.com
www.example.com
" - result = "
Mit freundlichem Gruß

John Smith
Service und Support

Example Service AG & Co.
Management OHG
Someware-Str. 4
xxxxx Someware

\n
Tel.: +49 001 7601 462
Fax: +49 001 7601 472
john.smith@example.com
http://www.example.com (http://www.example.com\")
" + html = "
Mit freundlichem Gruß 

John Smith
Service und Support

Example Service AG & Co.
Management OHG
Someware-Str. 4
xxxxx Someware

Tel.: +49 001 7601 462
Fax: +49 001 7601 472
john.smith@example.com
www.example.com
" + result = "
Mit freundlichem Gruß

John Smith
Service und Support

Example Service AG & Co.
Management OHG
Someware-Str. 4
xxxxx Someware

\n
Tel.: +49 001 7601 462
Fax: +49 001 7601 472
john.smith@example.com
www.example.com
" assert_equal(result, html.html2html_strict) html = 'test' diff --git a/test/unit/email_process_test.rb b/test/unit/email_process_test.rb index 0bac8d1ff..7e63f315e 100644 --- a/test/unit/email_process_test.rb +++ b/test/unit/email_process_test.rb @@ -2266,6 +2266,31 @@ Some Text', ], }, }, + { + data: IO.binread('test/fixtures/mail47.box'), + success: true, + result: { + 0 => { + priority: '2 normal', + title: '-90%! Nur 3,90 statt 39,90 EUR: In-Ear-Stereo-Headset mit Bluetooth 4.1 und Magnetverschluss für Bob Max Example', + }, + 1 => { + from: 'EXAMPLE HotPriceMail ', + sender: 'Customer', + type: 'email', + }, + }, + verify: { + users: [ + { + firstname: 'EXAMPLE', + lastname: 'HotPriceMail', + fullname: 'EXAMPLE HotPriceMail', + email: 'anja.weber@example.de', + }, + ], + }, + }, ] assert_process(files) end