Toon posts:

[PHP+IIS] mail(): punt als eerste karakter in regel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het volgende: ik wil vanuit PHP een e-mail sturen via de lokale SMTP server (IIS, windows 2003). Als ik in de e-mail een regel begin met een . (punt) dan wordt deze niet verzonden in de e-mail. Dit gebruik ik om een HTML e-mail te versturen met inline CSS.

Nu heb ik deze artikelen gevonden: http://support.microsoft.com/?id=286358 en http://support.microsoft.com/kb/922035 maar dit lost het probleem niet op. Het heeft er volgens mij mee te maken dat hij buiten de Pickup folder om gaat verzenden (PHP maakt verbinding met SMTP server, en de SMTP server stuurt ze vervolgens weer door, maar zonder de punt).

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 10:33
Wat is je code en waarom zou je een HTML mail willen versturen die begint met een punt? HTML email moet je laten beginnen met <html> of <DOCTYPE .....

Verwijderd

Topicstarter
Hij begint wel met <html>, maar op een gegeven moment komt de inline CSS en dan heb ik zoiets:


code:
1
.cel {}


Die punt verdwijnt tijdens het versturen waardoor de CSS niet meer werkt

  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 14-11 10:52
Wanneer je via sockets met een smtp server communiceert moet je de punten die aan het begin van de regel staan escapen met een extra punt.
Ik denk dus dat php in dit geval een bug bevat omdat php de smtp communicatie voor jou doet.
een \r\n.\r\n sequence heeft namelijk een speciale betekenis bij het data versturen naar smtp. Dat betekend einde data. Vandaar dat punten aan het begin van de regel escaped moeten worden.