Wij hebben een legacy DLL geschreven in VB6. De DLL wordt als een COM+ object gedraaid onder Windows Server 2003. Het wordt door een x aantal websites gebruikt om mails te versturen.
Probleem:
Headers van mails verstuurd door enkele websites lijken niet goed gevormd te zijn waardoor de mail begint met "X-MimeOLE Beste Klant" in plaats van "Beste klant". Dit gebeurt dus niet met alle sites.
Een "goede" mail ziet er als volgt uit:
De malformed email ziet er als volgt uit:
Wij hebben geen fatsoenlijke test omgeving waardoor we op productie moeten debuggen. De downtime moet zo laag mogelijk zijn. Daarom probeer ik zo veel mogelijk info te verzamelen alvorens we de sites offline halen.
Informatie elders op internet lijkt te wijzen op eventueel verkeerde encoding en/of charsets, maar de verschillende sites gebruiken dezelfde DLL, en toch treedt de fout niet bij alle sites op.
Dus lijkt het erop dat de fout niet in de DLL zit, maar in het proces dat de DLL aanroep voorgaat. Ook aan die zijde kan ik echter niets vreemds vinden. Dit werkt als volgt:
1. Get XML met text data (via parameter): oXml
2. Get XSLT voor de layout van de mail: oXsl
3. Transform:
4. Create mail object en verstuur mail:
De XML en XSLT van elke site bevat niets speciaals:
Ik hoop op wat pointers in de goede richting van jullie.
Probleem:
Headers van mails verstuurd door enkele websites lijken niet goed gevormd te zijn waardoor de mail begint met "X-MimeOLE Beste Klant" in plaats van "Beste klant". Dit gebeurt dus niet met alle sites.
Een "goede" mail ziet er als volgt uit:
From: <info@xxxx.com> To: <xxx@xxx.com> Subject: xxxx Date: Mon, 5 Oct 2009 20:38:42 +0200 Message-ID: <9C77E0828D16408082A1455A0E309EAE@XXXXX01> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Microsoft CDO for Windows 2000 Content-Class: urn:content-classes:message Importance: normal X-OriginalArrivalTime: 05 Oct 2009 18:38:43.0143 (UTC) FILETIME=[1096CD70:01CA45EB] Priority: normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4325 X-TTE_LOCAL-MailScanner-Information: Please contact the ISP for more information X-TTE_LOCAL-MailScanner-ID: D86B011FA09.4C246 X-TTE_LOCAL-MailScanner: Found to be clean X-TTE_LOCAL-MailScanner-From: info@xxxx.com X-Spam-Status: No Beste klant,
De malformed email ziet er als volgt uit:
From: <info@xxx.nl> To: <xxx@xxx.com> Subject: yyyy Date: Wed, 3 Mar 2010 16:04:29 +0100 Message-ID: <45678C667C8348C7BE3E1D7223243C1C@XXXX01> MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Microsoft CDO for Windows 2000 Content-Class: urn:content-classes:message Importance: normal Priority: normal X-OriginalArrivalTime: 03 Mar 2010 15:04:29.0860 (UTC) FILETIME=[D2FC3640:01CABAE2] X-TTE_LOCAL-MailScanner-Information: Please contact the ISP for more information X-TTE_LOCAL-MailScanner-ID: B4C1111F776.DD34E X-TTE_LOCAL-MailScanner: Found to be clean X-TTE_LOCAL-MailScanner-From: info@xxxx.nl X-Spam-Status: No X-MimeOLE Beste TEST
Wij hebben geen fatsoenlijke test omgeving waardoor we op productie moeten debuggen. De downtime moet zo laag mogelijk zijn. Daarom probeer ik zo veel mogelijk info te verzamelen alvorens we de sites offline halen.
Informatie elders op internet lijkt te wijzen op eventueel verkeerde encoding en/of charsets, maar de verschillende sites gebruiken dezelfde DLL, en toch treedt de fout niet bij alle sites op.
Dus lijkt het erop dat de fout niet in de DLL zit, maar in het proces dat de DLL aanroep voorgaat. Ook aan die zijde kan ik echter niets vreemds vinden. Dit werkt als volgt:
1. Get XML met text data (via parameter): oXml
2. Get XSLT voor de layout van de mail: oXsl
3. Transform:
Visual Basic:
1
| strMailText = oXml.transformNode(oXsl) |
4. Create mail object en verstuur mail:
Visual Basic:
1
2
3
4
5
6
7
| Dim oMailer: Set oMailer = CreateObject("CDO.Message") oMailer.From = strMailFrom oMailer.To = strMailTo oMailer.Subject = strMailSubject oMailer.TextBody = strMailText oMailer.Send |
De XML en XSLT van elke site bevat niets speciaals:
XML:
1
2
3
4
5
6
7
8
| <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" indent="no" omit-xml-declaration="yes" /> <xsl:strip-space elements="*" /> <xsl:template match="/document"> Beste klant, </xsl:template> </xsl:stylesheet> |
Ik hoop op wat pointers in de goede richting van jullie.
(bb) || !(bb)