Entwickler-Ecke

Internet / Netzwerk - Problem mit "falsch" erzeugter Mail


schakal242 - Do 28.08.03 21:13
Titel: Problem mit "falsch" erzeugter Mail
Hallo,

ich arbeite an einem Programm, das Mails abruft und automatisch ausliest.
Die Mails werden jedoch von einem PHP-Script erzeugt; es fehlen informationen über die Indizes der Attachments. D.h. es existiert keiner.

Dieser Code


Delphi-Quelltext
1:
2:
3:
4:
5:
   for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
            begin
              usw....


funktioniert dann natürlich nicht. Komm ich auch ohne Index an ein Attachment ran? Outlook schafft das auch irgendwie...


Gruss

Ulf

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.


MrSaint - Fr 29.08.03 14:43

was meinst du mit "index"? also mit den indys hab ich noch nie was mit eMail gemacht, hab aber mal mein eigenes Mail-Server-Frontend mit PHP geschrieben, heißt ich kenn mich etwas mit Mails aus ;) Poste doch mal so ne mail, wo kein "Index" dabei is (als Attachment halt irgend 'n kleines TXT-File oder so. Dann können wir ja mal gucken ;)



MrSaint


barfuesser - Fr 29.08.03 15:04

Hallo,

die unterschiedlichen MessageParts haben keinen durchlaufenden Index, sondern mehr oder weniger frei vergebbare Identifier. Diese Identifier genügen einem bestsimmten Schema, welches ich aber leider nicht im Kopf habe. Ich weiß nur noch, daß dabei am Anfang oder am Ende ein Unterstrich hinzugefügt werden muß, um den abschließenden Identifier vom eröffnenden zu unterscheiden.

barfuesser


MrSaint - Fr 29.08.03 15:08

irgendwie versteh ich des nich :? poste doch mal ne (kurze) mail mit header und allem drum und dran hier rein... in outlook kann man die dateien als ".eml" Files abspeichern. und darin is dann die komplette mail, falls du nich weißt, wo man das herbekommen soll ;)



MrSaint


barfuesser - Fr 29.08.03 15:31

Ein Bsp.-Mail-Header:
Zitat:
Microsoft Mail Internet Headers Version 2.0
... (gekürzt)
Message-ID: <000a01c329f8$8215f090$fcffa8c0@winnie>
From: "Ralf Keller" <ralf.keller@barfuesser.de>
To: <ralf.keller@pc-ware.de>
Subject: apache
Date: Tue, 3 Jun 2003 19:49:40 +0200
Organization: BarfuesserSoftwareEngineering
MIME-Version: 1.0

Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0007_01C32A09.4533C9C0"

X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2800.1106
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106
Return-Path: ralf.keller@barfuesser.de
X-OriginalArrivalTime: 03 Jun 2003 17:56:12.0253 (UTC) FILETIME=[6B6EE0D0:01C329F9]

------=_NextPart_000_0007_01C32A09.4533C9C0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

------=_NextPart_000_0007_01C32A09.4533C9C0
Content-Type: text/plain;
name="httpd.conf"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="httpd.conf"


------=_NextPart_000_0007_01C32A09.4533C9C0--


Also Blau markiert ist die Definition des Identifiers und rot markiert die Nutzung. Und dabei kann ich gleich festellen, daß der abschließende Identifier zwei abschließende Bindestriche und keine zusätzlichen Unterstriche enthält.

barfuesser


MrSaint - Fr 29.08.03 15:42

ahh... jetzt... du meinst die boundaries *g* ich hab hier mal n code, den Outlook generiert.

Oulook Mail hat folgendes geschrieben:

Return-Path: <Sender@provider.de>
Delivered-To: Reciever@provider.de
Received: from mail.gmx.net (213.165.64.20:57614)
by provider.de with [Software of provider.de]
id <S20C> for <Reciever@provider.de> from <Sender@provider.de>;
Fri, 29 Aug 2003 15:35:30 +0200
Received: (qmail 7325 invoked by uid 65534); 29 Aug 2003 13:35:16 -0000
Received: from [Reciever info]
by mail.gmx.net (mp007) with SMTP; 29 Aug 2003 15:35:16 +0200
From: "MrSaint" <Sender@provider.de>
To: <Reciever@provider.de>
Subject: blubb
Date: Fri, 29 Aug 2003 15:35:16 +0200
Message-ID: [Message ID]
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_0000_01C36E43.253FACA0"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

This is a multi-part message in MIME format.

------=_NextPart_000_0000_01C36E43.253FACA0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

blubb
------=_NextPart_000_0000_01C36E43.253FACA0
Content-Type: text/plain;
name="artike~1.txt"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="artike~1.txt"

[Inhalt der Datei]

------=_NextPart_000_0000_01C36E43.253FACA0--


Ich glaub es liegt daran, dass bei dir die grün eingefärbte Zeile fehl. deswegen erkennt Indy es nicht als Attachment.

Kannst du nicht alle Message Parts durchgehen, bis du irgendwo z.B. n filname bekommst? (wie glaub schon erwähnt: ich arbeite nich mit der TIdSMTP Kompo).


MrSaint


MrSaint - Fr 29.08.03 15:43

oohhh.. übersehn.. die zeile is ja da... hmmm... *nachdenk*


MrSaint

******* EDIT ******
** Ich glaub, da is wohl irgendwo n bug in der TIdSMTP
******************


barfuesser - Fr 29.08.03 15:48

lass uns mal lieber warten bis sich schakal242 wieder zu Wort meldet.

barfuesser


schakal242 - So 31.08.03 11:59

Hallo,

ich habe festgestellt das eine Mail, die mit 3 Anhängen erzeugt wird für mein Prog lesbar ist. Aber mit 4 Anhängen kann es sie nicht mehr finden...
Hier eine Mustermail mit 4 Anhängen:

Return-Path: <cgi-mailer-bounces-41577740@kundenserver.de>
Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.183])
by mail-dd.shw-networks.de (8.12.6/8.12.6/SuSE Linux 0.6) with ESMTP id h7V9tGa0000488
for <ulf@die-bessere-wahl.com>; Sun, 31 Aug 2003 11:55:17 +0200
Received: from [212.227.126.203] (helo=mrvnet.kundenserver.de)
by moutng.kundenserver.de with esmtp (Exim 3.35 #1)
id 19tOtw-0000oH-00
for ulf@die-bessere-wahl.com; Sun, 31 Aug 2003 11:53:40 +0200
Received: from [212.227.119.32] (helo=infong143 ident=8)
by mrvnet.kundenserver.de with smtp (Exim 3.35 #1)
id 19tOtv-0002XP-00
for ulf@die-bessere-wahl.com; Sun, 31 Aug 2003 11:53:39 +0200
Received: from [145.254.164.83](IP may be forged by CGI script)
by infong143.kundenserver.de with HTTP; Sun, 31 Aug 2003 11:53:39 +0200
X-Complaints-To: abuse@kundenserver.de
X-Sender-Info: 41577740@infong143
Date: Sun, 31 Aug 2003 11:53:39 +0200
Precedence: bulk
To: ulf@die-bessere-wahl.com
Subject: ghghj,
From: Meine@Website.de
X-Priority: 3 (Normal)
Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_bee158807f0e2366e092f7f50895b624"
Content-Transfer-Encoding: quoted-printable
X-Mailer: RLSP Mailer
Message-Id: <E19tOtv-0002XP-00@mrvnet.kundenserver.de>
X-Spam-Status: No, hits=6.1 required=9.0
tests=HTML_10_20,HTML_MESSAGE,MIME_BOUND_NEXTPART,
MIME_DEFICIENT_QP,MIME_HTML_ONLY,MIME_LONG_LINE_QP,
MIME_SUSPECT_NAME,NO_REAL_NAME,RCVD_IN_NJABL
version=2.55
X-Spam-Level: ******
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
X-UIDL: 6lo"!=G$#!Im@"!fcZ!!
Status: RO


This is a multi-part message in MIME format.

------=_NextPart_bee158807f0e2366e092f7f50895b624
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

Name=ghghj<BR>Vorname=<BR>Strasse=dsfdsf<BR>PLZ=<BR>Ort=<BR>Telefon1=<BR>Telefon2=<BR>Mobil=Verkauf/<BR>Fax=<BR>EMail=<BR>GeburtsdatumTag=<BR>GeburtsdatumMonat=<BR>GeburtsdatumJahr=<BR>Geschlecht=W<BR>Nationalität=DE<BR>Gewerbeschein=Nein<BR>Taetigkeit=<BR>Gesundzeugniss=Nein<BR>PKW=<BR>LKW=<BR>Motorrad=<BR>B52=<BR>EigenerPKW=Nein<BR>Kombi=<BR>Transporter=<BR>Ausbildung=<BR>Ausbildung2=<BR>Berufsausbildung=<BR>Studium=<BR>Englisch=keine<BR>Spanisch=keine<BR>Franzosisch=keine<BR>SpracheSons1=<BR>Sonstige1=keine<BR>SpracheSons2=<BR>Sonstige2=keine<BR>EDV=<BR>Telekomm=<BR>Hifi=<BR>TVAudio=<BR>PC=<BR>Kosmetik=<BR>Mode=<BR>Automobile=<BR>Haushalt=<BR>Groesse=<BR>Haarfarbe=1<BR>Konfektionsgroesse=32<BR>Schuhgroesse=34<BR>JeansW=26<BR>JeansL=30<BR>TShirt=M<BR>Brust=80<BR>Taille=50<BR>Hufte=<BR>tags_mo=<BR>tags_di=<BR>tags_mi=<BR>tags_do=<BR>tags_fr=<BR>tags_sa=<BR>tags_so=<BR>SGVerkauf=<BR>SGVerkostung=<BR>SGVerteilung=<BR>SGMerchandising=<BR>SGTelefonmarketing=<BR>SGMesse=<BR>SGModeration=<BR>SGVertrieb=<BR>MGVerkauf=<BR>MGVerkostung=<BR>MGVerteilung=<BR>MGMerchandising=<BR>MGTelefonmarketing=<BR>MGMesse=<BR>MGModeration=<BR>MGVertrieb=<BR>TextBesondere=Sonstige Kenntnisse / Fähigkeiten<BR>Bemerkungen=<BR>
------=_NextPart_bee158807f0e2366e092f7f50895b624
Content-Type: plain/text;
name="Felder.txt";
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Felder.txt"

TmFtZT1naGdoag0KVm9ybmFtZT0NClN0cmFzc2U9ZHNmZHNmDQpQTFo9DQpPcnQ9DQpUZWxlZm9u

usw....


------=_NextPart_bee158807f0e2366e092f7f50895b624
Content-Type: plain/text;
name="1.jpg";
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="1.jpg"

/9j/4AAQSkZJRgABAAEBLAEsAAD//gAfTEVBRCBUZWNobm9sb2dpZXMgSW5jLiBWMS4wMQD/2wBD

usw....


------=_NextPart_bee158807f0e2366e092f7f50895b624
Content-Type: plain/text;
name="2.jpg";
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="2.jpg"

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB

usw...


------=_NextPart_bee158807f0e2366e092f7f50895b624
Content-Type: plain/text;
name="3.jpg";
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="3.jpg"

/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a

usw...


------=_NextPart_bee158807f0e2366e092f7f50895b624--


schakal242 - So 31.08.03 12:21

Ich glaube es liegt an dem ersten Attachment.
Dort fehlt Content-Disposition: attachment;


MrSaint - So 31.08.03 12:25

nein, da wird das "Conent-Disposition: attachment;" ja nicht gebraucht, weil das kein Attachment ist. Das ist ja der Inhalt der eMail....



MrSaint


schakal242 - So 31.08.03 13:35

Ich schaue mir den Quelltext immer mit Outlook an.
Kannes sein, dass Outlook beim Empfangen im Quelltext der Mail
schon etwas ändert?


MrSaint - So 31.08.03 13:44

also möglich is das bestimmt. aber ich glaub's irgendwie net wirklich. wieso sollte es das tun? aber um das zu überprüfen, kannst ja mal kurz ne POP3-Kompo auf ne form ziehen und so eine "Problem-Mail" empfangen und angucken. Vielleicht geht das auch,wenn du dich schnell per Telnet bei dem Sever anmeldest und da nachguckst (das hab ich aber noch nie probiert :/ )...


MrSaint


schakal242 - Di 02.09.03 12:44

Ich hab den Fehler gefunden: Es liegt am Provider 1&1, bei denen läuft irgendwas mit PHP falsch; die mails werden dort ohne "Next Part" rausgeschickt. Ausserdem kann man den Fehler nicht mit Outlook feststellen, weil Outlook sich den Qulltext einer E-Mail nur interpretiert....

Vielen Dank

Gruss aus Hannover

Ulf