Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   SMTP MailMessage mit Indy (https://www.delphipraxis.net/177191-smtp-mailmessage-mit-indy.html)

hesch21 23. Okt 2013 12:25

SMTP MailMessage mit Indy
 
Hallo allerseits

ich suche nun seit Stunden wo man im MailMessage von Indy-10 einstellen kann, dass eine Mail im Nur-Text-Format raus geht. Vermutlich 8-)8-)8-) mit Blindenstock
Weiss das gerade jemand?

Nachtrag:
mit text/text bei ContentType statt text/plain würde es an sich gehen, nur wird mir dann die ganze Mail-Message als Anhang in eine TXT-Datei gestellt.

FrankJ28 24. Okt 2013 09:23

AW: SMTP MailMessage mit Indy
 
Hallo,
Du meinst die Komponente TIdMessage?
Code:
TIdMessage.ContentType:='text/plain';
TIdMessage.Body.Text:='Ich bin die Mail';
Ciao
Frank

hesch21 24. Okt 2013 11:36

AW: SMTP MailMessage mit Indy
 
Hallo FrankJ28

ich hab ja in meinem Nachtrag erwähnt, dass ich ContentType := 'text/plain' standardmässig verwende. Aber vermutlich liegt das Problem gar nicht beim Senden sondern beim Empfangen. Und jetzt muss ich doch noch ausholen, um was es geht. Ich möchte auf möglichst einfache Weise so etwas wie eine Art 'tabulierte' Darstellung ausgeben und habe das wie folgt versucht:
Delphi-Quellcode:
     StringListe.Add('Produkt :                ' + PageControl1.ActivePage.Caption);
     StringListe.Add('Lizenz:                  ' + LizLIZENZ.AsString);
     StringListe.Add('Version:                 ' + IntToStr(LizPVersion.Value));
     StringListe.Add('Anzahl Lizenzen:         ' + IntToStr(LizAnzLiz1.Value));
     StringListe.Add('Ihr Schluessel:          ' + IntToStr(LizPruef.Value));
     StringListe.Add(' ');
     StringListe.Add('Lizenzierungsschluessel : ' +  LizLizKey.AsString);
..
     MailMessage.Body := Stringliste;
     MailMessage.Recipients.EMailAddresses := LizMail.AsString;
     MailMessage.From.Address := AdrMail;
     MailMessage.Subject := 'Ihre Lizenzdaten';
     try
         try
            SMTP.Connect;
            SMTP.Send(MailMessage);
            ShowMessage('Mail wurde versandt');
         except on E:Exception do
            ShowMessage('Mail kann nicht versandt werden');
         end;
     finally
        if SMTP.Connected then SMTP.Disconnect;
     end;
     Stringliste.Free;
Wenn man das im Editiermodus oder im Delphi-Quelltext sieht, sind alle ' + schön untereinander, also 'tabuliert'.

Das funktioniert aber nur, wenn für die Anzeige kein TrueType-Font verwendet wird. Und Tabulatoren setzen geht ja auch nicht. Also muss ich wohl meine Frage etwas umformulieren: Wie kann auf einfache Weise in einer Mail Textspalten erzeugen?

x000x 24. Okt 2013 12:19

AW: SMTP MailMessage mit Indy
 
Moin moin,

dein Problem wird mit dem versenden als "Textmail" nicht unbedingt damit gelöst, dass du die Mail als Plaintext verschickst. Es kommt ja darauf an, was für eine Schriftart im Mailprogramm des Empfängers eingestellt ist. Wenn dort zum darstellen von Textmails eine Schriftart mit unterschiedlich breiten Zeichen eingestellt ist, dann wird sie dort ja auch falsch dargestellt.

Ich würde eine Mail mit Plaintext und HTML-Part verschicken und deinen Text im HTML Teil in eine "unsichtbare" Tabelle packen. Im Plaintextteil der Mail würde ich halt so formatieren wie du es ursprünglich vor hattest.

Wenn jetzt ein Empfänger keine HTML-Anzeige bei Mails zulässt und eine "andere" Schriftart als default eingestellt hat, dann hat er eben Pech gehabt.

Beispiele für die korrekten Einstellungen findest du z.B. hier: http://www.indyproject.org/sockets/B...8_17_A.EN.aspx

mquadrat 24. Okt 2013 12:59

AW: SMTP MailMessage mit Indy
 
In der Plain-Text Variante die Abstände nicht mit Leerzeichen, sondern mit Tabulator-Zeichen (#9, wenn ich nicht irre). Dann sollte das auch mit anderen Schriftarten funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:38 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