AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9
Thema durchsuchen
Ansicht
Themen-Optionen

Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

Ein Thema von wlfmario · begonnen am 3. Mär 2006 · letzter Beitrag vom 4. Mär 2006
Antwort Antwort
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#1

Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

  Alt 3. Mär 2006, 20:20
Hallo zusammen,

ich brauche mal ein Erleuterung zu den Attachments Indy 9 (Datei und Text).

Wenn ich meine Mails empfange die keinen Anhang haben, kann ich zb. den Text der Mail mit
RichEdit1.Text := Msg.Body.Text; sehen.

Wenn die Mail aber einen Anhang hat, erscheint nur
Zitat:
This is a multi-part message in MIME format
Wie komme ich jetzt an den Text drann der in der Mail steht ?

Zweite Frage: Was passiert hier genau ?
Delphi-Quellcode:
if Msg.MessageParts.Items[i] is TIDText then
        Attach := (Msg.MessageParts.Items[AttachCount] as TIDText).Body.Text;
Ich hoffe, das mir jemand meine Fragen Erklären kann.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

  Alt 3. Mär 2006, 20:47
Das was du gepostet hast müsste genau das tun was du haben willst.
Als erstes wird geprüft ob Item i der Multipart Email text ist. Wenn das so ist, wird der text in Attach gespeichert. Wenn du dort anstatt Attach, RichEdit1.Text angeben würdest müsste der Text ausgegeben werden. Oder du weist eben dem RichEdit1.Text den Inhalt von Attach zu.
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#3

Re: Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

  Alt 3. Mär 2006, 20:53
Tja so etwas habe ich mir schon gedacht ! Aber leider klappt das bei mir nicht !
Delphi-Quellcode:
procedure THauptForm.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  i, AttachCount: integer;
  Attach: String;
  MailPfadDaten: TMailPfadDaten;
begin
AttachCount := 0;
i := 0;
  with ListView1 do
  begin
    for I := 0 to Items.Count - 1 do
      if Items[I].Selected then
      begin
        MailPfadDaten := TMailPfadDaten(Items[I].data);
        Msg.LoadFromFile(ExtractFilePath(Application.ExeName) +
          '/Mail-In/' + MailPfadDaten.Mailpfad, false);
        for AttachCount := 0 to Msg.MessageParts.Count -1 do
        begin
        if Msg.MessageParts.Items[i] is TIDAttachment then
        Attach := (Msg.MessageParts.Items[AttachCount] as TIDAttachment).FileName;

        if Msg.MessageParts.Items[i] is TIDText then
        begin
        RichEdit1.Text := (Msg.MessageParts.Items[AttachCount] as TIDText).Body.Text;
        end;
        end;
        //RichEdit1.Text := Msg.Body.Text;
      end;
  end;
end;
Es wird kein Text angezeigt. Bei dem RichEdit1.Text := Msg.Body.Text; wird zumindest bei der Mail ohne Anhang der Text angezeigt.
Mario
  Mit Zitat antworten Zitat
Benutzerbild von Brainstalker
Brainstalker

Registriert seit: 9. Jan 2004
Ort: Berlin
176 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

  Alt 4. Mär 2006, 13:46
Soweit ich den Code jetzt verstanden habe müsste der Fehler in den zwei Schleifen liegen.
i ist bei die Variable für die ListView Schleife und AttachCount für die Multipart Schleife. Der Fehler müsste also in folgenden Zeilen liegen:
Delphi-Quellcode:
if Msg.MessageParts.Items[i] is TIDAttachment then
  Attach := (Msg.MessageParts.Items[AttachCount] as TIDAttachment).FileName;
Ich würde sagen das i in der ersten Zeile ist falsch. Das i müsstest du einfach mit AttachCount ersetzen. denn das hat ja nichts mit der ListView Schleife zu tun. Gleiches gilt auch für das IDText. Das müsste deinen Fehler beheben.

So müsste es dann aussehen:
Delphi-Quellcode:
if Msg.MessageParts.Items[AttachCount] is TIDAttachment then
  Attach := (Msg.MessageParts.Items[AttachCount] as TIDAttachment).FileName;

if Msg.MessageParts.Items[AttachCount] is TIDText then
  RichEdit1.Text := (Msg.MessageParts.Items[AttachCount] as TIDText).Body.Text;
Michael N.
Brainstalker
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#5

Re: Mut zu Lücke ! Bitte um Erklerung Attachment Indy 9

  Alt 4. Mär 2006, 16:59
Danke für die Antwort !

Leider hat das nur zum Teil zum Erfolg geführt.

Ich habe mal die Procedure etwas umgebaut, so das ich im RichEdit sehe was alles angezeigt wird.
Bei Mails mit Anhang wird nur der Filename der Datei angezeigt nicht der Text der Mail.
Bei Mails ohne Anhang wird nichts angezeigt.

Wenn ich die gespeicherten Mails mir im OutlookExpress angucke ist alles vorhanden.

Delphi-Quellcode:
procedure THauptForm.ListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  i, AttachCount: integer;
  Attach: string;
  MailPfadDaten: TMailPfadDaten;
  MailLoadStream: TFileStream;
begin
  AttachCount := 0;
  i := 0;
  with ListView1 do
  begin
    for I := 0 to Items.Count - 1 do
      if Items[I].Selected then
      begin
        MailPfadDaten := TMailPfadDaten(Items[I].data);
        MailLoadStream := TFileStream.Create(ExtractFilePath(Application.ExeName)
          +
          '/Mail-In/' + MailPfadDaten.Mailpfad, fmOpenRead or fmShareExclusive);

        Msg.LoadFromStream(MailLoadStream, false);
        MailLoadStream.Free;
        for AttachCount := 0 to Msg.MessageParts.Count - 1 do
        begin
          if Msg.MessageParts.Items[AttachCount] is TIDAttachment then
            Attach := (Msg.MessageParts.Items[AttachCount] as
              TIDAttachment).FileName;
          if Msg.MessageParts.Items[AttachCount] is TIDText then
            Attach := (Msg.MessageParts.Items[AttachCount] as
              TIDText).Body.Text;
        end;
      end;
  end;
  RichEdit1.Text := Attach;
end;
Mario
  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 09:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz