Toon posts:

SBS2003 - RAW html code in e-mail body

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hopelijk hebben jullie een beetje een idee waarom dit fout gaat. Ik heb een webapp laten maken door een programmeur en die gebruikt PHP als taal. Een klant van mij kan online zijn uren invullen voor verschillende projecten en op het moment van bevestigen, wordt het mailtje verstuurd.

Zogauw dit mailtje door een Exchange server gaat, krijgt de klant het mailtje met RAW html code.
Stel ik een pop3 server in dezelfde outlook en zorg dat het mailtje op die manier binnen komt, ziet het er prima uit.

Ik heb het via een SBS2003 laten lopen en via een SBS2008 en beide gevallen gaat het fout.
Het probleem ligt dus niet in Microsoft Outlook, maar waarschijnelijk in de Exchange omgeving.
Ik heb ook Outlook 2003 en Outlook 2007 geprobeerd en beide gevallen gaat het fout.

Iemand enig idee wat er met een bericht kan gebeuren als die door een Exchange gaat?
Ik heb zoveel dingen getest en uitgesloten, maar ik ben het spoor even kwijt.

  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

Dat is makkelijker om dat te beoordelen als je hier de source van zo'n bericht even neerzet.

Exchange en Office 365 specialist. Mijn blog.


  • eRRoR.InSiDe
  • Registratie: September 2001
  • Laatst online: 23-01 09:21
Kan er bij de PHP die de mail stuurt de opmaak niet worden meegegeven? Lijkt er nu op alsof het als clear text wordt bestempeld en je dat bij POP3 niet hebt omdat die m.b.v. de client de mail behandeld.

Just my thoughts...

Verwijderd

Topicstarter
Dit is het e-mail bericht wat ik ontvang als het via Exchange loopt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Content-type: text/html; charset=iso-8859-1

From:info@bedrijf.nl

Message-Id: <20090625111406.3E1701E529C@web3.sollie.nl>
Date: Thu, 25 Jun 2009 13:14:06 +0200 (CEST)


<table width="45%" border="0" cellspacing="0" cellpadding="0" align="center">

                  <tr align="left">

                    <td width="45%" height="30">&nbsp;Gebruikersnaam : </td>

                    <td height="30"><b>Test</b></td>

                  </tr>

                  <tr align="left" valign="top">

                    <td height="30">&nbsp;E-mail adres : </td>

                    <td width="55%" height="30">info@bedrijf.nl</td>

                  </tr>

                  <tr align="left">

                    <td height="30">&nbsp;Datum : </td>

                    <td height="30" >2009-06-25</td>

                  </tr>

                  <tr align="left">

                    <td height="30">&nbsp;Laat Applied Looptijd: </td>

                    <td height="30" >&nbsp;</td>

                  </tr>

                  <tr align="left">

                    <td height="30">&nbsp;Begindatum : </td>

                    <td height="30" >2009-06-26</td>

                  </tr>

                  <tr align="left">

                    <td height="30">&nbsp;Einddatum: </td>

                    <td height="30" >2009-06-26</td>

                  </tr>

                  <tr align="left">

                    <td height="30">&nbsp;</td>

                    <td height="30" >&nbsp;</td>

                 </tr>

                </table>
eRRoR.InSiDe schreef op donderdag 02 juli 2009 @ 13:56:
Kan er bij de PHP die de mail stuurt de opmaak niet worden meegegeven? Lijkt er nu op alsof het als clear text wordt bestempeld en je dat bij POP3 niet hebt omdat die m.b.v. de client de mail behandeld.

Just my thoughts...
Mjah en dat is een hele goeie, ik heb niet zoveel PHP kennis. Simpel search and replace kan iedereen. Ik kan tabellen toevoegen en verwijderen, maar hoe de mail functie in php werkt geen idee.

[ Voor 17% gewijzigd door Verwijderd op 02-07-2009 19:11 ]


  • Jazzy
  • Registratie: Juni 2000
  • Nu online

Jazzy

Moderator SSC/PB

Moooooh!

Het gaat in de code zoals het verzonden wordt, grapjas. :) Daar zit waarschijnlijk iets fout waardoor het verschillend wordt behandeld.

Exchange en Office 365 specialist. Mijn blog.


Verwijderd

Topicstarter
Jazzy schreef op donderdag 02 juli 2009 @ 19:20:
Het gaat in de code zoals het verzonden wordt, grapjas. :) Daar zit waarschijnlijk iets fout waardoor het verschillend wordt behandeld.
:D Zeg dat dan ook dat je de source code wilt zien :D

Bij deze:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function sendMail()
{

    global $task, $recid, $linkid,$slno; // Type of Task (1: Add, 2: Edit, 0: Nothing....)
    global $cur_page_url;   // Current Page URL
    global $list_page_url;  // List Page URL
    global $user_name, $email_id, $change_email, $applied_date, $from_date,$to_date, $week_day_number, $chk_email, $user_id,$email;
                
            
        $to = "info@bedrijf.nl";
        
        if($change_email != "")
        {
            $from = $change_email ;
        }
        else
        {
            $from = $email_id ;
        }
        
        $subject = "Leave Request Details from $from";
        
        $message = '<table width="45%" border="0" cellspacing="0" cellpadding="0" align="center">
                  <tr align="left">
                    <td width="45%" height="30">&nbsp;Gebruikersnaam : </td>
                    <td height="30"><b>'.$user_name.'</b></td>
                  </tr>
                  <tr align="left" valign="top">
                    <td height="30">&nbsp;E-mail adres : </td>
                    <td width="55%" height="30">'.$from.'</td>
                  </tr>
                  <tr align="left">
                    <td height="30">&nbsp;Datum : </td>
                    <td height="30" >'.$applied_date.'</td>
                  </tr>
                  <tr align="left">
                    <td height="30">&nbsp;Begindatum : </td>
                    <td height="30" >'.$from_date.'</td>
                  </tr>
                  <tr align="left">
                    <td height="30">&nbsp;Einddatum: </td>
                    <td height="30" >'.$to_date.'</td>
                  </tr>
                  <tr align="left">
                    <td height="30">&nbsp;</td>
                    <td height="30" >&nbsp;</td>
                 </tr>
                </table>' ;
                                
        
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    $headers .= "From:" . $from. "\r\n";

    
    #echo $message ; die("Mail has been send in this format");
    
    mail($to, $subject, $message, $headers);
    
    #$_SESSION["app_message"]   ="Alumni Registered successfully.A mail has been sent to this alumni.";
    #header("location: alumni_list.php");
    #die(); 
        



}

?>

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

User Coder error, slap User Coder

Het sturen van een body tag enzo is niet nodig? - serieuze vraag.

[ Voor 8% gewijzigd door alt-92 op 02-07-2009 20:10 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
alt-92 schreef op donderdag 02 juli 2009 @ 20:06:
User Coder error, slap User Coder

Het sturen van een body tag enzo is niet nodig? - serieuze vraag.
Ik heb geen idee, is dat een vraag aan mij?
Hetgeen wat ik eigenlijk vind is dat Microsoft Outlook nog al een zeikerd is als het op e-mail berichten aan komt en dat de body altijd moet beginnen met <html>. In mijn ogen zou ik dan zeggen ik moet die Content-type header regel weg halen.

Maar zoals ik al aangaf ik ben geen coder en zeker niet met PHP sendmail functie.

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Ach, HTML mail is toch ev0l dus...
En er zit sowieso een verschil tussen de verschillende Clientside HTML parsers die Outlook gebruikt.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
alt-92 schreef op donderdag 02 juli 2009 @ 20:19:
Ach, HTML mail is toch ev0l dus...
En er zit sowieso een verschil tussen de verschillende Clientside HTML parsers die Outlook gebruikt.
Oke prima if you say so :+
Maar hoe kan het als ik dit formulier laat versturen naar een POP3 box en vervolgens via pop3 binnen haal in MS Outlook dat het wel prima gaat, maar zogauw ik bijv. met een pop3 connector in sbs2003 of sbs2008 deze mail ophaalt het helemaal fout gaat?

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

POP3 connector he? De ingebouwde of een 3rd party connector?
Hmmm.. en als dezelfde mail gewoon via SMTP en MAPI wordt afgeleverd in de Client, gaat het dan wel goed?

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
alt-92 schreef op donderdag 02 juli 2009 @ 23:19:
POP3 connector he? De ingebouwde of een 3rd party connector?
Hmmm.. en als dezelfde mail gewoon via SMTP en MAPI wordt afgeleverd in de Client, gaat het dan wel goed?
De klant heeft de MX-record rechtstreeks naar zijn exchange staan en op die manier gaat het ook fout. Doe ik het via de POP3 connector (de ingebouwde) in mijn eigen SBS2008 dan gaat het ook fout.

Stel ik een pop3 account in een nieuw profiel in outlook in, los van exchange uiteraard, dan gaat het wel goed.

  • eRRoR.InSiDe
  • Registratie: September 2001
  • Laatst online: 23-01 09:21
Het feit dat het niet werkt is dat het via een exchange server gaat en bij POP3 niet, dan komt het gewoon binnen op een andere mailserver die er "niets" mee doet.

Maar probeer eens de html en body tag toe te voegen aan $message.

Want daar gaat het volgens mij fout net zo als alt-92 al noemde.

Verwijderd

Topicstarter
eRRoR.InSiDe schreef op vrijdag 03 juli 2009 @ 07:21:
Het feit dat het niet werkt is dat het via een exchange server gaat en bij POP3 niet, dan komt het gewoon binnen op een andere mailserver die er "niets" mee doet.

Maar probeer eens de html en body tag toe te voegen aan $message.

Want daar gaat het volgens mij fout net zo als alt-92 al noemde.
Bedoelen jullie deze code dan om toe te voegen:

code:
1
<sendmail:body mime-type="text/html">


Er zijn maar weinig pagina's die uberhaupt de body tag bespreken als je zoekt in google naar sendmail body tag of sendmail body $message, etc.

  • aZuL2001
  • Registratie: September 2002
  • Laatst online: 31-01 11:11
Verwijderd schreef op donderdag 02 juli 2009 @ 13:06:
Een klant van mij kan online zijn uren invullen voor verschillende projecten en op het moment van bevestigen, wordt het mailtje verstuurd.
Geen oplossing, eerder een workaround.

Je schrijft "op het moment van bevestigen".
Waarom laat je er dan geen pdf van maken, en voegt die bij ?

Als ik het lees denk ik dat de ingevulde uren goedgekeurd worden, en dus definitief zijn.
Dan is pdf wellicht een optie.

Abort, Retry, Quake ???


Verwijderd

Topicstarter
aZuL2001 schreef op vrijdag 03 juli 2009 @ 09:03:
[...]


Geen oplossing, eerder een workaround.

Je schrijft "op het moment van bevestigen".
Waarom laat je er dan geen pdf van maken, en voegt die bij ?

Als ik het lees denk ik dat de ingevulde uren goedgekeurd worden, en dus definitief zijn.
Dan is pdf wellicht een optie.
Dat zou ook een perfecte oplossing zijn, maar dan kom je op het programmeer gedeelte waar ik echt geen kaas van heb gegeten.

  • eRRoR.InSiDe
  • Registratie: September 2001
  • Laatst online: 23-01 09:21
http://www.itworld.com/nls_unix_sendhtml060427

Stata toch echt iets over html en body tags. Kan je toch gewoon proberen? In het ergste geval staat er in je mailtje een paar extra tags die niet gebruikt worden....

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

pff.
Bel die programmeur? :) Hij mag de code ook supporten hoor :)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
eRRoR.InSiDe schreef op vrijdag 03 juli 2009 @ 09:29:
http://www.itworld.com/nls_unix_sendhtml060427

Stata toch echt iets over html en body tags. Kan je toch gewoon proberen? In het ergste geval staat er in je mailtje een paar extra tags die niet gebruikt worden....
Hier moet je de sendmail programma aangeven. Misschien werkt dit wel op basis van je eigen server, maar dit combineren in PHP, daar staat niks over vermeld.
alt-92 schreef op vrijdag 03 juli 2009 @ 09:56:
pff.
Bel die programmeur? :) Hij mag de code ook supporten hoor :)
Zou kunnen, maar dit project gaat via RentACoder en daarnaast wil ik ook weten hoe dit zit, althans globaal.

  • eRRoR.InSiDe
  • Registratie: September 2001
  • Laatst online: 23-01 09:21
Wat er bij $message staat is precies wat jij terug ziet in je mail. Dus of jij er nu <html><body> voor zet of niet dat maakt voor sendmail niet uit. Het kan hoogstend ineens wel werken als je mail op Exchange binnen komt. Zo veel moeite is het toch niet om dat te proberen en in mijn ogen ziet dat er heel logisch uit.

Als je niets probeerd gaat het nooit werken....

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

Er is niets wat je tegenhoudt om ernaast te zitten terwijl hij het probleem fix0red en een goeie overdracht te regelen toch?

je blijft gewoon achter 'm staan met een honkbalknuppel ;)

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


Verwijderd

Topicstarter
eRRoR.InSiDe schreef op vrijdag 03 juli 2009 @ 11:17:
Wat er bij $message staat is precies wat jij terug ziet in je mail. Dus of jij er nu <html><body> voor zet of niet dat maakt voor sendmail niet uit. Het kan hoogstend ineens wel werken als je mail op Exchange binnen komt. Zo veel moeite is het toch niet om dat te proberen en in mijn ogen ziet dat er heel logisch uit.

Als je niets probeerd gaat het nooit werken....
Sorry, maar ik begreep niet precies wat je bedoelde. Maar inmiddels duidelijk een aangepast zoals hieronder.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        $message = '<html>
                   <body>
                    <table width="45%" border="0" cellspacing="0" cellpadding="0" align="center">
                  <tr align="left">

..................


  <tr align="left">
                    <td height="30">&nbsp;</td>
                    <td height="30" >&nbsp;</td>
                 </tr>
                </table> 
                </body>
                </html>';


Maar dit komt braaf als RAW code in je body terecht.

  • eRRoR.InSiDe
  • Registratie: September 2001
  • Laatst online: 23-01 09:21
Ik zou het nog eens vergelijken met wat er hier staat:
[urlhttp://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php#html[/url]

Maar eigenlijk is het in mijn ogen niet goed geprogrammeerd.

Verwijderd

Topicstarter
eRRoR.InSiDe schreef op vrijdag 03 juli 2009 @ 12:42:
Ik zou het nog eens vergelijken met wat er hier staat:
[urlhttp://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php#html[/url]

Maar eigenlijk is het in mijn ogen niet goed geprogrammeerd.
Het ligt niet aan de code volgens mij, want ik heb dit

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
  <title>Birthday Reminders for August</title>
</head>
<body>
  <p>Here are the birthdays upcoming in August!</p>
  <table>
    <tr>
      <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
    </tr>
    <tr>
      <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);

Bron: http://php.net/manual/en/function.mail.php Example #4

1 op 1 in de functie Sendmail() gekopieerd, uiteraard wel het TO adress veranderd. Bij het invullen van het formulier en versturen gaat alles prima en bij het ontvangen heb ik RAW html code.

De functie Sendmail() wordt gewoon standaard aangeroepen zonder extra parameters.

Verwijderd

Topicstarter
Iemand toevallig nog een suggestie?

Verwijderd

Topicstarter
Ik ben het einde zoek, ik heb van alles geprobeerd, maar tot op heden is het nog steeds niet gelukt.
Iemand van jullie misschien nog aan suggestie |:(

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 25-01 14:44
*schopje*

Wellicht heb je er nog iets aan.
Probleem is het type line-delimiter, end-of-line-style, of hoe je het wilt noemen. Dit is ook te zien in het stukje e-mail welke je postte, dat tussen de header witregels staan.

In MIME (en HTTP) is de eerste lege regel de scheiding tussen headers en content. Je witregel staat boven de "Content-type: text/html" waardoor de client deze niet meer als header parsed, de e-mail als text/plain behandeld, en jij dus platte HTML opmaakcodes ziet.

Probleem treed op als je een bestand met Windows-line-endings in binary-mode upload naar een Unix server. Je zou als lijnscheidingsteken ook slechts een "\n" kunnen gebruiken in plaats van de gebruikelijke "\r\n", ookal is dat in strijd met de specificaties.
Pagina: 1