Fehler beim auslesen einer Mail

mC pAiN

Erfahrenes Mitglied
Hallo,

ich habe da ein kleines aber dennoch gravierendes Problem beim auslesen einer Mail von ebay.

So sieht die Mail aus:
Bitte beachten Sie, dass es sich bei
dieser E-Mail um eine vom System versendete Information handelt. Eine
Antwort auf diese E-Mail mittels ?Antwort? oder der Antwort-Funktion
Ihres Mailprogramms ist nicht möglich. Bei Fragen an unseren
Kundenservice klicken Sie bitte auf den folgenden Link oder kopieren Sie
ihn in Ihren Browser:

http://pages.ebay.de/help/basics/select-support.html

-----------------------------------------------------------------
Herzlichen Glückwunsch blablub!
-----------------------------------------------------------------
Hallo blablub,
xxx hat am 28.02.04 20:38:50 MEZ den folgenden Artikel über eBay
erworben:


Wenn Sie Versandkosten oder andere
Gebühren auflisten möchten, senden
Sie diese Informationen bitte an den Käufer


http://cgi3.ebay.de/aw-cgi/eBayISAPI.dll?UnifiedCheckoutSellerUpdateDeta
ils&itemId=2383070122&transId=0&buyerid=0&ssPageName=ADME:L:EOAS:DE:1
-----------------------------------------------------------------
KONTAKTDATEN
-----------------------------------------------------------------
Mitgliedsname: xxx
Name: xxx xxx
Straße: xxx xxx
Ort: xxxxx xxx
Land: Deutschland

-----------------------------------------------------------------
ANGABEN ZUM ARTIKEL
-----------------------------------------------------------------
Artikelbezeichnung: Artikel halt
Artikelnummer: 1234567890
Angebotsende: 28.02.04 20:38:50 MEZ
Anzahl der Gebote: 5
Verkäufer: blablub:
mailto:verkaeufer@mail.de
Käufer: xxx: mailto:kaeufer@mail.de



-----------------------------------------------------------------
Einzelheiten zur Bezahlung:
-----------------------------------------------------------------
Artikelpreis: EUR 99,99
Menge: 1
Betrag: EUR 99,99*


Verpackung & Versand:
Versicherter Versand: EUR 11,00


Ihre Zahlungshinweise an den Käufer:
[nicht angegeben]


Jetzt zum Problem. Ich möchte die relevanten Daten aus der Mail auslesen und in eine Datenbank speichern. Klappt auch prima, bis auf die Versandkosten (egal ob Versicherter Versand oder Verpackung & Versand).
Folgende Zeile liest z.B. die Artikelnummer aus:

PHP:
$art_nr    = trim(strtok(substr($mail, strpos($mail, 'Artikelnummer: ')+strlen('Artikelnummer: ')), "\n"));

Bei den versandkosten habe ich das so gemacht:

PHP:
$versand   = trim(str_replace("EUR ", "", strtok(substr($mail, strpos($mail, 'Versicherter Versand: ')+strlen('Versicherter Versand: ')), "\n")));

Seltsamerweise kommt aber immer nur folgendes bei "echo $versand" raus:

0.00


In der Datenbank habe ich den Datensatz als "decimal 15,2" deklariert (mit standard 0.00).
Er kommt einfach nicht an die VKosten dran, warum auch immer :(
 
Erstmal können wir davon ausgehen, dass er nichts in die Datenbank einfügt, daher greift der Defaultwert.

Versuch doch einfach mal neTestausgabe per
PHP:
echo $versand;
zu machen, was bekommste da zurück?
 
Erm... Wie soll ich das ersetzen? Das ist Part der Mail und so von ebay festgelegt. Und daran wirds nicht liegen, weil es beim Artikelpreis auch klappt.

Ich denke, ich habe eine neue Ahnung woran es liegen könnte:

Die Versandkosten sind der einzige "Part", wo 2 Wörter (siehe: "Versicherter Versand") - also mit Leerzeichen - vorkommen. Muss ich evtl. beim strpos und strlen nicht "Versicherter Versand: " sondern "VersicherterVersand: " nehmen wegen dem trim() ?
 
Ich denke nicht dass es daran liegt, weil trim() ist ja ganz aussen und wird somit erst ausgeführt wenn alle andere ausgeführt wurden...Aber probier es doch mal, gibt ja nichts zu tun und die Lösung hättest du schon lange wenn du es anstatt hier gefragt, einfach gemacht hättest...
 
Ich hätte ja auch schon lange gemacht, aber leider hab ich gerade keine eBay Mail zur Hand. Das ganze wird mittels CronJob ausgelesen und die entsprechenden Mails direkt gelöscht... Sonst hätte ich sozusagen eine Endlosschleife. Vielleicht kann ich heute Abend wenn wieder eine Auktion endet, testen...
 
Original geschrieben von mC pAiN
Erm... Wie soll ich das ersetzen? Das ist Part der Mail und so von ebay festgelegt. Und daran wirds nicht liegen, weil es beim Artikelpreis auch klappt.
Du versuchst in ein "decimal 15,2"-Feld eine Zahl mit Komma einzutragen, wäre mir neu, dass das korrekt funktioniert. Aber wenns beim Artikelpreis auch klappt pass doch den an.

Ich habe auch eine neue Ahnung woran es noch liegen könnte, versuch das mal:
PHP:
$versand = trim(str_replace(",", ".", strtok(substr($mail, strpos($mail, 'Versicherter Versand: EUR')+strlen('Versicherter Versand: EUR')), "\n")));
 
Ok, werde das ganze mal testen.

Vielen Dank für eure Ratschläge. Werde euch auf dem laufenden halten...
 

Neue Beiträge

Zurück