MAILTO in JavaScript?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

ich hab mal einach mit einem selbst gebastelteten Input-"Formular" gespielt.
In der die input Felder geben ein default vor.

Der eigentlichemailto:: wird dynamisch erzeugt.

natürlich ist es durchaus möglich die defaults auch per Javascript festzulegen theoretisch sogar "verschüsselt" gegen Email-Suchbots...

Das würde jedoch das ganze zu unübersichtlich gestalten .

(bei bedarf nochmal nachfragen)

demo.html:

<html>
<body>

<h3>create a dynamic Mailto</h3>

<label for="recipend">Empfänger:</label><input type="text" id="recipend" value="Donalt@Duck.quak"><p>
<label for="bcc">BCC</label><input type="text" id="bcc" value="Esel@donkey.ia"><p>
<label for="cc">CC:</label><input type="text" id="cc" value="kitty@Duck.quak,Dagobert@Duck.quak"><p>
<label for="subject">Betreff:</label><input type="text" id="subject" value="Some text..."><p>

<p>Click the "Try it" button to get the text in the text field.</p>

<button onclick="makeMailtoLink()">create MailTo Link</button>

<p id="demo">Email: versteckt</p>

<script>
function makeMailtoLink() {
    var x='<a href="mailto:' 
        x =x+document.getElementById("recipend").value;
        
        if (document.getElementById("cc").value != '')  x = x + '?cc='+ document.getElementById("cc").value;
        if (document.getElementById("bcc").value != '') x = x + '&bcc='+ document.getElementById("bcc").value;
        if (document.getElementById("subject").value != '') {
              //space und sonderzeichen in uricode umwandeln
            x = x + '&subject=' + encodeURIComponent(document.getElementById("subject").value);
        } 
        
        x = x + '" target="_top">Mail me!</a>'
    document.getElementById("demo").innerHTML = x;
}
</script>

</body>
+</html>


Erzesel  07.12.2018, 12:48

totale Heimlichtuerei:

die im html definierten Emailadressen sind ein Köder für Bots.

im Script-bereich werden die eigendlichen defaultaddressen so definiert, das bots sie nicht als solche erkennen. $placeholder$ wird erst beim "schreiben" nach @ "übersetzt"

<html>
<body>
...wie oben
<script>
document.getElementById("recipend").value='muh$placeholder$kuh.mu'.replace(/\$placeholder\$/g,'@');
document.getElementById("cc").value='winny$placeholder$puh.br,balu$placeholder$dschungl.bk'.replace(/\$placeholder\$/g,'@');
document.getElementById("bcc").value='heidie$placeholder$kuh.mu'.replace(/\$placeholder\$/g,'@');

function makeMailtoLink() {
    ...wie oben
}
</script>

</body>

0

Vermutlich willst Du ein Formular, in das der User Daten eingibt und das dann abgeschickt wird, wenn der User auf "Senden" klickt?

<!doctype html>
<title>Mail abschicken</title>
<script>
function abschicken() {
   var link = "mailto:deineAdresse@example.com" +
              "?subject=" + escape(document.getElementById('subject').value) +
              "&body=" + escape(document.getElementById('mailtext').value)
   window.location.href = link;
}
</script>
<p><input id="subject" placeholder="Betreff eintragen"></p>
<p><textarea id="mailtext">Hier der Text ...</textarea></p>
<p><button onclick="abschicken(); return false">Abschicken</button></p>

Alex