C'est un peu déroutant à expliquer, alors supportez-moi ici ...
Je veux mettre en place un système dans lequel un utilisateur peut envoyer des e-mails basés sur des modèles via mon site Web, sauf qu'ils ne sont pas réellement envoyés à l'aide de mon serveur - il ouvre simplement leur propre client de messagerie local avec un e-mail prêt à l'emploi. L'application remplirait le corps de l'e-mail avec des variables prédéfinies, pour éviter que l'utilisateur n'ait à le taper lui-même. Ils peuvent ensuite modifier le message comme ils le souhaitent, s'il ne correspond pas exactement à leurs objectifs.
Il y a un certain nombre de raisons pour lesquelles je veux qu'il passe par le client de messagerie local de l'utilisateur, donc faire envoyer l'e-mail par le serveur n'est pas une option: il doit être à 100% côté client.
J'ai déjà une solution principalement fonctionnelle en cours d'exécution, et je publierai les détails à ce sujet comme réponse, je me demande s'il existe un meilleur moyen?
la source
Réponses:
La façon dont je le fais maintenant est essentiellement comme ceci:
Le HTML:
Le Javascript:
Ceci, étonnamment, fonctionne plutôt bien. Le seul problème est que si le corps est particulièrement long (quelque part plus de 2000 caractères), il ouvre simplement un nouvel e-mail mais il ne contient aucune information. Je soupçonne que cela serait lié au dépassement de la longueur maximale de l'URL.
la source
Voici comment procéder en utilisant jQuery et un "élément" sur lequel cliquer:
Ensuite, vous pouvez obtenir votre contenu soit en l'alimentant à partir des champs d'entrée (c'est-à-dire en utilisant
$('#input1').val()
ou par un script côté serveur avec$.get('...')
.la source
Vous n'avez besoin d'aucun javascript, vous avez juste besoin que votre href soit codé comme ceci:
la source
href
valeur lorsque les adresses sont choisies. Si un message est nécessaire pour obtenir les adresses e-mail au moment où le clic se produit, cela ne fonctionnera probablement pas.Qu'en est-il d'avoir une validation en direct sur la zone de texte, et une fois qu'elle dépasse 2000 (ou quel que soit le seuil maximal), affichez `` Cet e-mail est trop long pour être complété dans le navigateur, s'il vous plaît
<span class="launchEmailClientLink">launch what you have in your email client</span>
''Auquel j'aurais
et jQuery ceci dans votre onDomReady
la source
Vous pouvez utiliser ce service gratuit: https://www.smtpjs.com
<script src="https://smtpjs.com/v2/smtp.js"></script>
la source
Si cela va simplement ouvrir le client de l'utilisateur pour envoyer l'e-mail, pourquoi ne pas le laisser le composer là aussi. Vous perdez la possibilité de suivre ce qu'ils envoient, mais si ce n'est pas important, collectez simplement les adresses et le sujet et affichez le client pour permettre à l'utilisateur de remplir le corps.
la source
Le problème avec l'idée même est que l'utilisateur doit avoir un client de messagerie, ce qui n'est pas le cas s'il se fie aux webmails, ce qui est le cas de nombreux utilisateurs. (au moins, il n'y a pas eu de changement pour rediriger vers ce webmail lorsque j'ai enquêté sur le problème il y a une douzaine d'années).
C'est pourquoi la solution normale est de s'appuyer sur php mail () pour l'envoi d'e-mails (côté serveur, donc).
Mais si de nos jours "client de messagerie" est toujours défini, automatiquement, potentiellement sur un client de messagerie Web, je serai heureux de le savoir.
la source
Envoyez la demande à mandrillapp.com :
la source