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)

Frage Microsoft Microsoft Office

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

20.11.2013, aktualisiert 10:16 Uhr, 2329 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: http://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
Exchange Server
SBS2011 - MAPI-CDO-Paket installiert falsche Version
gelöst Frage von michael2105Exchange Server4 Kommentare

Hallo zusammen, zwecks Installation des Acronis Exchange Backup Agenten muss ich das MAPI/CDO Paket 1.2.1 (Ver. 08.03.0.8309.000) auf unserem ...

Exchange Server
Exchange 2010 - eMail kommt nicht am Empfänger an
Frage von staybbExchange Server2 Kommentare

Hallo, ich habe ein sehr seltsames Phänomen. Ich versende von einer öffentlichen Ordner aktivierten eMail Adresse eine eMail an ...

E-Mail
Mails Fälschen
Frage von Pr0m3th3usE-Mail9 Kommentare

Hi, Ich habe eine Spam Mail bekommen, bei der ich über die E-Mail Header die IP nicht herausfinden konnte. ...

Outlook & Mail
E-Mail kommt an, wird aber nicht angezeigt
gelöst Frage von EduuaardOutlook & Mail7 Kommentare

Ich habe ein Problem bei einem User, worauf ich keine Antwort gefunden habe. Wir verwenden Office 365 Outlook 2016. ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 13 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 14 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 21 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...