Ссылка на электронную почту в HTML создается с использованием протокола mailto:. Этот протокол позволяет пользователю сразу открыть почтовый клиент с автоматически подставленным адресом получателя. Для базового варианта достаточно обернуть нужный email в тег <a> с атрибутом href=»mailto:адрес».
Пример минимальной реализации: <a href=»mailto:example@example.com»>Отправить письмо</a>. При нажатии на такую ссылку устройство пользователя инициирует создание нового письма с указанным адресом в соответствующем почтовом приложении. Чтобы добавить тему письма или текст по умолчанию, к email адресу через ? добавляются параметры subject и body.
Например, ссылка <a href=»mailto:example@example.com?subject=Вопрос&body=Здравствуйте!»>Связаться с нами</a> создаст письмо с готовой темой «Вопрос» и текстом «Здравствуйте!». Для передачи нескольких параметров используется символ &. Важно кодировать специальные символы, чтобы они корректно обрабатывались почтовыми клиентами.
Корректное использование mailto: повышает удобство взаимодействия с сайтом, однако стоит учитывать, что такие ссылки могут быть уязвимы для спам-ботов. Для защиты адреса рекомендуется применять JavaScript-генерацию ссылок или методы шифрования email в исходном коде.
Как использовать тег <a> для создания email-ссылки
Для создания ссылки на электронную почту применяется тег <a> с атрибутом href, в котором указывается схема mailto: и адрес получателя. Пример базового синтаксиса:
<a href=»mailto:example@example.com»>Написать письмо</a>
Чтобы добавить тему письма, используйте параметр subject через вопросительный знак:
<a href=»mailto:example@example.com?subject=Вопрос»>Связаться</a>
Для передачи текста в теле письма добавляйте параметр body с амперсандом для разделения нескольких параметров:
<a href=»mailto:example@example.com?subject=Отзыв&body=Ваше сообщение»>Оставить отзыв</a>
Чтобы указать нескольких получателей, перечисляйте их через запятую:
<a href=»mailto:first@example.com,second@example.com»>Написать всем</a>
Для добавления скрытых копий используйте параметры cc (копия) и bcc (скрытая копия):
<a href=»mailto:example@example.com?cc=copy@example.com&bcc=hidden@example.com»>Отправить письмо</a>
Кодируйте специальные символы в параметрах, заменяя пробелы на %20 и соблюдая правила URL-кодирования, чтобы ссылка корректно работала во всех почтовых клиентах.
Как добавить атрибут «mailto» в ссылку
Чтобы создать ссылку для отправки письма через почтовый клиент, в HTML используется атрибут href
с префиксом mailto:
. Укажите после него адрес электронной почты без пробелов. Пример: <a href="mailto:example@example.com">Написать письмо</a>
.
Можно сразу задать тему письма с помощью параметра subject
. Для этого добавьте в ссылку символ вопроса и укажите параметр: <a href="mailto:example@example.com?subject=Тема письма">Связаться</a>
.
Если нужно добавить несколько параметров, например, тему и текст письма, используйте символ амперсанда &
для их разделения: <a href="mailto:example@example.com?subject=Вопрос&body=Здравствуйте,%20у%20меня%20есть%20вопрос.>Отправить запрос</a>
.
При указании нескольких получателей перечисляйте адреса через запятую: <a href="mailto:first@example.com,second@example.com">Писать сразу двум</a>
.
Для обеспечения корректной работы убедитесь, что адреса и параметры закодированы по стандарту URL-кодирования. Пробелы заменяются на %20
, специальные символы экранируются.
Как указать тему письма в email-ссылке
Чтобы при клике на ссылку автоматически подставлялась тема письма, нужно использовать атрибут subject внутри mailto-ссылки. Для этого после адреса электронной почты добавляется знак вопроса и параметр subject с заданным значением.
Пример:
<a href="mailto:example@example.com?subject=Вопрос%20по%20сотрудничеству">Написать нам</a>
Все пробелы и специальные символы в теме письма нужно кодировать через URL-энкодинг. Например, пробел заменяется на %20, а запятая на %2C.
При необходимости добавить несколько параметров, например, тему и тело письма, их следует разделять знаком &. Сначала указывается subject, затем, например, body:
<a href="mailto:example@example.com?subject=Запрос%20информации&body=Здравствуйте,%20прошу%20отправить%20детали.">Связаться</a>
Чем короче и конкретнее указана тема, тем выше вероятность быстрого ответа на письмо.
Как добавить текст в теле письма через ссылку
Чтобы сразу вставить текст в тело письма при клике на ссылку, используйте параметр body
в атрибуте href
тега <a>
. Пример конструкции: <a href="mailto:example@mail.com?body=Текст%20письма">Отправить письмо</a>
.
Текст внутри параметра body
нужно кодировать через символы %20
вместо пробелов и использовать кодировку URL для специальных символов, чтобы избежать ошибок отображения. Например, запятая кодируется как %2C
, а символ новой строки – как %0A
.
Для добавления многострочного текста включайте %0A
там, где требуется перенос строки. Пример ссылки с форматированным текстом:
<a href="mailto:example@mail.com?body=Здравствуйте%2C%0A%0AХотел%20бы%20уточнить%20следующее%3A%0A-%20Пункт%201%0A-%20Пункт%202">Связаться</a>
Проверяйте итоговую ссылку, так как разные почтовые клиенты могут по-разному обрабатывать длинные строки и спецсимволы. Рекомендуется ограничивать длину параметра body
до нескольких сотен символов для стабильной работы на большинстве устройств.
Как защитить email-адрес от спам-ботов с помощью JavaScript
Открытая публикация email-адресов в формате mailto:
делает их лёгкой целью для спам-ботов. Для защиты можно динамически собирать адрес с помощью JavaScript, чтобы он отсутствовал в исходном коде страницы.
Пример безопасного способа:
<script>
const user = "contact";
const domain = "example.com";
const emailLink = document.createElement('a');
emailLink.href = "mailto:" + user + "@" + domain;
emailLink.textContent = user + "@" + domain;
document.getElementById('email-container').appendChild(emailLink);
</script>
<div id="email-container"></div>
Этот метод предотвращает простое сканирование адреса ботами, так как email не находится в исходном HTML, а создаётся только после загрузки скрипта.
Рекомендации для повышения надёжности:
- Разбивайте адрес на части и объединяйте их через JavaScript.
- Используйте шифрование строки адреса с последующей расшифровкой на клиенте.
- Добавляйте минимальные задержки перед вставкой email, чтобы усложнить автоматический сбор.
Пример усложнённой сборки с шифрованием:
<script>
const encoded = "Y29udGFjdEBleGFtcGxlLmNvbQ=="; // Base64
const decoded = atob(encoded);
const link = document.createElement('a');
link.href = "mailto:" + decoded;
link.textContent = decoded;
document.getElementById('secure-email').appendChild(link);
</script>
<div id="secure-email"></div>
Таким образом, email становится менее доступным для ботов, которые не исполняют JavaScript или не обрабатывают код расшифровки.
Как стилизовать ссылку на email с помощью CSS
Ссылки на email по умолчанию выглядят так же, как обычные гиперссылки. Чтобы выделить их на фоне остального контента, используйте целенаправленную стилизацию через CSS.
- Используйте селектор атрибута для точечной настройки:
a[href^="mailto:"] {
color: #1a73e8;
font-weight: 600;
text-decoration: none;
}
- Добавьте визуальную обратную связь при наведении курсора:
a[href^="mailto:"]:hover {
color: #0c47b7;
text-decoration: underline;
}
- Для акцентирования можно применить псевдоэлементы:
a[href^="mailto:"]::before {
content: "✉ ";
color: #555;
}
- Чтобы отличить email-ссылку от других элементов навигации, можно добавить рамку или фон:
a[href^="mailto:"] {
background-color: #e8f0fe;
padding: 4px 8px;
border-radius: 4px;
}
- Не забудьте адаптировать стиль для состояний
:focus
и:active
для повышения доступности:
a[href^="mailto:"]:focus, a[href^="mailto:"]:active {
outline: 2px dashed #1a73e8;
outline-offset: 2px;
}
Использование атрибута href^="mailto:"
позволяет избежать применения стилей ко всем ссылкам сразу и сохранить чистоту интерфейса.