Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Access Mail per cdo als .htmlbody kommt teilweise bei Empfänger falsch an (HTML quelltexte)

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

20.11.2013, aktualisiert 10:16 Uhr, 2531 Aufrufe, 18 Kommentare, 1 Danke

Hallo,

ich versende aus Access Serienmails über unseren Exchange direkt per CDO ( direkt an den SMTP)
Hierbei lade ich den Richtext in eine Variable,

Sende ich Testmails am mein Postfach so stellt Outlook diese richtig dar.
Werden aber Serienmails versendet, welche ebenfalls per .To versendet werden kommt es vor, das anstatt des Textinhalts nur der HTML Text vorgeblendet wird.

Versendet habe ich sonst mit
01.
    With objMessage
02.
     .Subject = EMailbetreff
03.
     .Sender = Sender   ' Absender
04.
     .From = SenderName ' Absendername
05.
     .To = rs.Fields("E-Mail")
06.
     .HTMLBody = Mailtext
Text aus E-Mail

<div><font face="Arial" size="2" color="black">Sehr geehrte Damen und Herren,</font></div>

<div><font face="Arial" size="2" color="black">&nbsp;</font></div>

<div><font face="Arial" size="2" color="black">bla bla bla </font></div>

<div><font face="Arial" size="3" color="black">&nbsp;</font></div>

<div><font face="Arial" size="2" color="black"><strong>xxxxxxxxx</strong></font></div>

<div><font face="Arial" size="3" color="black">&nbsp;</font></div>


Im CDO habe ich nun einen Header voran gestellt

01.
    With objMessage
02.
     .Subject = EMailbetreff
03.
     .Sender = Sender   ' Absender
04.
     .From = SenderName ' Absendername
05.
     .To = rs.Fields("E-Mail")
06.
     
07.
      strHTML = "<html>"
08.
      strHTML = strHTML & "<head>"
09.
      strHTML = strHTML & "<meta http-equiv=" & """Content-Type""" & " content=" & """text/html; charset=utf-8""" & ">" & "</head>"
10.
      strHTML = strHTML & Mailtext
11.
      
12.
     
13.
      .HTMLBody = strHTML
14.

15.
...

Kann dieses die Ursache gewesen sein, dass einfach nur ein Header gefehlt hat oder kann es sein, dass der SMTP im Hintergrund einfach ins Strauchen kommt? (ggf eine Pause nach x Mails einbinden)
Welche Vorraussetzung muss ich schaffen, dass jedes Email Programm die Email richtig darstellt, reicht hier text/html; charset=utf-8 aus?

Test an externe Emailadressen waren bisher erfolgreich (sei es per Outlook, Handy (Android) oder WebBasierten Anzeigen der Emails.
Vielleicht hat jemand bereits ein ähnliches Problem.
Mitglied: colinardo
20.11.2013, aktualisiert um 10:34 Uhr
Hallo Thomas,
wenn du eine universelle Mail gestalten willst solltest du zusätzlich den normalen "Body" auch mit Text(ohne Formatierung) füllen denn nicht jeder ließt seine Mails in HTML sondern hat z.B. seinen Mailclient so eingestellt das er nur "Text" anzeigt. Dann greift der Mailclient auf den Plain-Text-Body der Mail zurück, und ist dieser nicht vorhanden, wird der HTML-Teil in vermutlich in Plaintext umgewandelt.
Ich selber formatiere HTML-Mails immer mit CSS-Anweisungen am Anfang(das unterstützen inzwischen die meisten Clients). Ich gebe dann z.B. dem Body eine fest eingestellte Textgröße, so das nicht formatierte Elemente mit Ihrer Schrift nicht aus dem Rahmen fallen. Das funktionierte bisher soweit einwandfrei (AppleMail ist hier eine Ausnahme, das tanzt immer mal wieder aus der Reihe, wie so oft).
Siehe auch folgenden Beitrag: https://www.administrator.de/forum/memofeld-schriften-formatieren-einflu ...
Beispiel:
01.
.HTMLBody = "<style type=""text/css"">td,th,body {font-family:Arial, Helvetica, sans-serif; font-size:10pt;}</style><body><div>Hallo das ist ein Test</div></body>"
02.
.TextBody = "Hallo das ist ein Test"
Eventuell hilft dir das weiter...
Grüße Uwe
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 10:44 Uhr
Hallo Uwe,

danke für die Rückmeldung.
Wie bekomme ich es den hin, dass im Textfeld, welche ich per Variable einlese
keine Schriftarten/grössen mit übergeben werden,
so dass ich diese direkt mit deinem String verbinden kann?
Kann ich diese ver VBA heraus löschen?

Gruß
Thomas
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 10:47 Uhr
Zitat von thomas1972:
Wie bekomme ich es den hin, dass im Textfeld, welche ich per Variable einlese
keine Schriftarten/grössen mit übergeben werden,
wie sieht den der RAW-Output aus deinem Textfeld beispielsweise aus, ist dieser HTML oder RTF formatiert ?
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 10:57 Uhr
Wenn du HTML-Tags aus dem Text ausfiltern willst kannst du dies z.B. so machen:
01.
HTMLSTRING = "<body><div>Das ist ein Test</div></body>" & vbNewLine & "<table id=""test""><tr><td>Ich war in einer Tabelle</td></tr></table>"
02.
Set regex = CreateObject("vbscript.regexp")
03.
regex.Pattern = "<[^>]*>"
04.
regex.Global = True
05.
PLAINTEXT = regex.Replace(HTMLSTRING,"")
06.
MsgBox PLAINTEXT
Bitte warten ..
Mitglied: thomas1972
20.11.2013 um 11:01 Uhr
Hallo Uwe,

Es ist ein Feld einer Tabelle welche auf einen MSSQL liegt. als NVARCHAR(255) formatiert.
Die Tabelle wird mit den vorlagen befüllt per Textfeld welche als Rich-Text formatiert ist

01.
<div><font face=Arial size=2 color=black>Sehr geehrte Damen und Herren,</font></div>
02.

03.
<div><font face=Arial size=2 color=black>&nbsp;</font></div>
04.

05.
<div><font face=Arial size=2 color=black>Es sind Meldungen vorhanden </font></div>
06.
ect...
Vielleicht hast du noch einen Ansatz
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 11:10 Uhr
Hallo _Use,
habe ich versucht zu Filtern

01.
HTMLSTRING = Mailtext 'Variable
02.
Set regex = CreateObject("vbscript.regexp")
03.
regex.Pattern = "<[^>]*>"
04.
regex.global = True
05.
PlainText = regex.Replace(HTMLSTRING, "")
06.
MsgBox PlainText
ergibt aber den Fehler

Microsoft Visual Basic for Applications
Fehler beim Kompilieren:

Funktionsaufruf auf der linken Seite der Zuweisung muß den Typ Variant oder Object zurückgeben

Gruß
Thomas
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 11:12 Uhr
Zitat von thomas1972:
sorry, in Access ist das Wort PlainText schon ein reserviertes Wort (blöder Zufall ), du musst ein anderen Namen für die Variable nehmen:
01.
HTMLSTRING = Mailtext
02.
Set regex = CreateObject("vbscript.regexp")
03.
regex.Pattern = "<[^>]*>"
04.
regex.global = True
05.
strPlainText = regex.Replace(HTMLSTRING, "")
06.
MsgBox strPlainText
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 11:22 Uhr
Hallo Uwe,
vielen Dank, für die Rückmeldung.
Nun funktioniert die Konvertierung.
bis auf die Passage

01.
Sehr geehrte Damen und Herren,
02.

03.
&nbsp;
04.

05.
bald und Test, .......
Wie kann der "Umbruch" gefiltert werden.

Grüße aus München
Thomas
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 11:30 Uhr
Der obige Code filter nur HTML-Tags aus also die zwischen zwei "< >" stehen.
Zusätzliche Dinge kannst du mit aufnehmen wenn du den RegEx Pattern änderst:
regex.Pattern = "<[^>]*>|&nbsp;"
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 11:30 Uhr
Hallo Use,
der normale umbruch sollte erhalten bleiben

01.
Sehr geehrte Damen und Herren,
02.

03.
;
04.

05.
Test bla
06.

07.
eingeplant .....
08.

09.
;
10.

11.
Hierzu ....vorverlegt.
12.

13.
Wollen wir testenn. 
14.

15.
;
sollte sein

01.
Sehr geehrte Damen und Herren,
02.

03.
Test bla
04.
eingeplant .....
05.

06.

07.
Hierzu ....vorverlegt.
08.
Wollen wir testenn. 
danke für deine Hilfe
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 11:34 Uhr
regex.Pattern = "<[^>]*>|&nbsp;\s*"
Regular Expressions Tutorial: http://www.danielfett.de/internet-und-opensource,artikel,regulaere-ausd ...
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 11:35 Uhr
Hallo Uwe,

Hmm ergibt nun

01.
Sehr geehrte Damen und Herren,
02.

03.
&nbsp;
04.

05.
Test bla
06.

07.
eingeplant ist...
08.

09.
&nbsp;
10.

11.
Hierzu .... vorverlegt.
12.

13.
Wollen wir testenn. &nbsp;
14.

15.
&nbsp;
16.
Bitte warten ..
Mitglied: colinardo
20.11.2013 um 11:37 Uhr
hatte es kurz nochmal geändert, war ein kleiner Typo drin ...s.o.
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 11:41 Uhr
Hallo Use,

danke nochmal für deine schnelle Hilfe,

nun bleiben nur noch "doppelte" umbrüche drin, sonst ist es perfekt

01.
Sehr geehrte Damen und Herren,
02.

03.

04.

05.
Test bla
06.

07.
eingeplant ist...
08.

09.

10.

11.
Hierzu  vorverlegt.
12.

13.
Wollen wir testenn
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 11:50 Uhr
Zitat von thomas1972:
nun bleiben nur noch "doppelte" umbrüche drin, sonst ist es perfekt
Leere Zeilen zusätzlich weg...
regex.Pattern = "<[^>]*>|&nbsp;\s*|^\s*$"
aber dann gehen auch die leeren Zeilen weg die du wahrscheinlich erhalten willst
Bitte warten ..
Mitglied: thomas1972
20.11.2013, aktualisiert um 12:02 Uhr
Ich hoffe nun zum letzten mal,

aber leider keine Änderung.
Ergebnis wie im letzten Beitrag 11:40

Ich hab mir den Text nochmalig angesehen
Es stehen entweder 3 Umbrüche
oder 1 Umbruch.

Besteht nicht die Möglichkeit
Prüfe ob zwischen dem Text nur 1 Umbruch vorhanden dann entferne diesen
Prüfe ob 3 Umbrüche vorhanden dann entfernen zwei davon

Gruß
Thomas
Bitte warten ..
Mitglied: colinardo
20.11.2013, aktualisiert um 12:03 Uhr
teste das mal an deinem String
01.
HTMLSTRING = "<div><font face=""Arial"" size=""2"" color=""black"">Sehr geehrte Damen und Herren,</font></div>" & vbNewLine & vbNewLine & "<div><font face=""Arial"" size=""2"" color=""black"">&nbsp;</font></div>" & vbNewLine & vbNewLine & "<div><font face=""Arial"" size=""3"" color=""black"">Das ist ein Test</font></div>"
02.
Set regex = CreateObject("vbscript.regexp")
03.
regex.Pattern = "<[^>]*>|&nbsp;\s*|^\s*$"
04.
regex.Global = True
05.
regex.MultiLine = True
06.
strPlainText = regex.Replace(HTMLSTRING,"")
07.
MsgBox strPlainText
Bitte warten ..
Mitglied: thomas1972
20.11.2013 um 12:12 Uhr
Hallo Uwe,

vielen lieben dank für deine Hlfe,
das hat mir sehr weitergeholfen und konnte mein Problem mit der Formatierung lösen.
Nun lasse ich den ersteller der Email entscheiden, ob er formatiert versenden möchte oder nicht.

Grüße aus München.
Thomas
Bitte warten ..
Ähnliche Inhalte
E-Mail
Probleme beim E-Mail Empfang
gelöst Frage von TommyB83E-Mail12 Kommentare

Hiho, Blöde Frage, sorry, aber ich komme einfach nicht weiter. Ich habe einen Mailserver aufgesetzt, wie x Male zuvor ...

Microsoft Office

Access 2010 Kommastelle wird falsch angezeigt

Frage von tdkcbundiMicrosoft Office

Hallo, ich habe das Problem, dass bei einem neu eingerichteten Windows 7 64bit Rechner das Access 2010 die Nachkommastelle ...

E-Mail

Outlook, kein HTML-Mail, Akzeptanz?

gelöst Frage von departure69E-Mail8 Kommentare

Hallo. Wir sind gerade mit ISIS12 beschäftigt. ISIS12 ist zwar gegenüber größeren Informationssicherheitsmanagementsystemen wie BSI-Grundschutz oder ISO27001 deutlich abgespeckt, ...

Exchange Server

Exchange E-Mail-Adresse wird falsch aufgelöst

Frage von AkroshExchange Server7 Kommentare

Hallo zusammen, ich habe ein kleines Problem, finde auch viel dazu in div. Foren und über die SuFu aber ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 1 TagDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 1 TagSicherheit1 Kommentar

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 2 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 2 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Glasfaserkabel verlegen und Anschlüsse setzen
Frage von LLL0rdLAN, WAN, Wireless21 Kommentare

Hallo Leute, ich muss demnächst ein Netzwerkkabel auf einer Länge von ca. 70 Metern verlegen. Das Netzwerkkabel soll dabei ...

Windows Server
Mac Rechner im Windows Netzwerk - was jetzt?
gelöst Frage von Kopfg3ldWindows Server18 Kommentare

Hallo zusammen, ich habe folgende Herausforderungen. Aber erst mal was kurz zum Netzwerk - Windows Server (ältester ist ein ...

Datenbanken
MySQL Schleife in Stored Procedure
Frage von facebrakerDatenbanken15 Kommentare

Hallo, ich bin gerade echt am grübeln. Ich habe in meiner DB, bestimmte Zeiträume gespeichert. z.B. User_ID ; von ...

Microsoft Office
Sharepoint 2016 mag keine Umlaute in .docx-Titeln
gelöst Frage von DerWoWussteMicrosoft Office14 Kommentare

Moin Kollegen. Nutzt hier jemand Sharepoint? Könnt Ihr, unabhängig von der Sharepointversion, bitte einen Test machen? Ladet ein .docx ...