Les liens Mailto ne font rien dans Chrome mais fonctionnent dans Firefox?


149

Il semble que les mailtoliens que nous intégrons dans notre site Web ne font rien dans Chrome, bien qu'ils fonctionnent dans Firefox.

Exemple simple ici: http://jsfiddle.net/wAPNH/

<a href='mailto:test@test.com'>hi this is a test</a>

Avons-nous besoin de faire quelque chose de spécial pour activer les liens de messagerie dans Chrome?


Fonctionne bien pour moi, avez-vous des extensions Chrome ou quelque chose qui pourrait interférer?
Ryan Kempt

Quelle application s'ouvre dans FF lorsque vous cliquez sur le lien mailto?
mohkhan

1
J'ai essayé dans Chrome 28 et ce lien JSfiddle a bien fonctionné pour moi (fonctionnant sur un mac et ouvert mail.app très bien).
sasbury

J'ai trouvé que faire mailto:test%40test.comest plus cohérent
Pro Q

Réponses:


128

Ceci est spécifique aux paramètres du navigateur, c'est-à-dire qu'il se comportera différemment selon les paramètres du navigateur de l'utilisateur. L'utilisateur peut modifier le mailto:comportement des liens dans Chrome en visitant chrome://settings/handlers, ouChrome Settings->Content Settings->Manage Handlers...

Si «e-mail» ne figure pas sur cette page, consultez cette réponse pour savoir comment procéder.


7
super, quel est le comportement par défaut?
Crashalot

8
Je crois que la valeur par défaut est d'exécuter le client de messagerie sur l'ordinateur. Je sais qu'au travail, il fonctionnera thunderbird; s'ils ont Outlook installé, il peut exécuter Outlook, etc. Personnellement, il n'a pas exécuté gmail par défaut, j'ai dû le configurer de cette façon.
kennypu

2
@Crashalot non. un lien mailto est un lien mailto
kennypu

48
Ouvrir chrome: // settings / handlers me donne une boîte vide sans option pour ajouter un gestionnaire. On dirait que Chrome est gravement cassé ici: il n'ouvrira tout simplement pas mon mailer configuré (Thunderbird) en réponse à un lien mailto.
Peter Flynn

3
@PeterFlynn il semble que Chrome essaie maintenant d'exécuter le client de messagerie par défaut installé sur l'ordinateur. Assurez-vous que thunderbird est défini comme client de messagerie par défaut. Voir ce lien pour savoir comment faire cela: kb.mozillazine.org/Default_mail_client#Windows
kennypu

108

Ceci est dû au fait que Chrome gère le mailto de manière différente. Vous pouvez aller à chrome://settings/handlerset vous assurer que c'est le gestionnaire par défaut. Dans votre cas, ce ne sera aucun (c'est-à-dire non listé). Allez maintenant sur gmail.com. Vous devriez voir quelque chose comme ça lorsque vous cliquez sur le bouton à côté du bouton de signet.

Définir mailto dans Chrome

Si vous souhaitez ouvrir tous les liens de messagerie via Gmail, définissez "Utiliser Gmail". Maintenant, lorsque vous cliquez sur le bouton mailto, chrome s'ouvre automatiquement dans gmail.


1
Cela a fonctionné pour moi, sans d'abord visiter gmail et en cliquant sur "autoriser gmail ...", il n'y avait pas de gestionnaire dans les paramètres à
modifier-

1
Gmail? Qu'est-ce que Gmail a à voir avec cela? Je veux que Chrome ouvre Thunderbird au lieu d'ouvrir une nouvelle instance de Chrome.
Peter Flynn

Accédez à chrome: // settings / handlers pour définir votre gestionnaire.
Rajesh Hegde

1
@ Gi1ber7 Vous pouvez accéder à chrome: // settings / handlers pour modifier le paramètre mailto.
Rajesh Hegde

1
je n'ai aucun gestionnaire là-bas. wth
Boris Gafurov

43

Dans mon cas, chrome était associé en tant que protocole MAILTO dans Windows 10 .

J'ai changé l'association vers Outlook en utilisant "Programmes par défaut" -> "Associer un type de fichier ou un protocole à un programme" .

MAILTO est bien en dessous de la liste. Cette capture d'écran peut vous aider.

entrez la description de l'image ici


D'accord, mais que se passe-t-il si nous voulons qu'il s'ouvre sur un site Web spécifique plutôt que dans une application?
Kyle Delaney

2
En utilisant Windows 10, j'ai dû sélectionner Outlook dans la liste de gauche avant de pouvoir voir la case à cocher du protocole «mailto» dans la liste de droite.
Tom McDonald

15

J'ai également rencontré ce problème et je l'ai finalement retrouvé au fait que mon lien se trouvait dans une iframe et que mon application Web utilise https. Chrome le bloquait à cause de cela (Chrome ouvrirait d'autres liens mailto en dehors de l'iframe).

Dans le lien mailto ne fonctionnant pas dans un cadre chrome (sur https) , kendsnyder a mentionné simplement changer

<a href="mailto:...">email</a>

à

<a target="_top" href="mailto:...">email</a>

Voila, problème résolu. Ce lien mailto fonctionne désormais dans tous les navigateurs.


Je suis curieux de savoir si l'utilisation target=_parent"fonctionnerait également. Bonne trouvaille.
Termato

Merci. A très bien fonctionné. @Termato, cela fonctionnerait probablement si c'était le cadre "supérieur". Utilisez simplement target="_top"ou si vous utilisez JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe

Maintenant, target = "_ top" ne fonctionne pas non plus :( toute autre solution de contournement. J'ai essayé avec "_parent" et cela ne fonctionne pas aussi.
Vijay Mishra

target="_top"travaillé pour moi dans un iframe dans Google Chrome
John Doherty

@Basj fonctionne bien sur mon (dernier) Chrome. Avez-vous un client de messagerie par défaut sur votre ordinateur?
Thomas Ayoub

13

Vous devez autoriser gmail à installer le gestionnaire de service pour le protocole mailto:

1) Accédez à Gmail

2) cliquez sur l'icône du petit losange à la fin de la barre d'adresse (capture d'écran)

3) profiter

entrez la description de l'image ici


je ne vois rien de tel
Boris Gafurov

@BorisGafurov Votre version de Chrome est-elle à jour?
jj_

7

Vous pouvez essayer d'aller à chrome://settings/handlerset définir la valeur pour mailto:à noneau lieu degmail


7
Idem ici: chrome 27 n'a pas de gestionnaire pour mailto défini ou quoi que ce soit d'autre d'ailleurs ..wierd, peut-être une nouvelle sécurité par défaut dans chrome. Dans FF, j'ai dû l'ajouter manuellement aussi.
Robert Hoffmann

Pareil ici. Chrome est fondamentalement cassé par rapport aux liens mailto
Peter Flynn

6

Correction qui a fonctionné pour moi puisque mes gestionnaires de protocole étaient vides

https://productforums.google.com/forum/#!topic/gmail/CQMCGRvyhCM

Voir la réponse de redfish43, pour résumer

Pour mailto: - Assurez-vous que vous êtes connecté à Gmail et que la fenêtre active est votre page Gmail principale (sinon rien ne se passera). - Copiez / collez ceci dans la barre d'adresse:

javascript:navigator.registerProtocolHandler("mailto","https://mail.google.com/mail/?extsrc=mailto&url=%s","Gmail")

Ajoutez à nouveau le javascript: à l'avant si nécessaire, car lorsque vous l'avez collé, Chrome a probablement tout coupé avant et y compris les deux points. Puis appuyez sur Entrée.

Lorsque la fenêtre contextuelle s'ouvre, cliquez sur "Autoriser"


Et pour outlook.com?
Kyle Delaney


2

J'ai trouvé cette réponse sur un forum Google qui m'a fonctionné. Dans les notes de bas de page, il mentionne «googleapps.exe» - je ne l'ai pas et cela fonctionne toujours. Suivez simplement les instructions ci-dessous, mais fermez toutes les applications avant d'apporter des modifications au registre. J'ai également enregistré la valeur existante au cas où cela ne fonctionnerait pas.


Tapez simplement "exécuter" dans votre barre de recherche, puis tapez "regedit" puis accédez à:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\mailto\shell\open\command\ 

modifier (double-cliquer) "(par défaut)" pour:

"C:\Program Files (x86)\Google\Google Apps\googleapps.exe" --domain= --mailto.google.com="%1" 

C'est tout! Enregistrez-le et fermez-le et cela devrait fonctionner à merveille!

L'utilisation de cette méthode vous évite d'avoir à télécharger le GMail Notifier, dont ceux d'entre nous qui ont GTalk n'ont pas besoin car il le fait pour nous. Je ne sais pas pourquoi Google ne peut pas résoudre ce problème facilement. J'ai entendu dire que Google Apps n'a pas été entièrement testé sur Windows 7, mais il est évident que la même balise fonctionne avec.

Remarque: la seule chose avec cette solution est que vous devez avoir le fichier googleapps.exe sur votre machine. Je crois que je l'ai obtenu avec mon GooglePack gratuit sur leur site qui a maintenant été abandonné. J'ai essayé de chercher sur le net un moyen de le télécharger, mais bizarrement, il semble qu'il ne soit réservé qu'aux entreprises maintenant et qu'il n'y a pas de lien de téléchargement disponible sur le Web parce que tous ceux qui l'ont diffusé l'ont diffusé en utilisant le programme de mise à jour de Google .. Odd. De toute façon bonne chance!


1

Une autre solution consiste à implémenter votre propre contrôle contextuel / formulaire / utilisateur personnalisé qui sera interprété universellement dans tous les navigateurs.

Certes, cela ne tirera pas parti des capacités «mailto» prêtes à l'emploi. Tout dépend du respect de la disponibilité contre lequel vous travaillez. Malheureusement pour moi - le mailto devait être accessible à tous par défaut sans «déranger le client».

Votre décision en fin de compte.


1

Sur macOS, vérifiez également les paramètres Mail.app, quelle application est sélectionnée comme application de messagerie par défaut / associée aux mailto:liens:

Si vous avez déjà cliqué sur cette notification sur Gmail, ce qui permet d'ouvrir des liens dans Gmail à la place de votre application - et après avoir réinitialisé le gestionnaire Chrome , vous devez le modifier manuellement dans vos paramètres Mail.app.

Capture d'écran


0

L'habituel <a href="mailto:hi@hi.com"></a>devrait fonctionner, mais n'oubliez pas que vous devez avoir un programme de messagerie par défaut défini sur votre ordinateur. Par exemple, j'utilise Ubuntu 14.04 et l'e-mail par défaut est thunderbird, ce qui fonctionne bien.


0

"Utiliser Chrome, inviter des problèmes" - Anonyme. (Juste une référence symbolique)

Eh bien, Chrome est notoirement célèbre pour de nombreux utilitaires activés par la sécurité par défaut, et c'est de là que vient votre problème.

Cela peut cependant être annulé en `` définissant le client de messagerie par défaut '' (car le client de messagerie par défaut n'est pas défini), ou en configurant le gestionnaire par défaut sous `` chrome: // settings / handlers '' (par défaut, il est défini sur ' Ignorer').


1
Oui, c'est l'une des raisons les plus fréquentes. Et la solution suggérée devrait certainement fonctionner.

0

J'ai résolu le problème en utilisant ce code:

    
<button onclick="email()">Contact me !</button>	

<script>
function email() {
    var str = window.open('mailto:aaaaaa@aaaaaa.net', '_blank');
}
</script>

Cela a fonctionné pour moi comme un charme!


-3

Vous pouvez également utiliser comme ça,

<a href="javascript:void(0);" onclick="javascript:window.location.href='mailto:info@example.com'; return false;">info@example.com</a>

Je pense que c'est le meilleur moyen de résoudre les problèmes de chrome.

Merci..


'0', pas 'o' dans void(). Cela ne semble pas très bien fonctionner pour moi. Y a-t-il autre chose à ajouter?
Rob

-7

Veuillez vérifier ceci:

Cela fonctionne dans Chrome et tous les navigateurs.

<a href="mailto:test.test@gmail.com">Test</a>

essayez de travailler en grand.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.