[PHP] line-terminators in Email fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BraveWorld
  • Registratie: September 2001
  • Niet online
Emails verzonden met de forumsoftware phpBB via de mail-function van PHP worden door mij ontvangen met \r\r\n als line-terminator. Dit heb ik kunnen constateren met een netwerksniffer tijdens het checken van mijn mail.

Ze worden verzonden met \r\n als line-terminator. Dit heb ik gechecked door de data aangeboden aan de mail-function even naar een logfile te schrijven.

Ergens wordt de line-terminator dus veranderd! Hoe kan dat? Ligt dat aan php, mijn ISP, of....?

Ik heb dit ook op http://www.phpbb.com/phpBB/viewtopic.php?t=53491 gepost.

Ergens anders in betreffend forum wordt gezegd dat mails wel goed verzonden worden als er een externe SMTP-server gebruikt wordt.

Een aantal emailclients kunnen wel goed overweg met \r\r\n als line-terminator. Maar Outlook stript ze waardoor de email als één lange regel wordt ontvangen.

Dit is geen signature...


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:10
Mijn gok is dat er ergens nog een tussenstation is, dat \n karakters ook door \r\n vervangt. Op welke manier verstuurd phpBB de mailtjes? Direct via een socket, met sendmail, of met een mail frontend ('mail' ofzo)?

Ik geloof dat 'mail' en 'sendmail' e.d. 'gewone' regels verwachten (dus met alleen een LF karakter op het eind). Die gaan ze dus zelf vervangen door CR-LF bij het versturen over SMTP (conform de telnet standaard) en als je er dan zelf al een CR karakter voor had staan, krijg je dus inderdaad de CR-CR-LF combinatie.

Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:10
Als ik naar de mail-documentatie kijk ( http://www.php.net/manual/en/function.mail.php ), dan zie ik een aantal voorbeelden waarin gewoon enkele LF karakters gebruikt worden. Als phpBB dus berichten met CR-LF karakters erin aanbiedt, is dat waarschijnlijk fout. Die CR wordt er door PHP (?) zelf al aan toegevoegd.

Dit is trouwens ook wel zo netjes. Op deze manier abstraheert de mail functie de functionaliteit "mail versturen" van de feitelijke implementatie en het sendmail/telnet protocol.

Overigens staat expliciet in de manual dat headers wél door \r\n gescheiden moeten worden.

Acties:
  • 0 Henk 'm!

  • BraveWorld
  • Registratie: September 2001
  • Niet online
Ik ga straks even testen met enkel \n in de messagebody.

Dit is geen signature...


Acties:
  • 0 Henk 'm!

  • BraveWorld
  • Registratie: September 2001
  • Niet online
Bedankt!

Er zitten dus een paar bugs in de emailfeatures van phpBB:

- in de headers gebruiken ze dus \n terwijl het \r\n moet zijn
- in de messagebody gebruiken ze \r\n terwijl het \n moet zijn
- in de dutch templates voor de standaardemails zitten \r\n terminators terwijl het in de engelse versie wel goed \n is. Daardoor heeft deze bug waarschijnlijk niet voldoende aandacht gekregen in deze engelstalig community.

Nou, hopen dat ze dit probleem eindelijk 's erkennen als ik het daar submit.

Dit is geen signature...

Pagina: 1