¿Los enlaces de Mailto no hacen nada en Chrome pero funcionan en Firefox?


149

Parece que el mailto enlaces que estamos incorporando en nuestro sitio web no hacen nada en Chrome, aunque funcionan en Firefox.

Ejemplo simple aquí: http://jsfiddle.net/wAPNH/

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

¿Necesitamos hacer algo especial para habilitar los enlaces de correo en Chrome?


Funciona bien para mí, ¿tienes algunas extensiones de Chrome o algo que pueda interferir?
Ryan Kempt

¿Qué aplicación se abre en FF cuando haces clic en el enlace mailto?
mohkhan

1
Intenté en Chrome 28 y ese enlace JSfiddle funcionó bien para mí (ejecutándose en una Mac, y abrí mail.app muy bien).
sasbury

Descubrí que hacer mailto:test%40test.comes más consistente
Pro Q

Respuestas:


128

Esta es la configuración específica del navegador, es decir, se comportará de manera diferente dependiendo de la configuración del navegador del usuario. El usuario puede cambiar el mailto:comportamiento de los enlaces en Chrome visitando chrome://settings/handlersoChrome Settings->Content Settings->Manage Handlers...

Si "correo electrónico" no aparece en esa página, consulte esta respuesta sobre cómo proceder.


77
genial, ¿cuál es el comportamiento predeterminado?
Crashalot

8
Creo que lo predeterminado es ejecutar el cliente de correo en la computadora. Sé que en el trabajo correrá Thunderbird; si tienen instalado Outlook, puede ejecutar Outlook, etc. Personalmente, no ejecutó gmail de manera predeterminada, tuve que configurarlo de esa manera.
kennypu

2
@Crashalot no. un enlace de mailto es un enlace de mailto
kennypu

48
Abrir chrome: // settings / handlers me da un cuadro vacío sin opción de agregar un controlador. Parece que Chrome está muy dañado aquí: simplemente no abrirá mi correo configurado (Thunderbird) en respuesta a un enlace de correo electrónico.
Peter Flynn

3
@PeterFlynn parece que Chrome ahora intentará ejecutar el cliente de correo predeterminado instalado en la computadora. Asegúrese de que Thunderbird esté configurado como el cliente de correo predeterminado. Vea este enlace sobre cómo hacerlo: kb.mozillazine.org/Default_mail_client#Windows
kennypu

107

Esto se debe a que Chrome maneja el mailto de manera diferente. Puede ir chrome://settings/handlersy asegurarse de que es el controlador predeterminado. En su caso, será ninguno (es decir, no está en la lista). Ahora ve a gmail.com. Debería ver algo como esto cuando hace clic en el botón al lado del botón de marcador.

Establecer mailto en cromo

Si desea abrir todos los enlaces de correo electrónico a través de gmail, configure "Usar Gmail". Ahora, cuando hace clic en el botón mailto, Chrome se abrirá automáticamente en gmail.


1
Esto funcionó para mí, sin antes Gmail visiting y haciendo clic en el "Gmail permitirá ..." no había ningún controlador en la configuración de ser transformados,
chrismarx

1
Gmail ¿Qué tiene que ver Gmail con esto? Quiero que Chrome abra Thunderbird en lugar de abrir una nueva instancia de Chrome.
Peter Flynn

Vaya a chrome: // settings / handlers para configurar su controlador.
Rajesh Hegde

1
@ Gi1ber7 Puede ir a chrome: // settings / handlers para cambiar la configuración de mailto.
Rajesh Hegde

1
No tengo controladores allí. wth
Boris Gafurov

42

En mi caso, Chrome se asoció como protocolo MAILTO en Windows 10 .

Cambié la asociación a Outlook usando "Programas predeterminados" -> "Asociar un tipo de archivo o protocolo con un programa" .

MAILTO está muy por debajo de la lista. Esta captura de pantalla puede ayudar.

ingrese la descripción de la imagen aquí


De acuerdo, pero ¿qué pasa si queremos que se abra en un sitio web específico en lugar de una aplicación?
Kyle Delaney

2
Con Windows 10, tuve que seleccionar Outlook en la lista de la izquierda antes de que pudiera ver la casilla de verificación del protocolo 'mailto' en la lista de la derecha.
Tom McDonald

15

También experimenté este problema, y ​​finalmente lo rastreé hasta el hecho de que mi enlace estaba dentro de un iframe, y mi aplicación web usa https. Chrome lo estaba bloqueando debido a esto (Chrome abriría otros enlaces mailto fuera del iframe).

En mailto link no funciona dentro de un marco de cromo (sobre https) , kendsnyder mencionó simplemente cambiar

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

a

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

Voila, problema resuelto. Ese enlace mailto ahora funciona en todos los navegadores.


Tengo curiosidad por saber si usar target=_parent"también funcionaría. Buen descubrimiento.
Termato

Gracias. Funcionó muy bien. @Termato, probablemente funcionaría si fuera el marco "superior". Solo use target="_top"o si usa JavaScript:window.top.location.href = 'mailto:...'
Neil Monroe

Ahora target = "_ top" tampoco funciona :( cualquier solución alternativa. Intenté con "_parent" y tampoco funciona.
Vijay Mishra

target="_top"funcionó para mí dentro de un iframe en Google Chrome
John Doherty

@Basj funciona bien en mi (más reciente) Chrome. ¿Tiene un cliente de correo predeterminado en su computadora?
Thomas Ayoub

13

Debe permitir que gmail instale el controlador de servicio para el protocolo mailto:

1) ir a gmail

2) haga clic en el pequeño icono de rombo al final de la barra de direcciones (captura de pantalla)

3) disfruta

ingrese la descripción de la imagen aquí


No veo tal cosa
Boris Gafurov

@BorisGafurov, ¿está actualizada su versión de Chrome?
jj_

7

Puede intentar ir a chrome://settings/handlersy establecer el valor para mailto:a en nonelugar degmail


77
Lo mismo aquí: Chrome 27 no tiene un controlador para mailto definido o cualquier otra cosa para ese asunto ... extraño, tal vez nuevo valor predeterminado de seguridad en Chrome. En FF tuve que agregarlo manualmente también.
Robert Hoffmann

Igual que aquí. Chrome está básicamente roto wrt mailto links
Peter Flynn

6

Solución que funcionó para mí ya que mis controladores de protocolo estaban vacíos

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

Ver la respuesta de redfish43, para resumir

Para mailto: - Asegúrese de haber iniciado sesión en Gmail y que la ventana activa sea su página principal de Gmail (o no pasará nada). - Copie / pegue esto en la barra de direcciones:

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

Agregue javascript: al frente nuevamente si es necesario, porque cuando lo pegó, Chrome probablemente recortó todo antes e incluso los dos puntos. Luego presiona enter.

Cuando se abra la ventana emergente, haga clic en "Permitir"


¿Qué pasa con outlook.com?
Kyle Delaney


2

Encontré esta respuesta en un foro de Google que me ha funcionado. En las notas al pie se menciona 'googleapps.exe': no ​​tengo esto y aún funciona. Simplemente siga las instrucciones a continuación, pero cierre todas las aplicaciones antes de realizar cambios en el Registro. También guardé el valor existente en caso de que no funcionara.


Simplemente escriba "ejecutar" en su barra de búsqueda, luego escriba "regedit" y luego viaje a:

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

editar (doble clic) "(Predeterminado)" para:

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

¡Eso es! ¡Guárdelo y ciérrelo y debería funcionar perfectamente!

El uso de este método evita que tenga que descargar el notificador de GMail, que para aquellos de nosotros con GTalk no necesitamos, ya que lo hace por nosotros. No estoy seguro de por qué Google no puede resolver este problema fácilmente. He oído que Google Apps no se ha probado completamente en Windows 7, pero es obvio que la misma etiqueta funciona con él.

Nota: Lo único con esta solución es que necesita tener el archivo googleapps.exe en su máquina. Creo que lo obtuve con mi GooglePack gratuito de su sitio que ahora ha sido descontinuado. Intenté buscar en la red una forma de descargarlo, pero por extraño que parezca, ahora está reservado solo para empresas y no hay un enlace de descarga disponible desde la web porque todos los que lo tienen lo transmitieron usando el actualizador de Google. Extraño. ¡De todos modos, buena suerte!


1

Otra solución es implementar su propio control emergente / formulario / usuario personalizado que se interpretará universalmente en todos los navegadores.

De acuerdo, esto no aprovechará las capacidades listas para usar "mailto". Todo depende de con qué adherencia de disponibilidad esté trabajando. Desafortunadamente para mí, el mailto tenía que estar disponible para todos por defecto sin "molestar al cliente".

Su decisión en última instancia.


1

En macOS, verifique también la configuración de Mail.app, qué aplicación está seleccionada como aplicación de correo electrónico predeterminada / asociada conmailto: enlaces:

Si alguna vez hizo clic en esa notificación en Gmail, que permite abrir enlaces en Gmail en lugar de su aplicación, y después de restablecer el controlador de Chrome , debe editarlo manualmente en la Configuración de Mail.app.

Captura de pantalla


0

Lo habitual <a href="mailto:hi@hi.com"></a>debería funcionar, pero recuerde que debe tener un programa de correo electrónico predeterminado configurado en su computadora. Por ejemplo, estoy usando Ubuntu 14.04 y el correo electrónico predeterminado es Thunderbird, que funciona bien.


0

'Usar Chrome, invitar problemas' - Anónimo. (Solo una referencia simbólica)

Bueno, Chrome es notoriamente famoso por una gran cantidad de utilidades predeterminadas habilitadas para seguridad, y ahí es donde se origina su problema.

Sin embargo, esto se puede deshacer 'configurando el cliente de correo electrónico predeterminado' (ya que el cliente de correo electrónico predeterminado no está configurado), o configurando el controlador predeterminado en 'chrome: // settings / handlers' (de forma predeterminada, está configurado en ' Ignorar').


1
Sí, esta es una de las razones más frecuentes. Y, la solución sugerida ciertamente debería funcionar.

0

Resolví el problema usando este código:

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

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

¡Funcionó para mí como un encanto!


-3

Puedes usar así también,

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

Creo que esta es la mejor manera de resolver los problemas de Chrome.

Gracias..


'0', no 'o' adentro void(). Esto no pareció funcionar muy bien para mí. ¿Hay algo más que deba agregarse?
Rob

-7

Por favor verifíquelo esto:

Esto está funcionando en Chrome y todos los navegadores.

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

intenta y trabaja de maravilla.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.