Einzelnen Beitrag anzeigen

Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
261 Beiträge
 
Delphi XE5 Professional
 
#1

HTML-Mail erzeugen basierend auf Emsländers Tutorial

  Alt 9. Feb 2006, 18:02
Hi,

ich habe das Beispiel von Emsländer soweit nachgestellt habe aber
das Problem das die Anhänge zwar beim öffnen der Mail vorhanden und
auch richtig dargestellt werden aber in der Übersicht das Zeichen
Anhang (Büroklammer) nicht angezeigt wird.

Delphi-Quellcode:
IdMsgSend.From.Text := Trim(edUserId.Text)+' '+Trim(edFromAdress.Text);
      IdMsgSend.ReplyTo.EMailAddresses := Trim(edFromAdress.Text);
      IdMsgSend.Subject := edSubject.Text;
      IdMsgSend.Recipients.Clear;
      if cbESMTP.Checked then
      begin
         for i := 0 to meToAddress.Lines.Count-1 do
            with IdMsgSend.Recipients.Add do
            begin
               Name := CharRem(#10+#13+';',meToAddress.Lines[i]);
               Address := CharRem(#10+#13+';',meToAddress.Lines[i]);
            end;
      end
      else IdMsgSend.Recipients.EMailAddresses := CharRem(#10+#13,meToAddress.lines.Text);

      IdMsgSend.CCList.Clear;
      if cbESMTP.Checked then
      begin
         for i := 0 to edToCarbonCopy.Lines.Count-1 do
            with IdMsgSend.CCList.Add do
            begin
               Name := '';
               Address := CharRem(';',edToCarbonCopy.Lines[i]);
            end;
      end
      else IdMsgSend.CCList.EMailAddresses := edToCarbonCopy.lines.Text;

      IdMsgSend.BccList.Clear;
      if cbESMTP.Checked then
      begin
         for i := 0 to meToBlindCarbonCopy.Lines.Count-1 do
            with IdMsgSend.BccList.Add do
            begin
               Name := '';
               Address := CharRem(';',meToBlindCarbonCopy.Lines[i]);
            end;
      end
      else IdMsgSend.BccList.EMailAddresses := meToBlindCarbonCopy.lines.Text;

      IdMsgSend.MessageParts.Clear;
      with TIdText.Create(IdMsgSend.MessageParts, nil) do
         ContentType := 'multipart/related';
      with TIdText.Create(IdMsgSend.MessageParts, nil) do
      begin
         ContentType := 'multipart/alternative';
         ParentPart := 0;
      end;
      with TIdText.Create(IdMsgSend.MessageParts, nil) do
      begin
         Body.Text := edText.Text;
         CharSet := 'iso-8859-1';
         ContentTransfer := 'quoted-printable';
         ContentType := 'text/plain';
         ParentPart := 1;
      end;
      with TIdText.Create(IdMsgSend.MessageParts, nil) do
      begin
         x := TStringList.Create;
         JvRichEditToHtml.ConvertToHtmlStrings(edText,x);
         Body.Text := x.Text;
         x.Free;
         CharSet := 'iso-8859-1';
         ContentTransfer := 'quoted-printable';
         ContentType := 'text/html';
         ParentPart := 1;
      end;

      IdMsgSend.ContentType := 'multipart/related; type="text/html"';

      for i := 0 to lbAttachment.Items.Count-1 do
         with TIdAttachmentFile.Create(IdMsgSend.MessageParts, CharRem(#10+#13,lbAttachment.Items[i])) do
         begin
            //ContentType := 'application/ms-excel';
            //ParentPart := 1;
         end;

      try
         SMTP.Send(IdMsgSend);
         IdMsgSendSuccess(Sender);
Ich habe auch schon mit den ParentParts gespielt hatte aber auch keinen Erfolg.
Wenn ich das auskommentierte
Delphi-Quellcode:
with TIdText.Create(IdMsgSend.MessageParts, nil) do
      begin
         ContentType := 'multipart/alternative';
         ParentPart := 0;
      end;
und die anderen ParentParts auf 0 setzte wurde zwar der Anhang richtig angezeigt aber auch
gleichzeitig der HTML-Teil ebenfalls als Anhang beigefügt.
Die HTML-Konvertierung mit JvRichEditToHtml.ConvertToHtmlStrings scheint auch nur halb zu
funktionieren da die Fonts um einigen Zeichen versetzt dargestellt werden.

Als Attachment habe ich die entstandene Mail hinzugefügt.

Grüße

Frank
Angehängte Dateien
Dateityp: txt test_270.txt (21,0 KB, 15x aufgerufen)
Frank
  Mit Zitat antworten Zitat