AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10 Email anhang speichern (outlook indy)

Indy 10 Email anhang speichern (outlook indy)

Ein Thema von itashadow · begonnen am 10. Jul 2008 · letzter Beitrag vom 11. Jul 2008
Antwort Antwort
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#1

Indy 10 Email anhang speichern (outlook indy)

  Alt 10. Jul 2008, 08:22
Hi.
schreib grad ein programm mit dem es unteranderem möglich sein soll emails mit anhang zu senden und zu empfangen.
beim empfang soll dann nur der anhang gespeichert werden (welcher immer eine txt datei ist).

Soweit so gut.
Versende ich von meinem Programm eine E-Mail mit einer text datei als anhang, so kann ich die mit meinem Programm empfangen und den anhang speichern.
Will ich sie mit Outlook 2003 empfangen klappt das auch ordnungsgemäß.
Aber verschicke ich eine Email die genauso aufgebaut ist mit outlook und packe die selbe datei in den anhang.
bekomme ich in folgender codezeile eine Exception:
TIdAttachmentMemory(hintergrundform.HintergrundForm1.IDMessage1.MessageParts.Items[0]).SaveToFile(pfad + hintergrundform.HintergrundForm1.IDMessage1.Subject); Zum Test habe ich dann mit meinem programm und mit oulook eine email verschickt und sie in meinem programm beim herunterladen als .msg gespeichert.
Abgesehen davon das sie sehr unterschiedlich aussehen habe ich noch festgestellt das mein programm den email anhang verschlüsselt.
bei ihr steht: Content-Transfer-Encoding: base64
bei outlook: Content-Transfer-Encoding: quoted-printable


hat jemand eine lösung wie ich mit meinem programm alle emails abrufen kann und jeden dateianhang abspeichere???
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#2

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 07:39
hat den keiner
ne lösung oder zumindest einen tip?
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#3

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 08:37
hat sich erledigt...

outlook hängt anscheinend noch daten als messagepart ran...

so klappts:

Delphi-Quellcode:
 
try
  for y := 0 to HintergrundForm1.IDMessage1.MessageParts.Count -1do
  if (HintergrundForm1.IDMessage1.MessageParts[y] is TIdAttachment) then begin
    TIdAttachmentMemory(HintergrundForm1.IDMessage1.MessageParts.Items[y]).SaveToFile(pfad + HintergrundForm1.IDMessage1.Subject);
  end ;
  except
end;
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#4

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 10:47
klappt doch nich so ganz...

hätte mal in die textdatei reinschauen sollen.

der speichert mir da irgendwelchen wilden hex code


edit:
ok den wilden hex speichert er nur wenn es sich um eine html mail handelt und zb ein image drin ist (signatur);
wenn in der html mail reiner text ist speichert er die txt korrekt ebenso wenn es sich um eine textmail handelt.

wie kann ich das abfangen?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 11:35
Hallo,

leider habe ich INDY9 installiert, also nur damit du nicht zum Alleinunterhalter entartest: Jeder MessagePart hat eine Eigenschaft IsEncoded, die Aufschluss darüber geben sollte, ob der entsprechende Part MIME-kodiert wurde oder nicht.

Freundliche Grüße
  Mit Zitat antworten Zitat
itashadow

Registriert seit: 22. Apr 2008
Ort: Hattingen
86 Beiträge
 
#6

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 11:48
juhu ne antwort

danke

hab ich vorhin auch schon probiert
hab mir bei jedem msg part ausgeben lassen ob es encodet is
showmessage(booltostr(hintergrundform1.idmessage1.IsBodyEncodingRequired)); jedesmal hat der mir nen false rausgehauen O_o
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Indy 10 Email anhang speichern (outlook indy)

  Alt 11. Jul 2008, 19:53
Und noch eine Antwort: Dein Text und dein Code passen irgendwie nicht zusammen.

Ich hatte eher sowas gemeint:

Delphi-Quellcode:
var
  msg: TIdMessage;
  part: TIdMessagePart;
  i: Integer;
begin
  // ...
  for i := 0 to Pred(msg.MessageParts.Count) do
  begin
    part := msg.MessageParts.Items[i];
    ShowMessage(BoolToStr(part.IsEncoded, True));
    // ...
  end;
  // ...
end;
Ansonsten: Für Indy9 gibt es eine Demo "MailClient" - vielleicht gibt es die auch für Indy10. Wenn nicht, dann ist der Unterschied bestimmt auch nicht so groß, dass man nicht etwas davon lernen könnte.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:00 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