Avatar billede playcs Nybegynder
29. august 2005 - 11:01 Der er 10 kommentarer

Mailto: link-generator - hvordan?

Hey venner!

Jeg står i denne uheldige situation at jeg er doven af og til.. :P Uheldigt eller heldigt - det kan diskuteres.. Nårh, men jeg har tænkt på en ting:

Jeg skal bruge et formular-script der laver et mailto-link udfra oplysninger jeg indtaster. Det burde være et par simple HTML-koder, men jeg ka sku ikke lige hitte ud af det! Mailto-linket skal præsenteres med de indtastede settings på siden når man har trykket "SEND".

F.eks. skal der være følgende formularer/felter:

Skrivbare felter:
Her skal der være 2 felter som udfyldes for at udgøre nogle nøgleord i en simpel sætning til body-teksten i den endelige email.

I den endelige email skal der i hoved-teksten (body) stå følgende:

"Ring lige til %NAVN% på telefon %TLF-NUMMER% når du har tid. Mvh. Simon"

%NAVN% og %TLF-NUMMER% skal altså kunne blive indtastet ved hjælp af 2 tekst-felter: "Navn" og "Telefonnummer".

Skjulte felter:
Subject (Ring lige til...)
Modtager (1 enkelt modtager - f.eks. modtager@muh.org)
Afsender (1 enkelt afsender - f.eks. afsender@muh.org)

Er alle med i hvad det er jeg vil have til at køre? Det håber jeg - synes jeg har forklaret det nogenlunde grundigt.

Jeg håber virkelig at I ka hjælpe en doven gris :P
På forhånd mange tak.

//Testrup
Avatar billede roenving Novice
29. august 2005 - 11:15 #1
Er det ikke bare denne, du skal kende: http://std.chbs.dk/html-4.01/mailto.php !-)
Avatar billede playcs Nybegynder
29. august 2005 - 11:39 #2
roenving -> Tjoh - både og! Fordi jeg kan ikke lave de formularer der genererer selve linien/linket. Jeg kunne jo godt nøjes med at lave et link med en masse parametre - men så skal jeg ind og lave rundt i linket HVER eneste gang jeg skal skrive et nyt telefonnummer eller body-tekst. Det er ihvertfald ikke den løsning jeg ønsker.
Avatar billede roenving Novice
29. august 2005 - 12:01 #3
Jamen, hvis du ved hvordan linket skal se ud, kan man jo bare sætte de relevante værdier ind i linket:

<form action="" method="post" onsubmit="return makeLink(this);">
<input type="hidden" name="subject" value="Ring lige til ...">
<input type="hidden" name="reciever" value="modtager@muh.org">
<input type="hidden" name="sender" value="afsender@muh.org">
Anden modtager: <input type="text" name="altReciever"><br>
Navn: <input type="text" name="navn"><br>
Tlf.nummer: <input type="text" name="phone"><br>
<input type="submit" value="Send">
</form>

<script type="text/javascript">
function makeLink(f){
  var mailstring = "mailto:";
  mailstring += f.reciever.value + (f.altReciever.value != ""?","+f.altReciever.value:"");
  mailstring += "?subject=" + escape(f.subject.value);
  mailstring += "&amp;body=" + escape("Ring lige til " + f.navn.value + " på telefon " + f.phone.value + ", når du har tid. Mvh. Simon");
  f.action = mailstring;
  return true;
}
</script>

-- og øeh, hvad skal du med afsender-feltet, for det genereres jo af din email-klient ?-)
Avatar billede playcs Nybegynder
29. august 2005 - 12:38 #4
Hey roenving,

Tusinde tak for dit fyldige svar. Nu ligger det sådan at det kunne være bedst, hvis linket ikke blev "kørt" men at linket bare bliver skrevet så man selv kan trykke på det.

Ellers virker scriptet fint, lige bortset fra at den ikke får body-teksten med. Den vedhæfter istedet en fil der hedder POSTDATA.ATT med koden inde i sig selv. Desuden kommer %20-tegnene med i subjectet.. :) Det tror jeg tilgengæld selv løser det hele hvis bare det generede link bliver skrevet istedet for "kørt".

Mvh. Simon
Avatar billede roenving Novice
29. august 2005 - 12:43 #5
Så f.eks.

</form>

<a href="#" id="mitLink" disabled>Klik for at maile</a>

<script type="text/javascript">
function makeLink(f){
  var mailstring = "mailto:";
  mailstring += f.reciever.value + (f.altReciever.value != ""?","+f.altReciever.value:"");
  mailstring += "?subject=" + escape(f.subject.value);
  mailstring += "&amp;body=" + escape("Ring lige til " + f.navn.value + " på telefon " + f.phone.value + ", når du har tid. Mvh. Simon");
  var lnk = document.getElementById('mitLink')
  lnk.href = mailstring;
  lnk.disabled = false;
  return false;
}
</script>
Avatar billede playcs Nybegynder
29. august 2005 - 14:13 #6
Hey Roenving,

Tak for svaret. Nu mangler jeg én ting. Jeg har sat en document.write på nederst. Dette gør at jeg får vist linket. Nu mangler jeg bare at få det lavet til et link automatisk. Dette er min kildekode:
______________________________________________

<html>

<head>
<form action="" method="post" onsubmit="return makeLink(this);">
<input type="hidden" name="subject" value="Ring lige til ...">
<input type="hidden" name="reciever" value="simon@testrup.com">
<input type="hidden" name="sender" value="spt@octopus.dk">
<title>Anden modtager</title>
</head>

<body>

Anden modtager: <input type="text" name="altReciever"><br>
Navn: <input type="text" name="navn"><br>
Tlf.nummer: <input type="text" name="phone"><br>
<input type="submit" value="Send">
</form>

<script type="text/javascript">
function makeLink(f){
  var mailstring = "mailto:";
  mailstring += f.reciever.value + (f.altReciever.value != ""?","+f.altReciever.value:"");
  mailstring += "?subject=" + escape(f.subject.value);
  mailstring += "&amp;body=" + escape("Ring lige til " + f.navn.value + " på telefon " + f.phone.value + ", når du har tid. Mvh. Simon");
  f.action = mailstring;
  document.write(mailstring);
  return true;
}
</script>
</body>

</html>
Avatar billede roenving Novice
29. august 2005 - 14:24 #7
Du har mange alvorlige fejl i din html, og ellers skal du bare gøre, som jeg har vist kombineret mellem 29/08-2005 12:01:37 og 12:43:04 !-)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Tomt dokument</title>
</head>
<body>
<form action="" method="post" onsubmit="return makeLink(this);">
<input type="hidden" name="subject" value="Ring lige til ...">
<input type="hidden" name="reciever" value="modtager@muh.org">
<input type="hidden" name="sender" value="afsender@muh.org">
Anden modtager: <input type="text" name="altReciever"><br>
Navn: <input type="text" name="navn"><br>
Tlf.nummer: <input type="text" name="phone"><br>
<input type="submit" value="Send">
</form>

<a href="#" id="mitLink" disabled>Klik for at maile</a>

<script type="text/javascript">
function makeLink(f){
  var mailstring = "mailto:";
  mailstring += f.reciever.value + (f.altReciever.value != ""?","+f.altReciever.value:"");
  mailstring += "?subject=" + escape(f.subject.value);
  mailstring += "&amp;body=" + escape("Ring lige til " + f.navn.value + " på telefon " + f.phone.value + ", når du har tid. Mvh. Simon");
  var lnk = document.getElementById('mitLink')
  lnk.href = mailstring;
  lnk.disabled = false;
  return false;
}
</script>
</body>
</html>

-- så vil linket altid være der, men være disabled indtil du trykker på submit-knappen (hvis du bruger nogle browsere, for ikke alle understøtter disabling af a-tags !-)
Avatar billede playcs Nybegynder
31. august 2005 - 13:35 #8
roenving,

Nu virker det hele. Det eneste jeg mangler nu er en lille detalje. Ser du, jeg kunne godt tænke mig at have 2 linieskift efter "Når du har tid." og før "Mvh. Simon". Du ved - ligesom man skriver i en "rigtig" email. Hvordan gøres dette?

Mvh.

PlayCS (Testrup)
Avatar billede playcs Nybegynder
31. august 2005 - 13:47 #9
Ah, nevermind.. Jeg smed et par "\n" ind imellem de 2 sætninger.. :]

Thanks.
Avatar billede roenving Novice
01. september 2005 - 09:32 #10
Velbekomme '-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester