AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateianhang mit Indys

Ein Thema von scrat1979 · begonnen am 24. Okt 2011 · letzter Beitrag vom 26. Okt 2011
Antwort Antwort
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Dateianhang mit Indys

  Alt 24. Okt 2011, 20:11
Habe mal mit Neumanns Codeschnipsel begonnen (da etwas "vollständiger") und es funktioniert PERFEKT!!!! Allerdings weiß ich jetzt nich sicher, an welcher Einstellung es liegt (evtl. probiere ich das nachher aus und gebe Rückmeldung).

Anbei mein (nahezu) vollständiger Code der Vollständigkeit halber...

Delphi-Quellcode:
    [...]

    (* SMTP-Komponente initialisieren *)
    idSMTPFinal := TIdSMTP.Create(nil);
    idSMTPFinal.AuthType := satDefault;
    idSMTPFinal.Host := 'mail.gmx.net';
    idSMTPFinal.Password := 'xxxxxxxxxxxxx';
    idSMTPFinal.Port := 25;
    idSMTPFinal.Username := 'xxxxxxxxxxxxxxxxxxx';
    idSMTPFinal.UseTLS := utNoTLSSupport;
    idSMTPFinal.UseVerp := False;

    (* Nachricht erstellen *)
    idMessageFinal := TIdMessage.Create(nil);
    idMessageFinal.ContentType := 'multipart/mixed';
    idMessageFinal.ContentTransferEncoding := '8 bit';
    idMessageFinal.Encoding := meMIME;
    idMessageFinal.AttachmentEncoding := 'MIME';

    idAttachment := TIdAttachmentFile.Create(idMessageFinal.MessageParts, 'd:\test.pdf');
    idAttachment.ContentType := 'application/pdf';

    IdMessageFinal.From.Address := 'xxxxxxxxxxxxxxxxxxxxx';
    IdMessageFinal.From.Name := 'xxxxxxxxxxxxxxxxx';
    idMessageFinal.Subject := 'Testnachricht';
    idMessageFinal.Body.Add('Das ist die Nachricht.......');

    idMessageFinal.Recipients.Add.Address := 'xxxxxxxxxxxxxxxx';

    StatusBar.Panels[0].Text := 'Versenden der eMail, bitte warten...';
    Application.ProcessMessages;

  try
    IdSMTPFinal.Connect;
    IdSMTPFinal.Send(idMessageFinal);
    IdSMTPFinal.Disconnect();
    idAttachment.Free;
    idMessageFinal.Free;
    idSMTPFinal.Free;

  except
    if IdSMTPFinal.Connected then
      IdSMTPFinal.Disconnect();
      idAttachment.Free;
      idMessageFinal.Free;
      idSMTPFinal.Free;
  end;

  [...]
DANKE!!!!!!!!!!!!!!

Michael
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Dateianhang mit Indys

  Alt 25. Okt 2011, 19:18
Es ist wie verhext! Ich denke, ich habe jetzt meine "alte" Einstellungen, nachdem ich alle Einstellungen bezüglich Encoding etc. entfernt habe und plötzlich funktioniert es auch so, die Anhänge werden in Webmailer etc. korrekt angezeigt... Einstellungen im OI fallen weg, da die Instanzen dynamisch erzeugt werden.

Wie dem auch sei. Wollte ich - wie versprochen - nur noch kurz mitteilen...

Grüsse,
Michael
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#3

AW: Dateianhang mit Indys

  Alt 25. Okt 2011, 21:32
Statt dem ContentType einen statischen Wert zuzuweisen, gibt es intern eine schöne Funktion GetMIMETypeFromFile(const AFile: TIdFileName): string; , welche einem anhand der Datei (dessen Dateiendung) den zugehörigen passenden ContentType ermittelt:
Delphi-Quellcode:
uses
  IdGlobalProtocols;

    // ...

    idAttachment := TIdAttachmentFile.Create(idMessageFinal.MessageParts, 'd:\test.pdf');
    idAttachment.ContentType := GetMIMETypeFromFile('d:\test.pdf');
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.029 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Dateianhang mit Indys

  Alt 25. Okt 2011, 22:40
Super! Danke für die Zusatzinfo.
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: Dateianhang mit Indys

  Alt 25. Okt 2011, 23:11
Statt dem ContentType einen statischen Wert zuzuweisen, gibt es intern eine schöne Funktion GetMIMETypeFromFile(const AFile: TIdFileName): string; , welche einem anhand der Datei (dessen Dateiendung) den zugehörigen passenden ContentType ermittelt:
Delphi-Quellcode:
uses
  IdGlobalProtocols;

    // ...

    idAttachment := TIdAttachmentFile.Create(idMessageFinal.MessageParts, 'd:\test.pdf');
    idAttachment.ContentType := GetMIMETypeFromFile('d:\test.pdf');
Die Frage ist jetzt, was passiert, wenn man unterschiedliche Dateitypen anhängt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Dateianhang mit Indys

  Alt 26. Okt 2011, 00:09
Jedes Attachment bekommt sein eigenen ContentType. Intern wird dies in die MessageParts Attachment-Sammlung aufgenommen. Der "overall"-ContentType wurde so gesetzt: idMessageFinal.ContentType := 'multipart/mixed'; Oder was meinst du ist schon spät
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Dateianhang mit Indys

  Alt 26. Okt 2011, 00:15
Ah. OK. Das wollte ich wissen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 23:53 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