[PHP] Mailto header safari

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 17-02-2021
Via een php bestand roep ik een mailto-header op:

PHP:
1
header("Location: mailto:test@test.nl");


Dit gaat in de meeste browsers (IE/Chrome/Firefox) perfect; mailprogramma wordt geopend met daarin het betreffende aan-adres.

Echter gebeurt er in Safari (4.0.3) iets vreemds... achter het adres komt "/localhost" te staan!
Zie: http://83.98.128.44/~tests/mail.php

Iemand enig idee hoe dit kan en hoe dit opgelost kan worden?

[ Voor 2% gewijzigd door NMe op 28-06-2010 11:33 . Reden: Code tags. ;) ]


Acties:
  • 0 Henk 'm!

Verwijderd

ik zie geen mailto :P Wat je hier doet is inloggen als gebruiker test op http://test.nl

probeer eens met mailto:test@test.nl

of simpelweg met een http meta tag i.p.v. via php

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Verwijderd schreef op maandag 28 juni 2010 @ 11:13:
ik zie geen mailto :P Wat je hier doet is inloggen als gebruiker test op http://test.nl

probeer eens met mailto:test@test.nl

of simpelweg met een http meta tag i.p.v. via php
De forum-software hier op Tweakers heeft de mailto: specificatie weggelaten en er daadwerkelijk een mailto-link van gemaakt. Je kunt namelijk op het mailadres klikken.

Als Dennisderoo echter de code-tag had gebruikt, waar die voor gemaakt is, dan is er niets aan de hand:

PHP:
1
header("Location: mailto:test@test.nl");

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Volgens mij is dit gewoon correct gedrag? Safari houdt hier heel strak vast aan de HTTP1.1 spec, die een geldige URI wil hebben, zoals deze comment op de manual page aangeeft. Een email adres is geen geldige URI binnen de HTTP 1.1 spec (voor zover ik weet) dus gaat Safari schoppen.

Ik vind het ook eerder slordig dat andere browsers het wel doen, om nog maar te zwijgen van de behoorlijk lompe manier die je kiest om naar iemand te mailen. Wat als ik nou eens geen email programma geinstalleerd/geconfigureerd heb omdat ik alleen maar gmail gebruik?

Oh ja: Hoe post je code? / Hoe gebruik je de code tag?

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 17-02-2021
HuHu schreef op maandag 28 juni 2010 @ 11:17:
[...]

De forum-software hier op Tweakers heeft de mailto: specificatie weggelaten en er daadwerkelijk een mailto-link van gemaakt. Je kunt namelijk op het mailadres klikken.

Als Dennisderoo echter de code-tag had gebruikt, waar die voor gemaakt is, dan is er niets aan de hand:

PHP:
1
header("Location: mailto:test@test.nl");
Excuses. Ik was in de veronderstelling dat dit automatisch opgepakt zou worden wanneer ik de <?php zou gebruiken zoals vele andere fora wel doen.

Acties:
  • 0 Henk 'm!

Verwijderd

MueR schreef op maandag 28 juni 2010 @ 11:22:
Wat als ik nou eens geen email programma geinstalleerd/geconfigureerd heb omdat ik alleen maar gmail gebruik?
Bedoel je dit? Voor Windows en MacOS is ook zoiets in te stellen.

Acties:
  • 0 Henk 'm!

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 17-02-2021
MueR schreef op maandag 28 juni 2010 @ 11:22:
Volgens mij is dit gewoon correct gedrag? Safari houdt hier heel strak vast aan de HTTP1.1 spec, die een geldige URI wil hebben, zoals deze comment op de manual page aangeeft. Een email adres is geen geldige URI binnen de HTTP 1.1 spec (voor zover ik weet) dus gaat Safari schoppen.

Ik vind het ook eerder slordig dat andere browsers het wel doen, om nog maar te zwijgen van de behoorlijk lompe manier die je kiest om naar iemand te mailen. Wat als ik nou eens geen email programma geinstalleerd/geconfigureerd heb omdat ik alleen maar gmail gebruik?

Oh ja: Hoe post je code? / Hoe gebruik je de code tag?
Is het dan überhaupt wel mogelijk om dit via een header te doen?
Een contact formulier zou inderdaad beter zijn maar de keuze is helaas niet aan mij...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dennisderoo schreef op maandag 28 juni 2010 @ 11:26:
[...]

Is het dan überhaupt wel mogelijk om dit via een header te doen?
Een contact formulier zou inderdaad beter zijn maar de keuze is helaas niet aan mij...
Waarom doe je het via PHP en met een ranzige header hack? Waarom niet gewoon mailto: links in je HTML? Als je bang bent voor spambots dan kun je die mailadressen ook gewoon encoded in je HTML zetten en met javascript decoden bij het DOM ready event.
Verwijderd schreef op maandag 28 juni 2010 @ 11:26:
[...]

Bedoel je dit? Voor Windows en MacOS is ook zoiets in te stellen.
Dat het kan wil niet zeggen dat iedereen het ook doet. Ik ken genoeg mensen die geen mailclient hebben en dagelijks braaf naar Hotmail surfen omdat ze dat altijd zo gedaan hebben.

[ Voor 30% gewijzigd door NMe op 28-06-2010 11:36 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Verwijderd schreef op maandag 28 juni 2010 @ 11:26:
Bedoel je dit? Voor Windows en MacOS is ook zoiets in te stellen.
Anders begrijp je niet waar ik heen wil. Ja, wij tweakers zullen zoiets wel doen indien nodig. Maar de gemiddelde PC waarop geen mailclient geinstalleerd staat behoort niet tot een tweaker. Daarbij is het gewoon ontzettend ranzig en kan je beter een contactformulier bouwen. Kleine moeite en iedereen kan je altijd mailen.
Dennisderoo schreef op maandag 28 juni 2010 @ 11:26:
Is het dan überhaupt wel mogelijk om dit via een header te doen?
Headers zijn daar niet voor gemaakt, dus ik hoop van niet.
Dennisderoo schreef op maandag 28 juni 2010 @ 11:26:
Een contact formulier zou inderdaad beter zijn maar de keuze is helaas niet aan mij...
En waarom niet? Werk je in opdracht? Dan zou je toch moeten adviseren dat de huidige aanpak _zeer_ onverstandig is. Een contactformulier is makkelijk te beveiligen tegen (het gros van de) spam, deze methode niet. Daarbij maak je het vrij irritant voor mensen die geen mailclient geconfigureerd hebben. Ze klikken op een "Email ons!!!111one!" link, waarna hun Windows Mail zich ineens wil gaan configureren. Mensen zijn gewend aan een contactformulier, bouw dat dan ook.

[ Voor 43% gewijzigd door MueR op 28-06-2010 11:40 ]

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 17-02-2021
Waarom doe je het via PHP en met een ranzige header hack? Waarom niet gewoon mailto: links in je HTML? Als je bang bent voor spambots dan kun je die mailadressen ook gewoon encoded in je HTML zetten en met javascript decoden bij het DOM ready event.
Daar zou ik inderdaad ook naar kunnen kijken. Ik doe het nu op de volgende manier:
HTML:
1
<a href="mailto.php?e=88">&#116&#101&#115&#116&#64&#116&#101&#115&#116&#46&#110&#108</a>
En waarom niet? Werk je in opdracht? Dan zou je toch moeten adviseren dat de huidige aanpak _zeer_ onverstandig is. Een contactformulier is makkelijk te beveiligen tegen (het gros van de) spam, deze methode niet. Daarbij maak je het vrij irritant voor mensen die geen mailclient geconfigureerd hebben. Ze klikken op een "Email ons!!!111one!" link, waarna hun Windows Mail zich ineens wil gaan configureren. Mensen zijn gewend aan een contactformulier, bouw dat dan ook.
Ik weet dat een contact formulier beter is. Echter is de site opgezet voor bedrijven die vrijwel altijd een mailclient geïnstalleerd hebben.
Maar mijn vraag gaat over de mailto-header en niet wat beter is om te gebruiken. Ik begrijp uit de reactie van MueR dat de header niet geldig is volgens de HTTP1.1 spec. en dus niet te gebruiken is. Of bestaat er nog een andere manier om via PHP de mailclient op te roepen?

Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 17-09 11:07

TheNephilim

Wtfuzzle

Dennisderoo schreef op maandag 28 juni 2010 @ 12:03:


Ik weet dat een contact formulier beter is. Echter is de site opgezet voor bedrijven die vrijwel altijd een mailclient geïnstalleerd hebben.
Maar mijn vraag gaat over de mailto-header en niet wat beter is om te gebruiken. Ik begrijp uit de reactie van MueR dat de header niet geldig is volgens de HTTP1.1 spec. en dus niet te gebruiken is. Of bestaat er nog een andere manier om via PHP de mailclient op te roepen?
Oké dat je mailding is voor gebruik met alleen mailclients is prima. Maar wat is dan het bezwaar om als nog mailto: te doen? Contact form of mailto gebruiken, een oplossing zoals jij die zoekt met PHP lijkt me sowieso geen optie.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
MueR schreef op maandag 28 juni 2010 @ 11:22:
Volgens mij is dit gewoon correct gedrag? Safari houdt hier heel strak vast aan de HTTP1.1 spec, die een geldige URI wil hebben, zoals deze comment op de manual page aangeeft. Een email adres is geen geldige URI binnen de HTTP 1.1 spec (voor zover ik weet) dus gaat Safari schoppen.

Ik vind het ook eerder slordig dat andere browsers het wel doen, om nog maar te zwijgen van de behoorlijk lompe manier die je kiest om naar iemand te mailen. Wat als ik nou eens geen email programma geinstalleerd/geconfigureerd heb omdat ik alleen maar gmail gebruik?

Oh ja: Hoe post je code? / Hoe gebruik je de code tag?
In Safari 5 voor Windows werkt het ook.

Acties:
  • 0 Henk 'm!

  • Dennisderoo
  • Registratie: Februari 2004
  • Laatst online: 17-02-2021
Bernardo schreef op maandag 28 juni 2010 @ 12:12:
Oké dat je mailding is voor gebruik met alleen mailclients is prima. Maar wat is dan het bezwaar om als nog mailto: te doen? Contact form of mailto gebruiken, een oplossing zoals jij die zoekt met PHP lijkt me sowieso geen optie.
Ik probeer hiermee (niet 100%) spam-bots tegen te houden. Waarschijnlijk moet ik dus opzoek naar een JS oplossing.
HuHu schreef op maandag 28 juni 2010 @ 12:29:
In Safari 5 voor Windows werkt het ook.
Klopt, helaas in safari 4 niet.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Dennisderoo schreef op maandag 28 juni 2010 @ 12:57:
[...]
Waarschijnlijk ik moet dus opzoek naar een JS oplossing.
Zou ik maar doen ;) Je zal ook net een paar mensen hebben die dus geen mailclient hebben (ook al hoort het wel) die dus geen idee hebben wat ze ermee aan moeten, zonde natuurlijk.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Dennisderoo schreef op maandag 28 juni 2010 @ 12:03:
[...]

Daar zou ik inderdaad ook naar kunnen kijken. Ik doe het nu op de volgende manier:
HTML:
1
<a href="mailto.php?e=88">&#116&#101&#115&#116&#64&#116&#101&#115&#116&#46&#110&#108</a>
Dat vermoeden had ik al. ;) (En ik neem aan dat je hier de ; bewust overal weglaat omdat het anders geparsed wordt. :P )

Ik zou zoiets doen denk ik:
HTML:
1
<a href="#" rel="sd90w4sgjk043">&#116&#101&#115&#116&#64&#116&#101&#115&#116&#46&#110&#108</a>

Vervolgens in je javascript door alle anchors met een rel heen lopen, die rel decoden middels een willekeurige functie en in de href stoppen. Eventueel laat je de href zelfs helemaal weg zodat de link voor mensen zonder JS niet klikbaar is. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1