I link di Mailto non fanno nulla in Chrome ma funzionano in Firefox?


149

Sembra che i mailtocollegamenti che stiamo incorporando nel nostro sito Web non riescano a fare nulla in Chrome, sebbene funzionino in Firefox.

Semplice esempio qui: http://jsfiddle.net/wAPNH/

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

Dobbiamo fare qualcosa di speciale per abilitare i link di posta in Chrome?


Funziona bene per me, hai alcune estensioni di Chrome o qualcosa che interferirebbe?
Ryan Kempt

Quale applicazione si apre in FF quando si fa clic sul collegamento mailto?
Mohkhan,

1
Ho provato in Chrome 28 e quel collegamento JSfiddle ha funzionato bene per me (in esecuzione su un Mac e ha aperto mail.app proprio bene).
Sasbury,

Ho scoperto che fare mailto:test%40test.comè più coerente
Pro Q

Risposte:


128

Si tratta di impostazioni specifiche del browser, ovvero si comporterà in modo diverso a seconda delle impostazioni del browser dell'utente. L'utente può modificare il mailto:comportamento dei collegamenti in Chrome visitando chrome://settings/handlersoChrome Settings->Content Settings->Manage Handlers...

Se "e-mail" non è elencato in quella pagina, vedere questa risposta su come procedere.


7
ottimo, qual è il comportamento predefinito?
Crashalot,

8
Credo che l'impostazione predefinita sia eseguire il client di posta sul computer. So che al lavoro, funzionerà un fulmine; se hanno installato Outlook può funzionare Outlook, ecc. Personalmente, non ha eseguito Gmail per impostazione predefinita, ho dovuto configurarlo in quel modo.
kennypu,

2
@Crashalot no. un link mailto è un link mailto
kennypu

48
L'apertura di chrome: // settings / handlers mi dà una scatola vuota senza possibilità di aggiungere un gestore. Sembra che Chrome sia gravemente rotto qui: semplicemente non aprirà il mio mailer configurato (Thunderbird) in risposta a un collegamento mailto.
Peter Flynn,

3
@PeterFlynn sembra che Chrome ora tenterà di eseguire il client di posta predefinito installato sul computer. Assicurati che thunderbird sia impostato come client di posta predefinito. Vedi questo link su come farlo: kb.mozillazine.org/Default_mail_client#Windows
kennypu

108

Questo perché Chrome gestisce il mailto in modo diverso. Puoi andare chrome://settings/handlerse accertarti di quale sia il gestore predefinito. Nel tuo caso non sarà nessuno (ovvero non elencato). Ora vai su gmail.com. Dovresti vedere qualcosa del genere quando fai clic sul pulsante accanto al pulsante dei segnalibri.

Impostare mailto in cromo

Se desideri aprire tutti i link e-mail tramite Gmail, imposta "Usa Gmail". Ora quando fai clic sul pulsante mailto, Chrome si aprirà automaticamente in Gmail.


1
Questo ha funzionato per me, senza prima visualizzare gmail e fare clic su "consenti gmail ..." non c'era nessun gestore nelle impostazioni da modificare-
chrismarx

1
Gmail? Cosa c'entra Gmail con questo? Voglio che Chrome apra Thunderbird invece di aprire una nuova istanza di Chrome.
Peter Flynn,

Vai a chrome: // settings / handlers per impostare il gestore.
Rajesh Hegde,

1
@ Gi1ber7 Puoi andare su chrome: // settings / handlers per cambiare l'impostazione mailto.
Rajesh Hegde,

1
non ho gestori lì. wth
Boris Gafurov,

42

Nel mio caso, Chrome è stato associato come protocollo MAILTO in Windows 10 .

Ho cambiato l'associazione a Outlook usando "Programmi predefiniti" -> "Associa un tipo di file o protocollo a un programma" .

MAILTO è molto sotto nell'elenco. Questa schermata può essere d'aiuto.

inserisci qui la descrizione dell'immagine


Ok, ma cosa succede se vogliamo che si apra in un sito Web specifico anziché in un'app?
Kyle Delaney,

2
Utilizzando Windows 10, ho dovuto selezionare Outlook nell'elenco a sinistra prima di poter visualizzare la casella di controllo del protocollo "mailto" nell'elenco a destra.
Tom McDonald,

15

Ho riscontrato anche questo problema e alla fine l'ho rintracciato nel fatto che il mio collegamento era all'interno di un iframe e la mia app Web utilizza https. Chrome lo stava bloccando a causa di ciò (Chrome avrebbe aperto altri link mailto al di fuori dell'iframe).

Nel collegamento mailto che non funziona all'interno di un frame chrome (su https) , kendsnyder ha menzionato semplicemente il cambiamento

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

per

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

Voila, problema risolto. Quel link mailto ora funziona in tutti i browser.


Sono curioso di sapere se usare target=_parent"funzionerebbe anche. Buona scoperta.
Termato,

Grazie. Ha funzionato alla grande. @Termato, probabilmente funzionerebbe se fosse il frame "top". Basta usare target="_top"o se si utilizza JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe

Ora target = "_ top" non funziona anche :( qualsiasi soluzione alternativa. Ho provato con "_parent" e non funziona troppo.
Vijay Mishra,

target="_top"ha funzionato per me all'interno di un iframe in Google Chrome
John Doherty,

@Basj funziona perfettamente sul mio (ultimo) Chrome. Hai un client di posta predefinito sul tuo computer?
Thomas Ayoub,

13

Devi consentire a Gmail di installare il gestore del servizio per il protocollo mailto:

1) vai su gmail

2) fai clic sulla piccola icona rombo alla fine della barra degli indirizzi (screenshot)

3) divertiti

inserisci qui la descrizione dell'immagine


non vedo nulla del genere
Boris Gafurov il

@BorisGafurov è la tua versione di Chrome aggiornata?
jj_

7

Puoi provare ad andare a chrome://settings/handlerse impostare il valore per mailto:a noneinvece digmail


7
Lo stesso qui: Chrome 27 non ha un gestore per mailto definito o altro per quello che importa ... strano, forse un nuovo default di sicurezza in Chrome. In FF ho ​​dovuto aggiungerlo anche manualmente.
Robert Hoffmann,

Anch'io. Chrome è sostanzialmente rotto con i link mailto
Peter Flynn,

6

Correzione che ha funzionato per me poiché i miei gestori di protocollo erano vuoti

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

Vedi la risposta di redfish43, per riassumere

Per mailto: - Assicurati di aver effettuato l'accesso a Gmail e che la finestra attiva sia la tua pagina Gmail principale (altrimenti non accadrà nulla). - Copia / incolla questo nella barra degli indirizzi:

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

Aggiungi il javascript: di nuovo in primo piano se necessario, perché quando lo hai incollato, Chrome probabilmente ha tagliato tutto prima e includendo i due punti. Quindi premi invio.

Quando si apre la finestra popup, fare clic su "Consenti"


Che dire di outlook.com?
Kyle Delaney,


2

Ho trovato questa risposta su un forum di Google che mi ha funzionato. Nelle note a piè di pagina menziona "googleapps.exe" - Non ho questo e ha ancora funzionato. Seguire semplicemente le istruzioni seguenti, ma chiudere tutte le applicazioni prima di apportare modifiche al registro. Inoltre ho salvato il valore esistente nel caso in cui non funzionasse.


Digita semplicemente "Esegui" nella barra di ricerca, quindi digita "regedit" e viaggia verso:

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

modifica (doppio clic) "(impostazione predefinita)" in:

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

Questo è tutto! Salvalo e chiudilo e dovrebbe funzionare magnificamente!

L'uso di questo metodo ti impedisce di scaricare GMail Notifier, che per quelli di noi con GTalk non è necessario poiché lo fa per noi. Non sono sicuro del motivo per cui Google non è in grado di risolvere facilmente questo problema. Ho sentito che Google Apps non è stato testato completamente su Windows 7, ma è ovvio che lo stesso tag funziona con esso.

Nota: l'unica cosa con questa soluzione è che devi avere il file googleapps.exe sul tuo computer. Credo di averlo ricevuto con il mio GooglePack gratuito dal loro sito che ora è stato sospeso. Ho provato a cercare in rete un modo per scaricarlo, ma stranamente sembra che sia riservato solo per le aziende ora e non ci sono collegamenti di download disponibili dal web perché tutti quelli che lo hanno trasmesso in streaming lo utilizzano usando il programma di aggiornamento di Google .. Strano. Comunque buona fortuna!


1

Un'altra soluzione è implementare il proprio controllo popup / modulo / utente personalizzato che sarà universalmente interpretato su tutti i browser.

Concesso questo non sfrutterà le funzionalità "mailto" out of the box. Tutto dipende da quale aderenza alla disponibilità stai lavorando. Purtroppo per me stesso - il mailto doveva essere disponibile per tutti per impostazione predefinita senza "disturbare il client".

La tua decisione alla fine.


1

Su macOS controlla anche le impostazioni Mail.app, quale App è selezionata come App di posta elettronica predefinita / associata ai mailto:collegamenti:

Se hai mai fatto clic su quella notifica su Gmail, che consente di aprire i collegamenti in Gmail anziché la tua app - e dopo aver reimpostato il gestore Chrome , devi modificarlo manualmente nelle Impostazioni Mail.app.

Immagine dello schermo


0

Il solito <a href="mailto:hi@hi.com"></a>dovrebbe funzionare, ma ricorda che devi avere un programma di posta elettronica predefinito impostato sul tuo computer. Ad esempio, sto usando Ubuntu 14.04 e l'e-mail predefinita è thunderbird, che funziona bene.


0

"Usa Chrome, invita problemi" - Anonimo. (Solo un riferimento simbolico)

Bene, Chrome è notoriamente famoso per molte utility predefinite abilitate alla sicurezza, ed è da qui che nasce il tuo problema.

Tuttavia, questo può essere annullato "impostando il client di posta predefinito" (poiché il client di posta predefinito non è impostato) o impostando il gestore predefinito in "chrome: // settings / handlers" (per impostazione predefinita, è impostato su " Ignorare').


1
Sì, questo è uno dei motivi più frequenti. E, la soluzione suggerita dovrebbe sicuramente funzionare.

0

Ho risolto il problema utilizzando questo codice:

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

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

Ha funzionato per me come un incantesimo!


-3

Puoi usare anche in questo modo,

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

Penso che questo sia il modo migliore per risolvere i problemi di Chrome.

Grazie..


'0', non 'o' in void(). Questo non sembra funzionare molto bene per me. C'è qualcos'altro che deve essere aggiunto?
Rob,

-7

Si prega di controllare questo:

Questo funziona in Chrome e tutti i browser.

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

prova a lavorare alla grande.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.