Что делает " mailto:", когда нет почтового клиента?
Я разрабатываю веб-сайт.
что значит mailto:
открыть, если нет почтового клиента (например, Outlook, Thunderbird и т. д.)?
Он работает на моем компьютере, который имеет Outlook, но что, если кто-то хочет mailto:
чтобы открыть, скажем, gmail.com?
что мне нужно положить в mailto:
заявление для этого?
5 ответов
Как веб-разработчик вы не имеете никакого контроля над программным обеспечением, которое пользователь выбирает для открытия своей электронной почты, так как она обрабатывается настройками веб-браузера этого пользователя или ОС. Если на компьютере пользователя не установлена программа электронной почты и не определена операция для ссылок "mailto" в браузере, ничего не произойдет.
для меня работает следующее решение:
(function($)) {
$('a[href^=mailto]').each(function() {
var href = $(this).attr('href');
$(this).click(function() {
var t;
var self = $(this);
$(window).blur(function() {
// The browser apparently responded, so stop the timeout.
clearTimeout(t);
});
t = setTimeout(function() {
// The browser did not respond after 500ms, so open an alternative URL.
document.location.href = '...';
}, 500);
});
});
})(jQuery);
для получения дополнительной информации см.: https://www.uncinc.nl/articles/dealing-with-mailto-links-if-no-mail-client-is-available
Я верю, что вы можете использовать это. https://mail.google.com/mail/?view=cm&fs=1&to=email@domain.com Это, однако, имеет свои недостатки, в которых пользователь должен быть уже подписан в gmail. Надеюсь, это поможет!
то, что происходит, полностью зависит от клиента. ОС определяет обработчики протоколов для таких протоколов, как mailto:
или tel:
, etc.
вам понадобится доступ к реестру клиента (в случае системы Windows), чтобы управлять приложением обработки для обработчика протокола.
для Outlook 2013 в качестве назначенного обработчика соответствующая структура реестра выглядит следующим образом:
[HKEY_CLASSES_ROOT\mailto]
@="URL:mailto"
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""
[HKEY_CLASSES_ROOT\mailto\DefaultIcon]
@="C:\PROGRA~2\MICROS~1\Office15\OUTLOOK.EXE,-9403"
[HKEY_CLASSES_ROOT\mailto\shell]
@="open"
[HKEY_CLASSES_ROOT\mailto\shell\open]
[HKEY_CLASSES_ROOT\mailto\shell\open\command]
@="\"C:\PROGRA~2\MICROS~1\Office15\OUTLOOK.EXE\" -c IPM.Note /mailto \"%1\""
С соответствуя структурой под HKCU.
на mailto
схема URI не решает, что происходит-она просто инструктирует браузер, который вы используете, чтобы делать все, что он был настроен для отправки электронной почты (см. IETF предложил стандарт для получения дополнительной информации). Поэтому вам придется проконсультироваться с самим браузером, чтобы узнать, что он делает, если не настроен почтовый клиент.
согласно документации и моему личному опыту, я не вижу никакого способа вручную установить действие: это может быть возможно с помощью некоторые браузеры с нестандартным синтаксисом, но это маловероятно, так как это откроет огромную потенциальную проблему безопасности, имея возможность выполнить произвольную команду по щелчку (например, загрузка вируса или что-то в этом роде).