AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke IMAP Attachment, ein Byte wird verschluckt
Thema durchsuchen
Ansicht
Themen-Optionen

IMAP Attachment, ein Byte wird verschluckt

Ein Thema von mcinternet · begonnen am 24. Jul 2012 · letzter Beitrag vom 31. Jul 2012
Antwort Antwort
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#1

IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 11:25
Moin,

RAD Studio XE2 - 32 Bit. Ich hole mittels IMAP (POP3 geht da aus technischen Gründen nicht) Mail mit GPG-verschlüsselten Attachments ab. Bei ca. 30% wird ein Byte unterschlagen; ist nat. bei Verschlüsselung tödlich.
Das ist auch unabhängig von der Größe der Datei. Hier mal mein Code:
Delphi-Quellcode:
procedure TFrmMain.btn_connectClick(Sender: TObject);
  var iCollection : TIdMessageCollection ;
          AUID : String;
          iloop : integer;
          idx: Integer;
          FN : string;
          MSG : TIdMessage;
          mailcount : integer;
          msgpartcount : integer;

begin
  imap.Connect(true);
  iCollection := TIdMessageCollection.Create(TIdMessageItem);
  MSG := TIdMessage.Create();
  imap.SelectMailBox('inbox');
  mailcount := imap.MailBox.TotalMsgs;
  lbl_mailcount.Caption := inttostr(mailcount);
  for iLoop := 1 to mailcount do begin
     imap.GetUID(iLoop,AUID);
     imap.Retrieve(iLoop,msg);

     lbl_uid.Caption := auid;
     msgpartcount := pred(msg.MessageParts.Count);
     lbl_msgcount.Caption := inttostr(msgpartcount);
     for idx := 0 to msgpartcount do
     begin
       if msg.MessageParts.Items[idx] is TIdAttachmentFile then
        begin
          FN := strPath + 'Export\'+ rightstr(TIdAttachmentFile(msg.MessageParts.Items[idx]).Filename,23);
          if (not fileexists(FN)) and (RightStr(FN,3) = 'gpg') then
          begin
            lbl_fn.Caption := FN;
            TIdAttachmentFile(msg.MessageParts.Items[idx]).SaveToFile(FN);
     end;
  end;
end;
IMAP Einstellungen:
Auth Type: iatUserPass
Host: xxxxx
Mailbox Separator: /
MillisecsToWaitToClearBuffer: 10
Name: IMAP
Passswort: xxxxxx
Port: 143
RetrieveOnSelect: rsDisabled
SASLMechanisms:
Tag: 0
Username: xxxxx
UseTLS: utNoTLSSupport


Wer hat da eine Idee?

Gruß
McInternet
Jörg
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

AW: IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 14:53
Passiert es denn reproduzierbar immer bei den gleichen Mails?
  Mit Zitat antworten Zitat
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 15:18
Passiert es denn reproduzierbar immer bei den gleichen Mails?
Ja - wenn ich die Dateien dann vergleiche, schmeißt mir Notepad+ 2-3 Fehler raus - (man sieht bloß keine!!!) und Ultraedit nur einen. (auch nix zu sehen)
Nur das die Datei immer genau 1 Byte Unterschied in der Länge hat. - Ein ziemlich obskurer Fehler.

Gruss

Mc
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

AW: IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 15:23
Zitat:
schmeißt mir Notepad+ 2-3 Fehler raus
Was für Fehler?

Du könntest uns natürlich auch mal ein paar Dateien geben, so zum Nachsehn, wa Anders ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 18:33
Zitat:
schmeißt mir Notepad+ 2-3 Fehler raus
Was für Fehler?

Du könntest uns natürlich auch mal ein paar Dateien geben, so zum Nachsehn, wa Anders ist.
Die Dateien kann/darf ich Euch nicht geben. => BSI ....

Also: Die Dateien sind gpg verschlüsselt (AES 256).
Ich speichere sie ab zum automatischen Weiterverarbeiten. Dabei fallen ca. 30% raus, können nicht entschlüsselt werden. Hole ich diese mit einem eMail-Client ab, so sind diese 30% dann genau ein Byte länger. Die anderen 70% sind gleich. d.h. bei 30% der Dateien, welche ich mit o.g. Code ziehe fehlt im Endeffekt genau ein Byte.
Mache ich nun mit Notepad+ oder Ultraedit einen Vergleich, so sagt Notepad, das dort ein Unterschied wäre -> kann mir zwar die Zeile zeigen, aber nicht das Zeichen ( und das mittendrin! ).
Auch bei sehr genauem Hinschauen findet man keinen Unterschied (Wir haben da das 8-Augen-Prinzip angewandt). Seltsamerweise zeigt mir Ultraedit 3 Unterschiede an, kann mir aber ebenfalls nur ne Zeile zeigen und der Hex-Code ist gleich. - Also ist da irgendwo ein leak ...? Nur wo?

Ich kann da aus vorgegebenen Sicherheitsstrukturen, welche ich auch nicht umgehen oder aufweichen kann kein POP3 anwenden, nur IMAP. Von daher meine Frage, ob jemand da eine Idee für nen Workaround hat....? Oder haut mir da die API, das Windowsdateisystem (WIN7 Enterprise 32 Bit) oder sonstwer rein?

Ich finde da auch keine Regelmäßigkeit bzgl. Dateigröße, Name oder so. Das tritt bei 1-2k und auch bei 10k und größer auf.

Gruss
Mc
Jörg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#6

AW: IMAP Attachment, ein Byte wird verschluckt

  Alt 24. Jul 2012, 18:54
http://www.delphipraxis.net/113368-b...vergleich.html (ist zwar nicht so cool wie Ultraedit ... aber funktioniert )
Es gibt (bestimmt) noch bessere Programme, aber für den Anfang reicht's.

[add] Hier im Forum suchenHxD / Bei Google suchenHxD hat auch einen Dateivergleich drin
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Jul 2012 um 19:04 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz