Je veux envoyer un email à HTML5. Je ne veux pas forcer l'utilisateur à ouvrir un client de messagerie, je souhaite envoyer le courrier électronique directement à partir de la page Web. P>
sur une note latérale, y a-t-il un moyen de le faire dans JavaScript? Je sais que ce n'est probablement pas possible, je me demandais simplement s'il y a des moyens rusés pour le retirer complètement via le client. P>
6 Réponses :
Ce n'est pas possible. P>
Au lieu de cela, vous devez utiliser AJAX pour envoyer le courrier électronique sur le serveur. P>
Vous ne pouvez pas le faire purement via le code côté client. P>
Vous pouvez le faire avec un rappel de serveur, AJAX. P>
En bref non non pas directement du client (à l'exclusion des hacks). P>
Vous pouvez apporter un appel AJAX à votre serveur et envoyer un email. P>
Le problème de le faire à partir du client et n'utilisez pas d'un client de messagerie est compliqué. Par exemple, la plupart des ISP de consommation ont leur propre relais SMTP que tout le courrier sortant sur le port 25 doit être transmis. Votre site Web aura du mal à obtenir les informations appropriées pour le faire. Deuxièmement, le WebBrowser ne comprend pas le protocole SMTP et l'objet XMLHTTTPRequest non plus. P>
Donc, si vous êtes un pirate ninja, vous pouvez peut-être comprendre une autre chose avec ActiveX, Java Applets ou Flash, mais vous devriez fondamentalement fonctionner directement avec une prise TCP et émettre des commandes de protocole SMTP sur cette prise. p>
Il y a beaucoup d'obstacles à surmonter, en fait, je ne sais pas comment le faire, mais où il y a y aura une façon. Ne soyez pas surpris que si vous trouvez un piratage, il peut être branché rapidement par les principaux vendeurs de navigateur. P>
Vous pouvez mettre une référence à Adobe Reader dans votre liste Ninja. Il est tellement rempli de trous je suis sûr que quelqu'un pouvait déterminer comment pwn les clients courriel ...;)
Merci pour les pointeurs sur la chaude, cela avait été un moment depuis que j'avais regardé Webockets.
Pas de problème homme, c'était un appel de réveil pour moi en fait. Avant de continuer à lire à leur sujet, j'avais la même perception d'eux.
Une autre possibilité non standard que je pense pourrait être d'utiliser les capacités de sockets de Firefox avec Github.com/brettetz9/asyouwish a> permettant d'utiliser JavaScript tout le chemin (bien que Firefox uniquement et obligeant les utilisateurs à installer le complément).
Vous ne pouvez pas envoyer l'e-mail à l'aide de JavaScript seul. Vous aurez besoin d'une forme de traitement latéral du serveur (PHP, ASP, etc.) pour envoyer le courrier électronique réel. P>
Il y a un bon tutoriel sur la mise en place d'un formulaire Ajax ici: http: // net. tutsplus.com/tatudials/javascript-ajax/submit-a-form-without-page-refresh-utilisant-jquery/ p>
Il n'inclut pas le PHP (ou ASP, etc.) pour l'envoi du courrier électronique, mais il existe de nombreux tutoriels pour savoir comment envoyer un courrier électronique à l'aide de PHP. P>
oui c'est possible. Mais pas pratique ** Voir Modifier 2 P>
Certaines implémentations HTML5 comprennent la prise en charge de WebSockets, essentiellement une connexion TCP à un serveur. Superposition du code SEND / RECV et vous pouvez créer un client SMTP. P>
En fait, il semble que Nodejs et Websocket Support a été utilisé pour implémenter un client SMTP . .. voyez ici ... p>
Vous auriez toujours besoin d'un serveur SMTP, d'un nom d'utilisateur, d'un mot de passe, de etc., comme un client SMTP standard afin de fonctionner. P>
Utiliser cette méthode de spam serait improbable car votre fournisseur SMTP pourrait facilement annuler votre compte. P>
=== EDIT === P>
En réalité, vous pouvez créer un serveur moins de version, il faudrait également implémenter des recherches de noms de noms pour rechercher des enregistrements MX. Il est toutefois de chance que des serveurs SMTP décents maintiennent des tables noire de la liste noire et la connexion d'une adresse IP aléatoire verraient le courrier électronique communément marqué comme spam. P>
Parlez également à des serveurs SMTP nécessitant des connexions de courrier sécurisé pourraient être difficiles. P>
Comme d'autres personnes ont mentionné, il existe des utilisations malveillantes pour cette mise en œuvre comme envoi de spam. Je suppose que cela est possible que vous puissiez être un créateur HTML5 Botnet, mais j'aurais pensé que vous en sauriez la majeure partie de cela :) p>
=== EDIT 2 === P>
Comme marque à RAMP51 mentionné, la prise de main est requise avec WebSockets. C'était quelque chose que je n'étais pas au courant. Vous devriez pirater l'implémentation de Websocket pour contourner la course. p>
La bonne voie est de faire en avant le serveur Web. P>
Donc, essentiellement, tournez-vous le client en un serveur SMTP sortant? On dirait que cela pourrait fonctionner. Mais, vous n'avez pas besoin de privilèges spéciaux pour avoir accès aux enregistrements MX? Je suppose que vous devriez simplement gratter un site qui leur fournit. Je suis intéressé - où pensez-vous que je devrais commencer?
La recherche de nom de domaine n'est qu'un autre protocole pouvant utiliser WebSockets. Vous pouvez également mettre en œuvre cela aussi. Quelqu'un pourrait déjà l'avoir fait ... github.com/skampler/ndns
Je serais enclin à être d'accord avec vous s'il n'y avait pas une poignée de main de bande Web requise par le protocole, si vous regardez la poignée de main du protocole en haut de cet article EN.Wikipedia.org/wiki/websockets Le protocole SMTP actuel ne le supporte pas, vous dépendez donc du serveur SMTP que vous vous connectez à, d'une manière ou d'une autre encapsulé par quelque chose qui peut satisfaire cette poignée de main. De plus, tous les navigateurs qui ont été supprimés pour le soutenir, ont chuté leur soutien en raison de problèmes de sécurité. Mettez des sockets simples, Websocket et TCP ne sont pas créés égaux.
Non activé par défaut sur la plupart des navigateurs "décents" qui impliqueraient cette fonctionnalité
Alors, vaut-t-il une chance? Je pense que cela vaut vraiment la peine de faire si elle couvre la plupart ou au moins la moitié des navigateurs populaires.
Vous ne pouvez pas créer une version sans serveur, car la plupart des ISPS Block Port 25.
Non, ne perdez pas votre temps. Toute solution que vous proposez sera fermée par un fournisseur de navigateur qui branche le trou que vous avez trouvé, et vous devrez simplement trouver un autre moyen de contourner le système. Si le travail est trop difficile que vous pourriez utiliser le mauvais outil, trouvez le bon outil.
Ne vous méprenez pas, je suis d'accord, vous devriez utiliser le bon outil pour le travail. L'envoi de courrier électronique basé sur un serveur est plus facile des ordres de grandeur.
Je n'ai pas regardé le porte-main, mais quelque chose comme ça ferait certainement des choses difficiles à mener à bien ma suggestion
Wow .... Il m'a corrigé et vous a indiqué. Je suppose que je ne devrais plus être surpris.
"Certaines implémentations HTML5 incluent la prise en charge des webockets, essentiellement une connexion TCP à un serveur. Superposez-y un code SEND / RECV et vous pouvez créer un client SMTP." - Pas vrai. Les skockets ne sont pas des prises brutes.
"En fait, il semble que la prise en charge de NODEJS et de WebSocket a été utilisée pour implémenter un client SMTP" - Non. Vous pouvez créer un serveur HTTP dans Node.js qui était également un client SMTP, puis communiquer avec elle à l'aide de web / sockets ... ou vous pourrait simplement utiliser HTTP régulier et faire une demande AJAX. Websockets sont inutiles pour cela. Leur avantage est qu'ils permettent aux messages initiés du serveur qui ne sont pas utiles pour ce problème.
"Vous devriez avoir pirater la mise en œuvre de la bande Web pour contourner la pratique" - Non. Vous devez utiliser quelque chose qui n'est pas des websckets. Il pourrait être possible de le faire avec une extension de navigateur, mais je ne serais pas surpris si vous auriez besoin d'eux pour installer un navigateur personnalisé!
Envoyer un e-mail directement à partir de JavaScript
de la ressource officielle: P>
Comment ça marche? P> blockQuote>
Connectez votre service de messagerie Choisissez parmi une grande variété de services de messagerie. Nous soutenons les deux Services de messagerie transactionnelle (Mailgun, Mailjet, Mandrill, SendGrid, Amazon Ses and Ses and SeconMark) et Services de messagerie personnels (AOL, Gmail, FastMail, iCloud, Mail.ru, Outlook, Yahoo, Yandex et Zoho). P> LI >
Créer des modèles de messagerie Choisissez dans une liste de nos conceptions de modèle ou construisez-vous facilement le vôtre. Les modèles sont paramétrés, de sorte que vous puissiez les personnaliser davantage via JavaScript. P> LI>
Envoyer un e-mail avec notre API JavaScript Ajoutez notre SDK Javscript et commencez à envoyer des e-mails! P> LI> ol>
Voici quel appel typique ressemble à: p>
xxx pré> Toutes les API existantes nécessitent l'utilisation d'une clé secrète, que vous ne voudrez évidemment pas partager dans votre Code frontal. Service spécifié surmonter cela en permettant d'envoyer uniquement des modèles prédéfinis, donc pour une fonctionnalité "Partager avec une personne" que vous créeriez un modèle appelé "Partager". P> P>
"De la ressource officielle" - le terme "officiel" ici semble impliquer une sorte d'autorité de normes Web. Ce que vous faites ici consiste à utiliser un service tiers qui sera (en échange de leur donner le mot de passe à votre serveur SMTP - et rien d'autre, ce qui leur est autre que pour la collecte d'adresses électroniques et d'autres informations de marketing sur vous et votre Visiteurs?) - Envoyez un e-mail si vous leur faites une demande Ajax. C'est vraiment la même réponse que Mark à Ramp51 a donné, mais recommandant un service tiers.
Pourrait être malveillant, votre navigateur Web pourrait être utilisé pour envoyer du spam si cela a été possible.
D'accord. Les fournisseurs de navigateurs essaieraient de l'empêcher à tout prix.
Je pense que c'est possible. Voir le post ci-dessous. Il pourrait être utilisé par malveillance, mais je ne pense pas que les vendeurs de navigateur puissent nécessairement l'arrêter. Pratiquement les goûts de Google feront la liste noire d'un site comme des logiciels malveillants si elle essayait de configurer un botnet SMTP à l'aide de ces techniques.
Frame de sécurité: Si le serveur SMTP que vous connectez avec l'authentification de mot de passe nécessite, vous devriez alors exposer ce mot de passe (et son nom d'utilisateur correspondant) au client. C'est à dire. au navigateur Web de votre utilisateur. Si votre utilisateur faisait attention et extrait votre mot de passe, ils pourraient utiliser votre serveur SMTP pour envoyer du spam jusqu'à réinitialiser votre mot de passe. Ils pourraient même être en mesure d'utiliser le mot de passe et le nom d'utilisateur sur Changer i> le mot de passe sur le serveur, vous enfermer. EDIT: Sauf si votre serveur SMTP prend en charge les jetons, comme Smtpjs.com dit qu'il le fait.