Почтовые ссылки ничего не делают в Chrome, но работают в Firefox?


149

Кажется, что mailtoссылки, которые мы встраиваем на наш сайт, ничего не делают в Chrome, хотя они работают в Firefox.

Простой пример здесь: http://jsfiddle.net/wAPNH/

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

Нужно ли делать что-то особенное, чтобы включить почтовые ссылки в Chrome?


У меня отлично работает, есть ли у вас какие-то расширения Chrome или что-то, что могло бы помешать?
Райан Кемпт

Какое приложение открывается в FF при нажатии на ссылку mailto?
Моххан

1
Я пробовал в Chrome 28 и эта ссылка JSfiddle отлично работала для меня (работала на Mac и открыла mail.app просто отлично).
Сасбери

Я обнаружил, что делать mailto:test%40test.comэто более последовательно
Pro Q

Ответы:


128

Это зависит от настроек браузера, то есть он будет вести себя по-разному в зависимости от настроек браузера пользователя. Пользователь может изменить поведение mailto:ссылок в Chrome, посетив chrome://settings/handlersилиChrome Settings->Content Settings->Manage Handlers...

Если «электронная почта» не указана на этой странице, просмотрите этот ответ относительно дальнейших действий.


7
отлично, каково поведение по умолчанию?
Crashalot

8
Я считаю, что по умолчанию почтовый клиент запускается на компьютере. Я знаю, на работе, это будет работать Thunderbird; если у них установлен outlook, он может запускать outlook и т. д. Лично он не запускал gmail по умолчанию, мне пришлось настроить его таким образом.
Кеннипу

2
@ Crashalot Нету. ссылка mailto является ссылкой mailto
kennypu

48
Открытие chrome: // settings / handlers дает мне пустое поле без возможности добавить обработчик. Похоже, что Chrome здесь сильно сломан: он просто не откроет мой настроенный почтовик (Thunderbird) в ответ на ссылку mailto.
Питер Флинн

3
@PeterFlynn похоже, что теперь chrome попытается запустить почтовый клиент по умолчанию, установленный на компьютере. Убедитесь, что thunderbird установлен как почтовый клиент по умолчанию. Смотрите эту ссылку, чтобы узнать, как это сделать: kb.mozillazine.org/Default_mail_client#Windows
kennypu

108

Это потому, что Chrome обрабатывает mailto по-другому. Вы можете перейти chrome://settings/handlersи убедиться, что это обработчик по умолчанию. В вашем случае это будет ни один (то есть не в списке). Теперь перейдите на gmail.com. Вы должны увидеть что-то подобное, когда нажмете кнопку рядом с кнопкой закладки.

Установить mailto в Chrome

Если вы хотите открыть все ссылки электронной почты через Gmail, установите «Использовать Gmail». Теперь, когда вы нажимаете кнопку mailto, Chrome автоматически открывается в Gmail.


1
Это сработало для меня, без предварительного посещения gmail и нажатия кнопки «разрешить gmail ...», в настройках не было никакого обработчика, который нужно изменить
chrismarx

1
Gmail? При чем тут Gmail? Я хочу, чтобы Chrome открывал Thunderbird вместо открытия нового экземпляра Chrome.
Питер Флинн

Перейти к Chrome: // настройки / обработчики, чтобы установить свой обработчик.
Раджеш Хегде

1
@ Gi1ber7 Вы можете перейти в chrome: // settings / handlers, чтобы изменить настройку mailto.
Раджеш Хегде

1
у меня нет обработчиков там. wth
Борис Гафуров

43

В моем случае chrome ассоциировался как протокол MAILTO в Windows 10 .

Я изменил связь с Outlook, используя «Программы по умолчанию» -> «Связать тип файла или протокол с программой» .

MAILTO находится значительно ниже в списке. Этот скриншот может помочь.

введите описание изображения здесь


Хорошо, но что, если мы хотим, чтобы он открывался на определенном веб-сайте, а не в приложении?
Кайл Делани

2
В Windows 10 мне пришлось выбрать Outlook в левом списке, прежде чем я увидел флажок «mailto» в правом списке.
Том Макдональд,

15

Я также столкнулся с этой проблемой и, в конце концов, отследил ее до того факта, что моя ссылка была внутри фрейма, а мое веб-приложение использует https. Chrome блокировал его из-за этого (Chrome открывал бы другие ссылки mailto за пределами iframe).

В mailto link, не работающем внутри фрейма Chrome (через https) , кендснайдер упомянул просто изменение

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

в

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

Вуаля, проблема решена. Эта ссылка mailto теперь работает во всех браузерах.


Мне любопытно, если использование target=_parent"будет работать. Хорошая находка.
Termato

Спасибо. Работал отлично. @Termato, это, вероятно, сработало бы, если бы это был «верхний» кадр. Просто используйте target="_top"или, если используете JavaScript:window.top.location.href = 'mailto:...'
Нил Монро

Теперь target = "_ top" также не работает :( любой альтернативный обходной путь. Я пробовал с "_parent", и он тоже не работает.
Виджай Мишра

target="_top"работал для меня в iframe в Google Chrome
Джон Доэрти

@Basj отлично работает на моем (последнем) Chrome. У вас есть почтовый клиент по умолчанию на вашем компьютере?
Томас Аюб

13

Вам необходимо разрешить gmail установить сервисный обработчик для протокола mailto:

1) зайти в gmail

2) нажмите маленький значок ромба в конце адресной строки (скриншот)

3) наслаждайтесь

введите описание изображения здесь


Я не вижу ничего подобного
Борис Гафуров

@BorisGafurov Ваша Chrome-версия актуальна?
JJ_

7

Вы можете попробовать собирается chrome://settings/handlersи установленное значение для , mailto:чтобы noneвместоgmail


7
То же самое здесь: chrome 27 не имеет обработчика для определения mailto или чего-либо еще в этом отношении ... странно, может быть, новое значение безопасности по умолчанию в chrome. В FF мне пришлось добавить это тоже вручную.
Роберт Хоффманн

Тоже самое. Chrome в основном сломан по ссылкам mailto
Питер Флинн

6

Исправление, которое работало для меня, так как мои обработчики протокола были пусты

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

Смотрите redfish43 ответ, чтобы подвести итог

Для mailto: - Убедитесь, что вы вошли в Gmail, и активным окном является ваша главная страница Gmail (или ничего не произойдет). - Скопируйте / вставьте это в адресную строку:

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

При необходимости добавьте javascript: на передний план, потому что при вставке Chrome, вероятно, обрезал все до и включая двоеточие. Затем нажмите Enter.

Когда откроется всплывающее окно, нажмите на «Разрешить»


Как насчет outlook.com?
Кайл Делани

3

У меня такая же проблема. Проблема, по какой-то странной причине, Chrome превратил себя в инструмент по умолчанию для открытия ссылки mailto :. Решение, поместите ваш почтовый клиент в качестве приложения по умолчанию, чтобы открыть его. Как: http://windows.microsoft.com/en-nz/windows/change-default-programs#1TC=windows-7

Удачи


спасибо, это было полезно, пришлось безуспешно попробовать все более высокий рейтинг, прежде чем я попал сюда :(.
Борис Гафуров

2

Я нашел этот ответ на форуме Google, который работал мне. В сносках упоминается «googleapps.exe» - у меня его нет, и он все еще работает. Просто следуйте приведенным ниже инструкциям, но закройте все приложения, прежде чем вносить изменения в реестр. Также я сохранил существующее значение на случай, если оно не сработало.


Просто введите «run» в строку поиска, затем введите «regedit» и перейдите к:

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

изменить (двойной щелчок) "(по умолчанию)", чтобы:

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

Это оно! Сохраните и закройте его, и оно должно работать прекрасно!

Использование этого метода избавляет вас от необходимости загружать GMail Notifier, который для тех из нас, кто пользуется GTalk, не нужен, поскольку он делает это для нас. Я не уверен, почему Google не может решить эту проблему легко ... Я слышал, что Google Apps не были полностью протестированы на Windows 7, но очевидно, что тот же тег работает с ним.

Примечание. Единственное, что есть в этом решении, - это наличие файла googleapps.exe на вашем компьютере. Я думаю, что я получил это с моим бесплатным GooglePack от их сайта, который сейчас закрыт. Я попытался найти в сети способ его загрузки, но, как ни странно, кажется, что он зарезервирован только для предприятий, и в Интернете нет ссылки на скачивание, потому что все, у кого она есть, транслировали ее с помощью программы обновления Google. В любом случае, удачи!


1

Другое решение - реализовать собственный настраиваемый элемент управления popup / form / user, который будет универсально интерпретироваться во всех браузерах.

Конечно, это не будет использовать возможности mailto из коробки. Все зависит от того, против какой доступности вы работаете. К сожалению для меня - mailto должен был быть доступен всем по умолчанию без "неудобства для клиента".

Ваше решение в конечном итоге.


1

В macOS проверьте также настройки Mail.app, какое приложение выбрано в качестве почтового приложения по умолчанию / связано со mailto:ссылками:

Если вы когда-либо нажимали это уведомление в Gmail, которое позволяет открывать ссылки в Gmail вместо вашего приложения - и после этого сбрасывать обработчик Chrome , вам придется отредактировать его вручную в настройках Mail.app.

Скриншот


0

Обычное <a href="mailto:hi@hi.com"></a>должно работать, но помните, что на вашем компьютере должна быть установлена ​​программа электронной почты по умолчанию. Например, я использую Ubuntu 14.04, а по умолчанию используется электронная почта thunderbird, которая отлично работает.


0

«Используйте Chrome, приглашайте неприятности» - аноним. (Просто символическая ссылка)

Ну, как известно, Chrome славится множеством утилит с включенной безопасностью по умолчанию, и именно отсюда ваша проблема.

Однако это можно отменить, «установив почтовый клиент по умолчанию» (поскольку почтовый клиент по умолчанию не установлен), или установив обработчик по умолчанию в «chrome: // settings / handlers» (по умолчанию он установлен на « Игнорировать ").


1
Да, это одна из самых частых причин. И предлагаемое решение, безусловно, должно работать.

0

Я решил проблему с помощью этого кода:

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

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

Это сработало для меня как шарм!


-3

Вы также можете использовать как это,

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

Я думаю, что это лучший способ решить проблемы с хромом.

Спасибо..


«0», а не «o» в void(). Похоже, это не очень хорошо для меня работает. Есть ли что-то еще, что нужно добавить?
Роб

-7

Пожалуйста, проверьте это так:

Это работает в Chrome и во всех браузерах.

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

попробуй и работай отлично.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.