![]() |
Indy MTP multipart/mixed mit nur einem Teil
Hallo,
klingt etwas komisch, kommt aber nicht von mir. Ich soll eine Multipart-Message erzeugen, obwohl die E-Mail keinen Body und nur einen Anhang hat, also nur einen "Part" hat. Weiss jemand, wie das mit Indy geht, ohne das ich tief in den Quellen rumfummeln muss. Ist das überhaupt erlaubt? |
AW: Indy MTP multipart/mixed mit nur einem Teil
Die Anforderung ist ok.
'nen Body muss man nicht haben, bzw. bei Multipart hat man dann (vermutlich) mehrere leere Bodys. Einmal nix als Text-Body und einmal nix als HTML-Body. Anhänge können 0 bis n sein. Nur mal so hingesponnen:
Delphi-Quellcode:
IdMessage.Clear;
IdMessage.ClearBody; IdMessage.ClearHeader; IdMessage.MessageParts.Clear; IdMessage.Date := Now; IdMessage.From.Address := 'hoika@irgendwas.de'; IdMessage.Recipients.EMailAddresses := 'Delphi.Narium@woanders.de'; IdMessage.ReplyTo.EMailAddresses := 'eventuell@irgendwas.anderes'; IdMessage.Subject := 'Das soll jetzt echt ''ne Mail werden?'; IdMessage.Sender.Address := 'hoika@irgendwas.de'; IdMessage.UseNowForDate := True; IdMessage.ContentType := 'multipart/mixed'; IdMessage.Body.Text := ''; TIDAttachment.Create(IdMessage.MessageParts,'C:\Temp\IrgendeineDatei.IrgendeineEndung'); |
AW: Indy MTP multipart/mixed mit nur einem Teil
Hallo,
danke schön. :) Probiere ich nachher gleich mal aus. |
AW: Indy MTP multipart/mixed mit nur einem Teil
Hallo,
das habe ich mir genau so gedacht. Klappt natürlich nicht ;( Indy erzeugt eine multipart-Message nur, wenn mindestens 2 Anhänge da sind. Bei genau einem Anhang wird der Teil des Bodys. Das ist auch normaler RFC-Standard. Nur mein Ziel-Mail-Server will das nicht so haben. Also doch wieder rein in die Quellen wie beim letzten "Fehler". |
AW: Indy MTP multipart/mixed mit nur einem Teil
Ja solche Non-Standard-Dienste kosten mir auch öfters mal viel Zeit. Wobei mich schon wundert dass Indy sich da so zickig hat. Versuch doch mal, den Anhang zuerst zu erzeugen und dann erst den Mime-Typ zuzuweisen.
|
AW: Indy MTP multipart/mixed mit nur einem Teil
Hallo,
die folgende Zeile aus IdMessage.pas verursacht das Problem FIsMsgSinglePartMime := (Encoding = meMIME) and (MessageParts.Count = 1) and IsBodyEmpty; Hier wird in meinem FIsMsgSinglePartMime=True und damit wird der Anhang in den Body geschrieben. Quellcode sei dank habe ich das jetzt umschifft mit einer zusätzlichen Variable in TIdMessage (bSinglePartMime: Boolean)
Delphi-Quellcode:
if not bSinglePartMime then
begin FIsMsgSinglePartMime := (Encoding = meMIME) and (MessageParts.Count = 1) and IsBodyEmpty; FIsMsgSinglePartMime:= False; end; Zumindestens das Problem ist erledigt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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