Hast du meinen Code getestet? Wo genau liegt das Problem?
Da ich alle Message-Parts durchgehe und dabei alle Texte "übernehme", sollten zumindest am Ende alle Textteile vorhanden sein.
Eventuell mal zum Testen bei dem
Code:
if NOT isAlternative then
S := S + TIdText(Msg.MessageParts.Items[i]).Body.Text;
die erste Zeile weglassen, dann sind es wirklich alle Texte, auch wenn sie "doppelt" (
html + plain) sind.