HTML code verwijderen uit mail database

Pagina: 1
Acties:

Vraag


Acties:
  • +1 Henk 'm!

  • bert pit
  • Registratie: Oktober 2012
  • Laatst online: 13-09 10:44
Ik heb een database (PostgreSQL) met daarin een tabel met mail's. Deze mails bevatten text en zitten in een notitieveld. De meeste van die mails bevatten HTML code, waardoor het onleesbaar wordt en onmogelijk te exporteren. Ik zou deze mails willen converteren naar een leesbaar format, zodat ik deze kan exporteren naar CSV format voor import in Salesforce.

Ik ben geen programmeur en heb wat basis kennis van SQL opgedaan met beginnershandleidingen.

Onze data zit in een PostgreSQL database

Ik heb enkele scripjes geprobeerd te koppelen in PostgreSQL. Daarnaast heb ik op het internet gespeurd naar een oplossing. Beide zonder goed resultaat.

Tijdens het lezen van deze zin, wordt wereldwijd circa 1.000.000 liter olie verstookt. Dus niet 2X lezen hè.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

bert pit schreef op donderdag 26 maart 2020 @ 11:54:
Ik heb een database (PostgreSQL) met daarin een tabel met mail's. Deze mails bevatten text en zitten in een notitieveld. De meeste van die mails bevatten HTML code, waardoor het onleesbaar wordt en onmogelijk te exporteren. Ik zou deze mails willen converteren naar een leesbaar format, zodat ik deze kan exporteren naar CSV format voor import in Salesforce.

Ik ben geen programmeur en heb wat basis kennis van SQL opgedaan met beginnershandleidingen.

Onze data zit in een PostgreSQL database

Ik heb enkele scripjes geprobeerd te koppelen in PostgreSQL. Daarnaast heb ik op het internet gespeurd naar een oplossing. Beide zonder goed resultaat.
Je zou het met Regular Expressions kunnen doen. Dus je parsed de data door een regex om de content eruit te trekken en deze in een nieuwe kolom te plaatsen.

Een ander idee, wat ik persoonlijk zou doen als het een HTML form achtige structuur is, zou ik het uit de DB halen, door een HTML parser halen en via een HTML tool op een XML achtige wijze het uit de form trekken.

Er zijn redelijk wat HTML parsers die je de mogelijkheid geven om via HTML selectors data te selecteren.

Less alienation, more cooperation.


Acties:
  • +1 Henk 'm!

  • q-enf0rcer.1
  • Registratie: Maart 2009
  • Laatst online: 11-09 18:49
Wat is je verwachting precies? Een script dat de HTML tags verwijderd uit de tekst? Dat klinkt misschien als een goed idee maar bedenk je wel dat die tags in veel gevallen ook verantwoordelijk zijn voor cruciale zaken zoals het invoegen van witruimte en enters. Dat zou dus kunnen resulteren in een tekst die volledig aan elkaar staat geplakt (wat je vaak niet wilt). Het is denk ik logischer om de HTML of tekst als HTML te renderen in je UI. Dan ziet het er nog steeds zo uit zoals de verzender van de mail ooit heeft bedoeld.

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Ik neem aan dat je al gezocht hebt naar "html to text", eventueel in combinatie met een voor jou comfortabele scripttaal? Zeker met PHP zou je daar wel uit moeten kunnen komen, maar ook Powershell is een goede kandidaat. Maak wel even een backup/testomgeving. ;)

[ Voor 22% gewijzigd door Room42 op 26-03-2020 12:27 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sandor_Clegane schreef op donderdag 26 maart 2020 @ 11:59:
Je zou het met Regular Expressions kunnen doen. Dus je parsed de data door een regex om de content eruit te trekken en deze in een nieuwe kolom te plaatsen.
Dat is zélden een goed idee. Tenzij de HTML echt über-ÜBER-simpel is, is een regex geen goed idee.

Ik sluit me aan bij @q-enf0rcer.1 en @Room42

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 12-09 18:49
Is het niet mogelijk de mailbox op dit moment te benaderen via imap of dit te regelen? En kan salesforce ook imap? Gebruik dan imapsync om alle mail 1 op 1 naar de imap van salesforce te kopiëren, zodat je de mail opmaak verder niet hoeft aan te passen.

Acties:
  • 0 Henk 'm!

Verwijderd

Data naar Excel via een ODBC koppeling. Data copy & paste met 'value only' en exporteren naar iets anders.

Acties:
  • +2 Henk 'm!

  • Christoxz
  • Registratie: Maart 2014
  • Laatst online: 13-09 23:12
Verwijderd schreef op donderdag 26 maart 2020 @ 13:18:
Data naar Excel via een ODBC koppeling. Data copy & paste met 'value only' en exporteren naar iets anders.
Volgens mij zijn HTML Tags voor excel gewoon 'values'

T.Net Creality 3D Printer Discord


Acties:
  • 0 Henk 'm!

  • Sandor_Clegane
  • Registratie: Januari 2012
  • Niet online

Sandor_Clegane

Fancy plans and pants to match

RobIII schreef op donderdag 26 maart 2020 @ 13:08:
[...]

Dat is zélden een goed idee. Tenzij de HTML echt über-ÜBER-simpel is, is een regex geen goed idee.

Ik sluit me aan bij @q-enf0rcer.1 en @Room42
Vandaar dat ik ook de tweede optie heb beschreven.

Less alienation, more cooperation.


Acties:
  • 0 Henk 'm!

Verwijderd

chriistiix schreef op donderdag 26 maart 2020 @ 13:21:
[...]


Volgens mij zijn HTML Tags voor excel gewoon 'values'
Oops. Vergat te melden dat die met een VBA scriptje naar een gerenderd format gezet moet worden. Even googlen op 'excel format html in cell'

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Sandor_Clegane schreef op donderdag 26 maart 2020 @ 13:30:
[...]


Vandaar dat ik ook de tweede optie heb beschreven.
Ik zei het dan ook niet zo zeer voor jou maar meer om TS, die dat mogelijk niet besefte, te behoeden voor een ontzettend diep konijnenhol ;) Als je dat soort ideeën oppert is het wel handig er bij te zeggen wat de mogelijke (of waarschijnlijke) problemen zijn ermee. En dus deed ik dat :)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 12-09 18:49
Je hebt 2 mailboxen toch de oude en en de nieuwe, de Postgres mails zullen ook in een mailbox uitgelezen worden nu. Dan ga je toch helemaal niet lopen scripten maar direct syncen, zoals ik zei met imapsync. Als voordeel hou je daarbij alle informatie in de mails zoals die nu is.

Acties:
  • 0 Henk 'm!

  • bert pit
  • Registratie: Oktober 2012
  • Laatst online: 13-09 10:44
Verwijderd schreef op donderdag 26 maart 2020 @ 13:18:
Data naar Excel via een ODBC koppeling. Data copy & paste met 'value only' en exporteren naar iets anders.
Deze heb ik geprobeerd echter de database was te groot voor Excel. Ook Access pakte de koppeling van die specifieke tabel niet. Andere tabellen met minder records gingen prima naar Excel en Access. Toch breng je me op een idee.

[ Voor 3% gewijzigd door bert pit op 26-03-2020 17:44 ]

Tijdens het lezen van deze zin, wordt wereldwijd circa 1.000.000 liter olie verstookt. Dus niet 2X lezen hè.


Acties:
  • 0 Henk 'm!

  • Snippo
  • Registratie: Juni 2006
  • Laatst online: 13-09 15:26
HTML als in opmaak en kop- en voettekst?
Als deze overal hetzelfde is zou je de database naar een tekst bestand kunnen exporteren en met find/replace alle HTML weghalen. Als de HTML in iedere email anders is zal je handmatig alles na moeten lopen (als je zeker niet wil dat er stukken opmaak overblijven).

Acties:
  • 0 Henk 'm!

Verwijderd

Om hoeveel records gaat het? Gok dat Excel nog op max 65.000 rijen zit. Als het doenbaar is om te spitsen maak je in postgress een view met records 0 - 65.000, 65.001 - etc Daar ODBC overheen.

Alternatief is toch scripten. HTML mails zijn vaak niet de netste dus wellicht dat dat überhaupt een beter resultaat.


Als je voldoende thuis bent in Postgresql kun je nog even hier kijken: https://stackoverflow.com...g-html-tags-in-postgresql

Bij de Perl optie (iets naar beneden, 3e / 4e antwoord)

Kant en klaar stukje script dat een postgress functie toevoegt voor HTML naar text. Heb die Perl module in het verleden gebruikt en die geeft goede resultaten.

[ Voor 37% gewijzigd door Creepy op 26-03-2020 18:20 ]


Acties:
  • +1 Henk 'm!

  • Spinal
  • Registratie: Februari 2001
  • Laatst online: 08-09 14:12
Verwijderd schreef op donderdag 26 maart 2020 @ 17:54:
Om hoeveel records gaat het? Gok dat Excel nog op max 65.000 rijen zit.
Beetje offtopic, maar sinds 2016 heeft Excel heeft een limiet van 1.048.576 rijen en 16384 kolommen.

Full-stack webdeveloper in Groningen


Acties:
  • 0 Henk 'm!

  • bert pit
  • Registratie: Oktober 2012
  • Laatst online: 13-09 10:44
pennywiser schreef op donderdag 26 maart 2020 @ 13:13:
Is het niet mogelijk de mailbox op dit moment te benaderen via imap of dit te regelen? En kan salesforce ook imap? Gebruik dan imapsync om alle mail 1 op 1 naar de imap van salesforce te kopiëren, zodat je de mail opmaak verder niet hoeft aan te passen.
Had ik naar gekeken en Salesforce werkt helaas niet met imap.

Tijdens het lezen van deze zin, wordt wereldwijd circa 1.000.000 liter olie verstookt. Dus niet 2X lezen hè.


Acties:
  • 0 Henk 'm!

  • bert pit
  • Registratie: Oktober 2012
  • Laatst online: 13-09 10:44
Verwijderd schreef op donderdag 26 maart 2020 @ 17:54:
Om hoeveel records gaat het? Gok dat Excel nog op max 65.000 rijen zit. Als het doenbaar is om te spitsen maak je in postgress een view met records 0 - 65.000, 65.001 - etc Daar ODBC overheen.

Alternatief is toch scripten. HTML mails zijn vaak niet de netste dus wellicht dat dat überhaupt een beter resultaat.


Als je voldoende thuis bent in Postgresql kun je nog even hier kijken: https://stackoverflow.com...g-html-tags-in-postgresql

Bij de Perl optie (iets naar beneden, 3e / 4e antwoord)

Kant en klaar stukje script dat een postgress functie toevoegt voor HTML naar text. Heb die Perl module in het verleden gebruikt en die geeft goede resultaten.
Dit stukje had ik inderdaad gelezen maar was gezien te ingewikkeld om mij in te verdiepen. Gezien de tijdsdruk.

Het betreft 1.5 miljoen records die ik kan terugbrengen naar naar een kleiner aantal.

Tijdens het lezen van deze zin, wordt wereldwijd circa 1.000.000 liter olie verstookt. Dus niet 2X lezen hè.


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 12-09 18:49
bert pit schreef op vrijdag 27 maart 2020 @ 10:51:
[...]


Had ik naar gekeken en Salesforce werkt helaas niet met imap.
Ik zou om te beginnen alle mail nu wel uit de PG database trekken en naar naar een conventioneel mailbox formaat syncen welke wel imap kan (dus met imapsync), dan heb je dat in elk geval. Gebruik bv. een Gmail, Office 365 of Outlook.com mailbox vanwege toekomstige doorzoekbaarheid.

Daarna kan je scripten en omzetten naar Salesforce op welke manier je wilt
Pagina: 1