Comment envoyer un e-mail avec JavaScript sans ouvrir le client de messagerie?
Je suis en train d'écrire une page HTML avec un bouton d'enregistrement qui devraient juste silencieusement envoyer un e-mail sans ouvrir le client de messagerie local. Voici mon code HTML:
<form method="post" action="">
<input type="text" id="email_address" name="name" placeholder="Enter your email address..." required>
<button onclick="sendMail(); return false">Send Email</button>
</form>
... et voici mon code JavaScript:
<script type="text/javascript">
function sendMail() {
var link = 'mailto:[email protected]?subject=Message from '
+document.getElementById('email_address').value
+'&body='+document.getElementById('email_address').value;
window.location.href = link;
}
</script>
Le code ci-dessus fonctionne... mais il ouvre le local client de messagerie. Si je supprime le return
instruction dans le onclick
attribut comme ceci:
<form method="post" action="">
<input type="text" id="email_address" name="name" placeholder="Enter your email address..." required>
<button onclick="sendMail()">Send Email</button>
</form>
... puis l'e-mail n'est pas envoyé à tous. Ai-je raté quelque chose?
Toute aide serait reeeally apprécié 🙂
source d'informationauteur j3d
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'un support côté serveur pour y parvenir. Fondamentalement, votre formulaire doit être affiché (AJAX est très bien) pour le serveur et que le serveur doit se connecter via le protocole SMTP pour certains fournisseurs de messagerie et envoyer l'e-mail.
Même si c'était possible d'envoyer des e-mails directement à l'aide de JavaScript (c'est à partir de l'ordinateur de l'utilisateur), l'utilisateur doit toujours se connecter à certains serveurs SMTP comme gmail.com), de fournir des informations d'identification SMTP, etc. C'est normalement pris en charge sur le serveur-côté (à votre demande), qui connaît ces informations d'identification.
Vous ne pouvez pas provoquer le navigateur de l'utilisateur pour envoyer des emails en mode silencieux. Ce serait un horrible problème de sécurité que les sites web pourraient utiliser leur système de relais de spam et/ou à la récolte de leur adresse e-mail.
Vous avez besoin de faire une requête HTTP à un serveur de processus côté (écrit dans la langue de votre choix) qui envoie le mail à partir de votre serveur.
Directement À Partir De Client
Envoyer un e-mail à l'aide de JavaScript
Comme celui -
https://medium.com/design-startups/b53319616782
Remarque: Gardez à l'esprit que votre clé API est visible par tous, de sorte que tout utilisateur malveillant peut utiliser votre clé pour envoyer des e-mails qui peuvent manger en haut de votre quota.
Indirecte par l'intermédiaire de Votre Serveur - secure
À surmonter les au-dessus de la vulnérabilité, vous pouvez modifier votre propre serveur pour envoyer l'e-mail après une session d'authentification.
node.js - https://www.npmjs.org/package/node-mandrill
et ensuite utiliser $.l'ajax client pour appeler votre e-mail de l'API.
Vous ne pouvez pas le faire avec un script côté client seulement... vous pourriez faire un appel AJAX vers un serveur de code côté qui va envoyer un e-mail...
Il faut un certain type de backend cadre d'envoyer l'e-mail. Cela peut se faire via PHP/ASP.NET, ou avec le client de messagerie local. Si vous souhaitez que l'utilisateur ne vois rien, la meilleure façon est de puiser dans ces par un appel AJAX vers un autre send_email fichier.
Vous devez le faire directement sur un serveur. Mais la meilleure façon est d'utiliser PHP. J'ai entendu dire que PHP a un code spécial qui peut envoyer un e-mail directement sans ouvrir le client de messagerie.
Je pense que vous pouvez utiliser smtpjs.com