Mailto-Links funktionieren in Chrome nur in Firefox?


149

Es scheint, dass die mailtoLinks, die wir in unsere Website einbetten, in Chrome nichts bewirken, obwohl sie in Firefox funktionieren.

Einfaches Beispiel hier: http://jsfiddle.net/wAPNH/

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

Müssen wir etwas Besonderes tun, um E-Mail-Links in Chrome zu aktivieren?


Funktioniert gut für mich, haben Sie einige Chrome-Erweiterungen oder etwas, das stören würde?
Ryan Kempt

Welche Anwendung wird in FF geöffnet, wenn Sie auf den Mailto-Link klicken?
Mohkhan

1
Ich habe es in Chrome 28 versucht und dieser JSfiddle-Link hat für mich gut funktioniert (läuft auf einem Mac und hat mail.app ganz gut geöffnet).
Sasbury

Ich habe festgestellt, dass das Tun mailto:test%40test.comkonsequenter ist
Pro Q

Antworten:


128

Dies ist spezifisch für die Browsereinstellungen, dh es verhält sich abhängig von den Browsereinstellungen des Benutzers unterschiedlich. Der Benutzer kann das Verhalten von mailto:Links in Chrome durch Besuchen von chrome://settings/handlersoder ändernChrome Settings->Content Settings->Manage Handlers...

Wenn "E-Mail" auf dieser Seite nicht aufgeführt ist, lesen Sie diese Antwort bezüglich der Vorgehensweise.


7
toll, was ist das Standardverhalten?
Crashalot

8
Ich glaube, der Standard ist, den Mail-Client auf dem Computer auszuführen. Ich weiß bei der Arbeit, es wird Thunderbird laufen; Wenn Outlook installiert ist, wird möglicherweise Outlook usw. ausgeführt. Persönlich wurde Google Mail standardmäßig nicht ausgeführt. Ich musste es auf diese Weise einrichten.
Kennypu

2
@Crashalot nein. Ein Mailto-Link ist ein Mailto-Link
Kennypu

48
Wenn ich chrome: // settings / handlers öffne, bekomme ich ein leeres Feld ohne die Option, einen Handler hinzuzufügen. Es sieht so aus, als ob Chrome hier stark kaputt ist: Mein konfigurierter Mailer (Thunderbird) wird als Antwort auf einen Mailto-Link einfach nicht geöffnet.
Peter Flynn

3
@PeterFlynn Es sieht so aus, als würde Chrome jetzt versuchen, den auf dem Computer installierten Standard-Mail-Client auszuführen. Stellen Sie sicher, dass Thunderbird als Standard-Mail-Client festgelegt ist. Siehe diesen Link, wie das geht: kb.mozillazine.org/Default_mail_client#Windows
kennypu

107

Dies liegt daran, dass Chrome das Mailto auf unterschiedliche Weise behandelt. Sie können zu gehen chrome://settings/handlersund sicherstellen, dass dies der Standardhandler ist. In Ihrem Fall wird es keine sein (dh nicht aufgeführt). Gehen Sie jetzt zu gmail.com. Sie sollten so etwas sehen, wenn Sie auf die Schaltfläche neben der Lesezeichenschaltfläche klicken.

Stellen Sie mailto in Chrom ein

Wenn Sie alle E-Mail-Links über Google Mail öffnen möchten, wählen Sie "Google Mail verwenden". Wenn Sie nun auf die Mailto-Schaltfläche klicken, wird Chrome automatisch in Google Mail geöffnet.


1
Dies funktionierte für mich, ohne zuerst Google Mail zu besuchen und auf "Google Mail zulassen ..." zu klicken. Es gab keinen Handler in den Einstellungen, die geändert werden mussten
chrismarx

1
Google Mail? Was hat Google Mail damit zu tun? Ich möchte, dass Chrome Thunderbird öffnet, anstatt eine neue Instanz von Chrome zu öffnen.
Peter Flynn

Gehen Sie zu chrome: // settings / handlers, um Ihren Handler einzustellen.
Rajesh Hegde

1
@ Gi1ber7 Sie können zu chrome: // settings / handlers gehen, um die mailto-Einstellung zu ändern.
Rajesh Hegde

1
Ich habe dort keine Handler. wth
Boris Gafurov

42

In meinem Fall wurde Chrome in Windows 10 als MAILTO- Protokoll zugeordnet .

Ich habe die Zuordnung mithilfe von "Standardprogramme" -> "Dateityp oder Protokoll einem Programm zuordnen" in Outlook geändert .

MAILTO ist weit unten in der Liste. Dieser Screenshot kann helfen.

Geben Sie hier die Bildbeschreibung ein


Okay, aber was ist, wenn wir möchten, dass es auf einer bestimmten Website und nicht in einer App geöffnet wird?
Kyle Delaney

2
Unter Windows 10 musste ich Outlook in der linken Liste auswählen, bevor das Kontrollkästchen "Mailto" -Protokoll in der rechten Liste angezeigt wurde.
Tom McDonald

15

Ich habe dieses Problem auch festgestellt und es schließlich darauf zurückgeführt, dass sich mein Link innerhalb eines Iframes befand und meine Web-App https verwendet. Chrome blockierte es aus diesem Grund (Chrome öffnete andere Mailto-Links außerhalb des Iframes).

In mailto link, der nicht innerhalb eines Frame- Chroms (über https) funktioniert, erwähnte kendsnyder, dass er sich einfach ändert

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

zu

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

Voila, Problem gelöst. Dieser Mailto-Link funktioniert jetzt in allen Browsern.


Ich bin gespannt, ob die Verwendung target=_parent"auch funktionieren würde. Guter Fund.
Termato

Vielen Dank. Hat super funktioniert. @Termato, es würde wahrscheinlich funktionieren, wenn es der "obere" Rahmen wäre. Verwenden Sie einfach target="_top"oder wenn Sie JavaScript verwenden:window.top.location.href = 'mailto:...'
Neil Monroe

Jetzt funktioniert target = "_ top" auch nicht :( eine alternative Problemumgehung. Ich habe es mit "_parent" versucht und es funktioniert auch nicht.
Vijay Mishra

target="_top"arbeitete für mich innerhalb eines Iframes in Google Chrome
John Doherty

@Basj funktioniert gut auf meinem (neuesten) Chrome. Haben Sie einen Standard-Mail-Client auf Ihrem Computer?
Thomas Ayoub

13

Sie müssen Google Mail erlauben, den Service-Handler für das Mailto-Protokoll zu installieren:

1) Gehen Sie zu Google Mail

2) Klicken Sie auf das kleine Rauten-Symbol am Ende der Adressleiste (Screenshot).

3) genießen

Geben Sie hier die Bildbeschreibung ein


Ich sehe so etwas nicht
Boris Gafurov

@BorisGafurov ist Ihre Chrome-Version auf dem neuesten Stand?
jj_

7

Sie können versuchen, zu gehen chrome://settings/handlersund den Wert für mailto:zu noneanstelle von festzulegengmail


7
Gleiches hier: Chrome 27 hat keinen Handler für Mailto definiert oder irgendetwas anderes für diese Angelegenheit. Seltsame, möglicherweise neue Sicherheitsstandards in Chrome. In FF musste ich es auch manuell hinzufügen.
Robert Hoffmann

Hier gilt das gleiche. Chrome ist im Grunde genommen für Mailto-Links kaputt
Peter Flynn

6

Fix, der bei mir funktioniert hat, da meine Protokollhandler leer waren

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

Siehe redfish43 Antwort, um es zusammenzufassen

Für mailto: - Stellen Sie sicher, dass Sie bei Google Mail angemeldet sind und das aktive Fenster Ihre Haupt-Google Mail-Seite ist (sonst passiert nichts). - Kopieren Sie diese / fügen Sie sie in die Adressleiste ein:

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

Fügen Sie das Javascript hinzu: bei Bedarf erneut nach vorne, da Chrome beim Einfügen wahrscheinlich alles zuvor und einschließlich des Doppelpunkts gekürzt hat. Drücken Sie dann die Eingabetaste.

Wenn das Popup-Fenster geöffnet wird, klicken Sie auf "Zulassen".


Was ist mit Outlook.com?
Kyle Delaney


2

Ich habe diese Antwort in einem Google-Forum gefunden, das mir geholfen hat. In den Fußnoten wird 'googleapps.exe' erwähnt - ich habe das nicht und es hat immer noch funktioniert. Befolgen Sie einfach die nachstehenden Anweisungen, schließen Sie jedoch alle Anwendungen, bevor Sie Änderungen an der Registrierung vornehmen. Außerdem habe ich den vorhandenen Wert für den Fall gespeichert, dass er nicht funktioniert.


Geben Sie einfach "run" in Ihre Suchleiste ein, geben Sie "regedit" ein und reisen Sie zu:

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

Bearbeiten (Doppelklicken) "(Standard)" zu:

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

Das ist es! Speichern und schließen Sie es und es sollte wunderbar funktionieren!

Mit dieser Methode müssen Sie den GMail Notifier nicht herunterladen, den Benutzer von GTalk nicht benötigen, da er dies für uns tut. Ich bin mir nicht sicher, warum Google dieses Problem nicht einfach lösen kann. Ich habe gehört, dass Google Apps unter Windows 7 nicht vollständig getestet wurde, aber es ist offensichtlich, dass dasselbe Tag damit funktioniert.

Hinweis: Bei dieser Lösung müssen Sie lediglich die Datei googleapps.exe auf Ihrem Computer haben. Ich glaube, ich habe es mit meinem kostenlosen GooglePack von ihrer Website erhalten, die jetzt eingestellt wurde. Ich habe versucht, im Internet nach einer Möglichkeit zum Herunterladen zu suchen, aber seltsamerweise scheint es jetzt nur für Unternehmen reserviert zu sein, und es ist kein Download-Link im Internet verfügbar, da jeder, der es hat, es mit dem Google-Updater gestreamt hat. Wie auch immer - Viel Glück!


1

Eine andere Lösung besteht darin, ein eigenes benutzerdefiniertes Popup- / Formular- / Benutzersteuerelement zu implementieren, das in allen Browsern universell interpretiert wird.

Zugegeben, dies wird die sofort einsatzbereiten "Mailto" -Funktionen nicht nutzen. Es hängt alles davon ab, gegen welche Verfügbarkeitseinhaltung Sie arbeiten. Leider für mich - das Mailto musste standardmäßig für alle verfügbar sein, ohne "den Kunden zu belästigen".

Ihre Entscheidung letztendlich.


1

Überprüfen Sie unter macOS auch die Mail.app-Einstellungen, welche App als Standard-E-Mail-App ausgewählt / mit mailto:Links verknüpft ist:

Wenn Sie jemals auf diese Benachrichtigung in Google Mail geklickt haben, um Links in Google Mail anstelle Ihrer App zu öffnen, und nachdem Sie den Chrome-Handler zurückgesetzt haben , müssen Sie diese manuell in Ihren Mail.app-Einstellungen bearbeiten.

Bildschirmfoto


0

Das Übliche <a href="mailto:hi@hi.com"></a>sollte funktionieren, aber denken Sie daran, dass auf Ihrem Computer ein Standard-E-Mail-Programm eingestellt sein muss. Zum Beispiel verwende ich Ubuntu 14.04 und die Standard-E-Mail ist Thunderbird, was gut funktioniert.


0

"Chrome verwenden, Probleme einladen" - Anonym. (Nur eine symbolische Referenz)

Nun, Chrome ist bekannt dafür, dass es viele standardmäßige sicherheitsfähige Dienstprogramme gibt, und von dort stammt Ihr Problem.

Dies kann jedoch rückgängig gemacht werden, indem der Standard-E-Mail-Client festgelegt wird (da der Standard-E-Mail-Client nicht festgelegt ist) oder indem der Standard-Handler unter "chrome: // settings / handlers" eingerichtet wird (standardmäßig ist er auf "eingestellt"). Ignorieren').


1
Ja, dies ist einer der häufigsten Gründe. Und die vorgeschlagene Lösung sollte auf jeden Fall funktionieren.

0

Ich habe das Problem mit diesem Code gelöst:

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

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

Es hat bei mir wie ein Zauber funktioniert!


-3

Sie können auch so verwenden,

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

Ich denke, dies ist der beste Weg, um Chromprobleme zu lösen.

Vielen Dank..


'0', nicht 'o' in void(). Dies schien für mich nicht sehr gut zu funktionieren. Gibt es noch etwas, das hinzugefügt werden muss?
Rob

-7

Bitte überprüfen Sie dies:

Dies funktioniert in Chrome und allen Browsern.

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

versuche und arbeite großartig.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.