![]() |
Outllook 365 MAPI HTML
Hallöle...8-)
Nach der Umstellung auf Outlook werden meine Mails über MAPI aus dem Programm heraus im Outlook als Text interpretiert! :evil: ..selbst David konnte das! Im Client ist HTML als Standard definiert. Alle direkten Mails werden korrekt dargestellt... Welche einfachen Möglichkeiten habe ich? Geht das mit CleverComponents an den Standard Client? :gruebel: Ich habe noch nichts gefunden.:? Content:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"> </HEAD> <BODY LANG="de-DE" TEXT="#000000" DIR="LTR"> <TABLE COLS=2 WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always"> <COL WIDTH=450> <COL WIDTH=450> <TR> <TD HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Blubb</FONT></P> </TD> <TD BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Serviceauftrag Nr.: #SNR</FONT></P> </TD> </TR> <TR> <TD HEIGHT=25 BGCOLOR="#1618A1"> <TABLE COLS=1 WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always"> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Bla Str. 4</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>08150 JwD</FONT></P> </TD> </TR> </TABLE> </TD> <TD BGCOLOR="#1618A1"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>Sehr geehrte Damen und Herren,</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>die Störung mit der Nummer: #SNR wurde abgeschlossen.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <TABLE COLS=1 WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always"> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STNAME / Filiale: #STFILIALE</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STSTRASSE</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STPLZ #STORT</FONT></P> </TD> </TR> </TABLE> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>Wir danken für Ihren Auftrag.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Das ist eine automatisch generierte Mail. Bitte antworten sie nicht darauf.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Für Fragen, Rückmeldungen oder Informationen benutzen sie bitte die Mailadresse: <A HREF="mailto:bla@Blubb.de" style="color:#A9A9A9">Bla@Blubb.de</A></FONT></P> </TD> </TR> </TABLE> </BODY> </HTML>
Delphi-Quellcode:
FMailStandardClient: TSendMail;
... function TToolsMail.SendMailClient: Boolean; procedure FillMailRecipents; var I: Integer; RecipientItem: TCollectionItem; begin {$REGION 'Code'} FMailStandardClient.Recipients.Clear; for I := 0 to FMailMessage.ToList.Count - 1 do begin RecipientItem := FMailStandardClient.Recipients.Add; TRecipientItem(RecipientItem).Address := FMailMessage.ToList.Items[I].Email; TRecipientItem(RecipientItem).DisplayName := TTools.GetDocumentPathWithoutPath(TRecipientItem(RecipientItem).Address, conSEAMMailNameWithout); TRecipientItem(RecipientItem).RecipientType := rtPrimary; end; {$ENDREGION} end; procedure FillMailAttachments; var I: Integer; begin {$REGION 'Code'} FMailStandardClient.Attachments.Clear; for I := 0 to FAttachments.Count - 1 do begin FMailStandardClient.Attachments.Add(FAttachments[I]); end; {$ENDREGION} end; procedure FillMailBody; begin {$REGION 'Code'} FMailStandardClient.Subject := FMailMessage.Subject; FMailStandardClient.Text := FMailMessage.Html.Strings; {$ENDREGION} end; begin Result := True; try FMail.Open; //CleverComponents try CreateMailMessage; //CleverComponents // Übertrag in TSendMail FillMailBody; FillMailRecipents; FillMailAttachments; if FMailStandardClient.Execute then begin WriteMailDB; if Assigned(FOnMailSend) then begin FOnMailSend(Self, FMailMessage.ToList.EmailAddresses, FMailMessage.Subject); end; end; finally FMail.Close; end; except on E: Exception do begin if Assigned(FOnMailError) then begin FOnMailError(Self, FReceipients, FMailMessage.Subject, E.Message); end; Result := False; end; end; end; |
AW: Outllook 365 MAPI HTML
Check mal deinen html-Code
![]() Bekomme 5 Fehler und 1 Warnung. U.u. sagt sich outlook: html-Fehlerhaft. Dann lieber nur Text anzeigen. |
AW: Outllook 365 MAPI HTML
Moin...8-)
Die Idee ist schon mal gut...aber: 4 "Checker" kommen bei der gleichen Datei zu unterschiedlichen Ergebnissen. (bis zu 15 Fehlern :shock:)...so viele Zeilen hat das HTML nicht mal. :zwinker: Auf was soll man sich verlassen? :roll: Jeder Browser und jeder Mail Client, außer Outlook beim "Erstellen" der Mail über MAPI, zeigen das HTML an. |
AW: Outllook 365 MAPI HTML
Zitat:
![]() Ein kurzer Check mit der Korrektur der angemeckerten Elemente (mir gefällt zwar mehr als das angemeckerte nicht, _ich_ würde mehr abändern) ergibt folgenden validen HTML Code:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"> <TITLE></TITLE> </HEAD> <BODY LANG="de-DE" TEXT="#000000" DIR="LTR"> <TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always, WIDTH:100%"> <COL WIDTH=450> <COL WIDTH=450> <TR> <TD HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Blubb</FONT></P> </TD> <TD BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Serviceauftrag Nr.: #SNR</FONT></P> </TD> </TR> <TR> <TD HEIGHT=25 BGCOLOR="#1618A1"> <TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always, width:100%"> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Bla Str. 4</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>08150 JwD</FONT></P> </TD> </TR> </TABLE> </TD> <TD BGCOLOR="#1618A1"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>Sehr geehrte Damen und Herren,</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>die Störung mit der Nummer: #SNR wurde abgeschlossen.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <TABLE BORDER=0 CELLPADDING=2 CELLSPACING=0 STYLE="page-break-before: always, width:100%"> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STNAME / Filiale: #STFILIALE</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STSTRASSE</FONT></P> </TD> </TR> <TR> <TD> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>#STPLZ #STORT</FONT></P> </TD> </TR> </TABLE> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <P ALIGN=LEFT><FONT FACE="Arial" SIZE=3>Wir danken für Ihren Auftrag.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#ffffff"> <BR> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Das ist eine automatisch generierte Mail. Bitte antworten sie nicht darauf.</FONT></P> </TD> </TR> <TR> <TD COLSPAN=2 HEIGHT=20 BGCOLOR="#1618A1"> <P ALIGN=LEFT><FONT FACE="Arial" COLOR="#ffffff" SIZE=3>Für Fragen, Rückmeldungen oder Informationen benutzen sie bitte die Mailadresse: <A HREF="mailto:bla@Blubb.de" style="color:#A9A9A9">Bla@Blubb.de</A></FONT></P> </TD> </TR> </TABLE> </BODY> </HTML> |
AW: Outllook 365 MAPI HTML
Liste der Anhänge anzeigen (Anzahl: 2)
Danke für deine Hilfe...8-)
Ich habe die Datei geändert und nun ein valides HTML. (Bild1) Ergebnis: :evil: (Bild2) |
AW: Outllook 365 MAPI HTML
...schieb. :wink:
Bevor ich das TOutlook ausprobiere...geht das nur direkt oder über den Client? :gruebel: |
AW: Outllook 365 MAPI HTML
Moin...:P
Meine Lösung heißt: TOutlookApplication In der Konfiguration kann man nun wählen welcher Client am Start ist. :thumb: Auszüge:
Delphi-Quellcode:
function TToolsMail.SendMailClient: Boolean;
var FunctionResult: Boolean; function SendMAPI: Boolean; {$REGION 'Inline'} procedure FillMailRecipents; var I: Integer; RecipientItem: TCollectionItem; begin {$REGION 'Code'} FMailStandardClient.Recipients.Clear; for I := 0 to FMailMessage.ToList.Count - 1 do begin RecipientItem := FMailStandardClient.Recipients.Add; TRecipientItem(RecipientItem).Address := FMailMessage.ToList.Items[I].Email; end; {$ENDREGION} end; procedure FillMailAttachments; var I: Integer; begin {$REGION 'Code'} FMailStandardClient.Attachments.Clear; for I := 0 to FAttachments.Count - 1 do begin FMailStandardClient.Attachments.Add(FAttachments[I]); end; {$ENDREGION} end; procedure FillMailBody; begin {$REGION 'Code'} FMailStandardClient.Subject := FMailMessage.Subject; FMailStandardClient.Text := FMailMessage.Html.Strings; {$ENDREGION} end; {$ENDREGION} begin FillMailBody; FillMailRecipents; FillMailAttachments; Result := FMailStandardClient.Execute; end; function SendOutlook: Boolean; var Outlook: TOutlookApplication; Mail: OleVariant; {$REGION 'Inline'} procedure FillMailRecipents; var List: TStringList; begin {$REGION 'Code'} List := TStringList.Create; try List.Delimiter := ';'; FMailMessage.ToList.GetEmailList(List); Mail.To := List.DelimitedText; finally List.Free; end; {$ENDREGION} end; procedure FillMailAttachments; var I: Integer; begin {$REGION 'Code'} for I := 0 to FAttachments.Count - 1 do begin Mail.Attachments.Add(FAttachments[I]); end; {$ENDREGION} end; procedure FillMailBody; begin {$REGION 'Code'} Mail.BodyFormat := olFormatHTML; Mail.Subject := FMailMessage.Subject; Mail.GetInspector; Mail.HTMLBody := OleVariant(FMailMessage.Html.Strings.Text) + Mail.HTMLBody; {$ENDREGION} end; {$ENDREGION} begin Result := True; Outlook:= TOutlookApplication.Create(nil); try Mail := Outlook.CreateItem(olMailItem); FillMailBody; FillMailRecipents; FillMailAttachments; try Mail.Display; except Result := False; end; finally Outlook.Free; end; end; begin Result := True; try FunctionResult := False; FMail.Open; try CreateMailMessage; case FPreferences.PreferencesMail.ClientType of cltMAPI: begin FunctionResult := SendMAPI; end; cltOutlook: begin FunctionResult := SendOutlook; end; end; if FunctionResult then begin WriteMailDB; if Assigned(FOnMailSend) then begin FOnMailSend(Self, FMailMessage.ToList.EmailAddresses, FMailMessage.Subject); end; end; finally FMail.Close; end; except on E: System.SysUtils.Exception do begin if Assigned(FOnMailError) then begin FOnMailError(Self, FReceipients, FMailMessage.Subject, E.Message); end; Result := False; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:42 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