Vraag & Antwoord

Webprogrammeren & scripting

E-mail een link

20 antwoorden
  • Op welke wijze kan ik een knop/zin in mijn webpagina opnemen, waarop iemand kan klikken en dan een nieuw venster krijgt waarin hij het e-mail adres (en zijn eigen en een korte boodschap misschine) kan opgeven waar naar toe de URL wordt verzonden. Er moet geen e-mail programma geopend worden, maar rechtstreeks naar de ontvanger zoals ook gebeurt als je de inhoud van een formulier naar een reeds ingevuld e-mail adres laat sturen via <FORM action="/cgi-bin/sendform.cgi" method="post"> Henny
  • Je wil dus 2 dingen: 1. een popup http://www.echoecho.com/toolpopupgenerator.htm 2. een form mailer: hiervoor heb je een server side taal zoals perl (cgi) of php nodig. Controleer eerst even of je host dat ondersteund, of misschien al wel een kant en klare form mailer heeft. t.
  • Je kan ook een form zonder server-script naar een e-mailadres sturen: <form method="post" action="mailto:gebruiker@provider.nl?subject=Onderwerp+mailtje"> ... </form>
  • Mijn provider is HCCNet en die ondersteunt dus cgi, maar ik kan bij hen niet vinden of ze voorbeelden hebben, misschien weten jullie waar ik dat bij hen kan vinden? Ik weet hoe ik een venster met bepaalde afmetingen en zonder balken enzo moet openen. Alleen ik weet niet hoe wat ik de code van dat nieuwe venster moet zetten zodat de provider via sendform.cgi of iets dergelijks een e-mail naar het gewenste adres stuurt (dus wat iemand heeft ingevuld in het formulier in het nieuw geopende venster). De andere oplossing om zonder een serverscript naar een e-mailadres te sturen is voor mij aantrekkelijker, maar hoe krijg ik het door de persoon ingevuld e-mailadres in action="mailto: .... zodat de e-mail met link en boodschap direct naar het betreffende adres gaat. Kan dit met een Javascript in het formulier? Bedankt alvast, Henny
  • Waarom zo moeilijk? Ook de gewone html-tag hiervoor werkt. Voorbeeld: [b:6281229fdc]Stuur ons even een <A HREF="mailto:J. J. Jansen <e-mailadres@provider.nl>">mailtje...</A>[/b:6281229fdc] Dit werkt altijd, ongeacht ondersteuning van welk script dan ook. Edit: Ik realiseer me dat dit niet helemaal wordt bedoeld, want hiermee stel je een "kaal" e-mail bericht op.
  • Nadeel van die <form action=mailto:-methode is dat de emailclient op de pc van de bezoeker wordt gebruikt. Maar dan kun je wel weer naar ieder willekeurig e-mailadres mailen, wat waarschijnlijk weer niet kan als je een cgi-script van hccnet zou gebruiken, want ik denk niet dat hccnet e-mail relayed (van onbekend adres naar onbekend adres). Je kan de action van een form met een javascript instellen: [code:1:acb3f23c44] <form name="mailform" action="" enctype="text/plain"> ... </form> <script> function submitIt() { document.mailform.action='mailto:'+document.mailform.toaddr.value+'?subject='+document.mailform.subject.value; document.mailform.submit(); } </script> [/code:1:acb3f23c44] Ik heb het niet getest en ik zou er nog een check inbouwen om te kijken of emailadres en subject wel zijn ingevuld.
  • Ik geloof wel dat het dat is wat ik bedoel, wat Paulus opgeeft, maar hoe moet ik de invulvelden in het formulier (mailform) definieren of beschrijven, zodat document.mailform.toaddr.value en document.mailform.subject.value ook juist worden gelezen door het script Henny
  • <input name=toaddr> <input name=subject> Bedoel je dit?
  • Ik denk het wel. Voordat ik het ga uitproberen toch nog wat vragen: moet er in het hoofd geen method="post" (of iets anders staan) wat houdt enctype="text/plain" in, en waar in het formulier (code) roep ik de functie submitIt() aan bij mijn huidig formulier heb ik een knop waaronder de code type=submit Bedankt alvast
  • Ja, method=post moet er nog bij, was ik ff vergeten. Het versturen van mail met een form kun je evt. nog even lezen in de [url=http://www.handleidinghtml.nl/html/formulieren/formulieren03.html]Handleiding HTML[/url]. Het encryptietype voorkomt dat bepaalde tekens door codes worden vervangen en de regeleindes ook in het mailtje als regeleindes aankomen. [code:1:0dffae50db] <form name="mailform" method="post" action="" enctype="text/plain" onSubmit="submitIt();"> <input name=toaddr size=25> *<br> <input name=subject size=25> *<br> <input type=submit value=Verzenden> </form> <script> function submitIt() { if(document.mailform.toaddr.value==''||document.mailform.subject.value=='') { window.alert('Niet alle verplichte velden ingevuld.'); return false } else { document.mailform.action='mailto:'+document.mailform.toaddr.value+'?subject='+document.mailform.subject.value; return true; } } </script> [/code:1:0dffae50db]
  • [quote paulus] Nadeel van die <form action=mailto:-methode is dat de emailclient op de pc van de bezoeker wordt gebruikt.[/quote] (een heel groot) voordeel is dan echter wél, dat de afzender een eigen kopie krijgt in zijn postvak verzonden! nu klooi ik menigkeer met een screencapturer om mijn eigen bericht te bewaren (soms wel erg handig om een niet reagerend bedrijf een gegrond verwijt te kunnen maken)
  • Maar je hebt een pagina die afhankelijk is van een (goed geconfigureerde) e-mailtoepassing op de client, en dat is niet altijd het geval (zie elders op dit forum ;-)) en niet alle gebruikers hebben dan ook meteen door dat het daar aan ligt als ze een foutmelding krijgen. Beter is dus een formmailscript die een mailtje ook nog es naar de afzender stuurt (if($from=='derkdejong') :P )
  • yep, als dát zou kunnen... overtuig jij de upc´s van deze wereld...? :lol:
  • De meeste providers (dus ook hccnet) hebben kant en klare scripts op de server: [code:1:cf72c0661b]<FORM ACTION = "/cgi-bin/sendform.cgi" METHOD="POST"> <INPUT TYPE ="HIDDEN" NAME="TO" VALUE="EMAILADRES"> <INPUT TYPE ="HIDDEN" NAME="SUBJECT" VALUE="ONDERWERP"> <INPUT TYPE="submit" value="verzenden"> <INPUT TYPE="reset" value="wissen"> </FORM> [/code:1:cf72c0661b] Voorbeeldje staat op: http://www.hcchulp.nl/vraagenantwoord/vraag.cfm?id=463 Op de helpdesk pagina's van providers kan je heel veel vinden :D t.
  • 1: Het werkt wel met de script, die hiervoor werd gegeven en inderdaad geeft IE waarschuwingen dat je een e-mail verstuurt (met dus die e-mail client (een voordeel is tevens dat de ontvanger weet van wij de mail komt), alleen komen in het content veld van de e-mail teksten te staan van de input in het formulier zoals: subject=Een test voor deze link toaddr=henny.barelds@hccnet.nl Submit=Verzenden Dat wil ik natuurlijk niet, de geadresseerde moet een schone inhoud hebben met een korte opmerking en de link naar mijn website. Hoe doe ik dat in dit script? 2: ik heb het standaard antwoord formulier van HCCNet ook in gebruik <FORM action="/cgi-bin/sendform.cgi" method="post"> maar hier zou ik dan ook met een script de TO value moeten kunnen opgeven (is me nog niet gelukt). Het probleem hierbij blijft dan (lijkt me) dat de geadresseerde weer soortgelijke informatie krijgt als hierboven en dat is niet de bedoeling natuurlijk.
  • 1) De formulierveldnamen worden inderdaad in het mailtje erbij vermeld. Je kan overbodige velden eruit laten door die in een ander form te zetten, maar de body van het mailtje blijft de naam van de textarea bevatten: [code:1:7cb190a4ff] <form name="headerform" method="post" action="" onSubmit="submitIt();"> <input type=submit value=Verzenden><br> <input name=toaddr size=25> *<br> <input name=subject size=25> *<br> </form> <form name="mailform" method="post" action="" enctype="text/plain"> <textarea name=bericht cols=25 rows=4></textarea><br> </form> <script> function submitIt() { if(document.headerform.toaddr.value==''||document.headerform.subject.value=='') { window.alert('Niet alle verplichte velden ingevuld.'); return false } else { document.mailform.action='mailto:'+document.headerform.toaddr.value+'?subject='+document.headerform.subject.value; document.mailform.submit(); return false; } } </script>[/code:1:7cb190a4ff] 2) Als je <INPUT TYPE ="HIDDEN" NAME="TO" VALUE="EMAILADRES"> verandert in <INPUT NAME="TO" VALUE="EMAILADRES"> oftewel er een type=text van maakt, dan kun je het to-adres gewoon laten invullen. Het afzender-adres is dan wel de webserver van hccnet (of wat ie nu is, kan ik zo niet zien) en met replyen reply je dus niet naar degene die het mailtje op de site heeft ingetypt.
  • Even proberen duidelijk te zijn: Jouw oplossing (script) aangepast aan mijn situatie werkte goed op de harde schijf. Echter toen ik de zaak hooglaadde (nieuw voor uploaden) en uitprobeerde kreeg ik de volgende foutmelding: Method Not Allowed The requested method POST is not allowed for the URL /h.j.barelds/mailto.htm. -------------------------------------------------------------------------------- Apache/1.3.26 Server at home.hccnet.nl Port 80 Blijkbaar kun je alleen de volgende actie bij HCCNet doen: <FORM action="/cgi-bin/sendform.cgi" method="post"> Zo'n formulier werkt wel. Bekijk maar eens wat ik getest heb op mijn site: www.wereldfietsers.info (op de home pagina bijna onderaan: Tip een vriend (test). Ik weet dus niet of deze weg wel wil. Indien niet: Jammer. Ik ga nu punt 2 proberen. Bedankt alvast
  • Snap het niet helemaal. Het mailtje wordt gewoon verstuurd. Lijkt erop alsof headerform ook verstuurd wordt (terwijl ik een return false teruggeef) en dat die de foutmelding veroorzaakt. Probeer deze eens: [code:1:6e2490ddf8] function submitIt() { if(document.headerform.toaddr.value==''||document.headerform.subject.value==''||document.mailform.Van.value=='') { window.alert('Niet alle verplichte velden ingevuld.'); return false; } else { document.mailform.action='mailto:'+document.headerform.toaddr.value+'?subject='+document.headerform.subject.value; document.mailform.submit(); return false; window.close(); } } [/code:1:6e2490ddf8] Dan wordt het popupje gesloten na versturen.
  • Heb dit toegevoegd, maar zelfde resultaat, kijk maar even.
  • Ik test offline en dan zie ik dat de return false niet goed aan komt (ook bij niet invullen van velden wordt submit niet geannuleerd). Probeer dit es: onSubmit="[b:4cf4266acd]return[/b:4cf4266acd] submitIt();"

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.