SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Sharepoint ändert HTML-Quelle

Geprüfte Antwort Dieser Beitrag hat 16 Antworten

Ohne Rang
49 Beiträge
HeenzKetchup erstellt 4 Sept. 2014 13:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

ich habe eine Liste, die unter anderem eine Spalte vom Typ "Mehrere Textzeilen" inklusive vollständigem Rich Text beinhaltet.

In dieses Feld kann man ja auch Html-Code einfügen. Das Problem ist, dass Sharepoint eigenständig meinen Html-Code anpasst. Wenns gut läuft, dann ist das auch ok so. Allerdings soll der Inhalt der Spalte als Html-Email versendet werden. Und genau dann passt es manchmal nicht mehr. 

Also auf der Sharepointseite sieht alles so aus, wie ich das haben will, aber später im Mailclient dann nicht mehr. Kommt auch drauf an, welchen Client ich gerade nutze...

Ich habe es auch schon mit dem "Einbetten"-Befehl versucht, aber da wird auch was geändert...

Rausgefunden habe ich zumindest schonmal, dass Sharepoint nicht immer was mit Styles anfangen kann. Wenn ich das zum Beispiel am Anfang definiere und dann im eigentlichen Body darauf verweise, dann wird das zum Teil nicht übernommen. Wenn ich das dann aber direkt in das gewünschte Element reinschreibe, dann geht es. Aber ich will ja nicht zum Beispiel für jeden Absatz Schriftfarbe und Größe und was weiß ich alles reinschreiben. Deswegen will ich das ja nur einmal definieren und dann darauf verweisen. Nur Sharepoint will das scheinbar nicht...

Meine Frage: Wie schaffe ich es also, dass ich eine Mail verschicken kann, deren Inhalt genauso ankommt wie er in Sharepoint angezeigt wird?

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Sept. 2014 14:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist eine praktisch unlösbare Aufgabe (außer durch eigenen Code). Man kann SharePoint nicht davon abhalten, eingegebenes HTML zu "verbessern" - Microsoft weiß einfach besser, was Du eigentlich wolltest :-(

Und fast noch schlimmer ist es, wenn man versucht HTML-Mails an Outlook zu senden. Das Teil hat leider sein ganz eigene Interpretation von HTML (sie basiert auf Word)...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 14:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Na super... Sowas in der Art habe ich mir schon gedacht. Das finde ich sehr sch....ön.

Code schreiben wäre nicht das Problem, ich hab nur keine Idee, wo ich da ansetzen sollte... Wenn der Benutzer einmal was in das Feld eingetragen hat und speichert, ist es ja schon nicht mehr das gleiche. Woher soll ich dann wissen, was der Benutzer eigentlich wollte? 

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 4 Sept. 2014 14:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Eventuell mit einem EventReceiver "OnItemUpdating" oder "OnItemAdding", da solltest Du ggfs. die Möglichkeit haben "vor" SharePoint an die Eingaben zu kommen.

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 14:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hmm, das kommt aber erst beim Speichern, oder? 

Meiner Erfahrung nach wird das Feld aber direkt geändert, wenn ich den Code-Modus verlasse, also noch vorm Speichern.  Dann passt das ja nicht, oder?

Angenommen, ich würde an den Quelltext rankommen. Soll ich den dann in ein extra Feldschreiben als Nur-Text und das dann versenden?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Sept. 2014 14:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der eingegebene Text wird tatsächlich schon clientseitig per JavaScript verschönert. Mit serverseitigem Code kommt man da nicht weiter. Und sich an das JavaScript zu hängen, damit man dort eingreifen kann, ist extrem schierig...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 14:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es würde mir ja schon weiterhelfen, wenn ich wüsste, was genau Sharepoint da ändert bzw. welche Tags und Stylevorgaben erlaubt sind. Gibt es da irgendwelche Richtlinien? Ich hab bis jetzt leider noch nichts gefunden...

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 4 Sept. 2014 14:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich kann dir jetzt nicht sagen in welcher genauen Reihenfolge SharePoint die HTML-Daten ändert.

Der Adding / Updating Event Receiver wird dann getriggert, wenn der Benutzer auf "Speichern" (des Elements) klickt und bevor die Daten in der Datenbank persistiert werden.

Ob die HTML-Quelle schon beim editieren oder erst beim persistieren geändert wird, kann ich nicht sagen. Wenn beim Editieren bereits Änderungen durch sharePoint vorgenommen werden, dann würde eventuell noch JavaScript helfen, aber da habe ich mal gar keine Aktien drin und kann auch nicht abschätzen ob das weiterhilft und wieviel Aufwand dahinter steckt.

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
1714 Beiträge
C.Kaiser Als Antwort am 4 Sept. 2014 14:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok Andi war schneller - kann denn ein eigener Custom Field Type hier helfen? Ich habe noch dunkel in Erinnerung das die Dinger von Aspose (oder wars Bamboo? - keine Ahnung ein Dritt-Anbieter-Tool auf jeden Fall) sich anders verhalten haben als die Standard Controls von SharePoint (bzgl. div-Tags usw. usf.).

Noch eine Möglichkeit: Komplett eigene Eingabeformulare (ASP.NET) oder ein Drittanbieter? Kommt drauf an wieviel Entwicklung Ihr da drin haben wollt?

Beste Grüße,
Christian

http://www.sharepoint-rhein-ruhr.de

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 14:54
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also ich habe große Teile des Mailversandsystems schon selber programmiert. Da noch irgendwas hinzuzufügen sollte nicht das Problem sein. Bleibt halt die Frage, wo genau man da am besten ansetzen sollte. Auf jeden Fall wäre es besser, wenn ich da selber was programmieren könnte anstatt ein externes Tool zu verwenden, da das dann wieder erst mit meinem Kunden abgesprochen und freigegeben werden müsste und so...

Komischerweise hatte ich in der 2010er Version keine Probleme damit. Klar, da wurde auch mal was geändert an dem Html-Code, aber trotzdem ist es größtenteils so angekommen, wie es in Sharepoint angezeigt wurde.

 

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 4 Sept. 2014 15:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Frage an sich ist eigentlich wie bzw. mit was verschickst du die E-Mail. Wenn du die E-Mail selber verschickst kannst du im HTML der E-Mail alles einfügen was du an CSS Definitionen benötigst. Wie es dann z.B. Outlook und Co anzeigen ist wieder etwas anderes da auch dort nicht alles unterstützt wird.

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 15:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe eine Liste "Mailings". Da werden so Sachen wie Absender-Adresse, AntwortAn-Adresse und halt auch der Inhalt der Mail eingetragen.

Über einen eigenen Ribbonbutton kann ich dann das Mailing versenden. Dazu nutze ich serverseitigen Code, die Mail ist vom Typ System.Net.Mail.Mailmessage. Der Inhalt wird dabei als "AlternateView" hinzugefügt.

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 4 Sept. 2014 16:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann kannst du dein CSS so im HTML bereitstellen das der Inhalt im E-Mailclient so angezeigt wird wie im SharePoint oder wie du es auch möchtest. SharePoint passt dein HTML nur an wenn das Element gespeichert wird. Wenn du eigenen CSS Styles in dem RichText-Field hinzufügst kann es halt passieren das SharePoint diese entfernt, dann musst du deine Styles für SharePoint als Formatvorlagen definieren und diese ebenfalls im HTML zu deiner E-Mail.

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 16:26
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Thomas Östreich"]SharePoint passt dein HTML nur an wenn das Element gespeichert wird.[/quote]

Das stimmt so nicht. Das wird direkt verändert, wenn ich den Dialog zum Quellcode-Ändern verlasse...

Hmm, da muss ich wohl nochmal mehr überlegen wie ich das geregelt kriege... 

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 4 Sept. 2014 16:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="HeenzKetchup"]

[quote user="Thomas Östreich"]SharePoint passt dein HTML nur an wenn das Element gespeichert wird.[/quote]

Das stimmt so nicht. Das wird direkt verändert, wenn ich den Dialog zum Quellcode-Ändern verlasse...

[/quote]

Ja, da hast du recht. Wollte nur darauf hinaus das was du dann in der Oberfläche siehst auch das ist was im Element steht und du für die CSS Styles in deiner E-Mail verantwortlich bist das diese zur Verfügung stehen.

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 4 Sept. 2014 16:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe aber auch schon festgestellt, dass ich Styles festlegen kann in <Style>-Tags, diese manchmal berücksichtigt werden, manchmal nicht. Manchmal werden sie gelöscht, manchmal nicht. Manchmal ändert Sharepoint die Attribute der einzelnen Abschnitte mit den Werten, die ich bei den Styles angegeben habe. 

Ich kann da nicht wirklich feste Regeln erkennen. Es ist jedes Mal ein Glücksspiel, was da am Ende rauskommt...

Ohne Rang
49 Beiträge
HeenzKetchup Als Antwort am 30 Sept. 2014 13:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also, meine Lösung ist jetzt, dass ich ein Textfeld erstellt habe, darin kann ich den HTML-Code schreiben ohne dass er verändert wird. Musste dann noch eine Vorschauseite anzeigen, damit man auch in etwa sehen kann, was dann verschickt wird. Bisher funktioniert das so. Nur wenn man Änderungen machen muss, ist das ein bisschen blöd... Aber naja, besser als nichts.