Генератор QR-кода для email
100% приватно и локально — ваши данные никогда не покидают браузер. Эти QR-коды постоянны и никогда не истекают.
Настройки: Email
Дизайн
Добавить логотип в центр
Изображение читается на этой странице и встраивается в код как data: URL. Оно никуда не загружается и остаётся внутри файла, который вы скачиваете.
Ещё параметры дизайна
Тёмная половина кода. Держите её заметно темнее фона по светлоте.
Закрашивает и свободную зону, и промежутки между модулями. Прозрачный фон исключает его из файла, поэтому им ничего не рисуется.
Контраст 11.5:1 между модулями и фоном.
PNG и WebP сохраняют альфа-канал; в SVG прямоугольник фона просто отсутствует. Светлой половиной контраста становится то, на чём код размещён.
Градиент заливает только тёмные модули. Контраст, который реально получает сканер, задаёт его светлый конец, поэтому оба конца должны оставаться тёмными.
Второй цвет, используется только при выбранном градиенте. Контраст измеряется по нему наравне с первым.
Градусы по часовой стрелке от направления слева направо. Радиальный градиент расходится из центра, поэтому угол действует только для линейного.
Скруглённые формы закрывают меньшую часть каждой ячейки. Центр остаётся закрытым, а именно его считывает декодер, но плотный код в мелкой печати надёжнее читается квадратами.
Кольцо трёх поисковых узоров.
Зрачок внутри каждого поискового узора.
Пустое поле вокруг кода, измеряется в модулях. Стандарт задаёт минимум 4.
Более высокий уровень переносит больше повреждений и стоит ёмкости, поэтому то же содержимое даёт более плотный символ.
В центре стоит логотип, и он удерживает уровень H. Предел его ширины следует за символом: 14% на самом маленьком коде и 30% на плотном.
Предпросмотр и экспорт
Введите адрес, на который должно уйти письмо.
Экспорт
Растр, для экранов
Заполните форму, чтобы включить скачивание.
Размер экспорта и закодированный текст
- Данные
- Пока не закодировано
- Символ
- Ещё не построен
- Коррекция
- M
Ожидание ввода
QR-код mailto: открывает почтовое приложение телефона с уже заполненными получателем, темой и сообщением, и отправителю остаётся только нажать «Отправить». Всё письмо лежит внутри символа читаемым текстом, поэтому это подсказка, а не приватный канал.
Когда его сканируют
Телефон открывает новый черновик в почтовом приложении по умолчанию, с заполненными адресом и текстом, и ничего не отправляется, пока человек сам не нажмёт «Отправить».
Как собирается URI mailto:
Полезная нагрузка — это URI, определённый в RFC 6068. Адрес следует сразу за схемой, а всё остальное приходит запросом: первый параметр после знака вопроса, остальные соединены амперсандами. mailto:hello@example.com?subject=Stand%2014%20enquiry&body=Please%20send%20a%20quote. — это законченная полезная нагрузка.
Кодирование — то место, где ломаются собранные вручную коды mailto:. Зарезервированные символы нужно кодировать процентами, а не-ASCII текст сначала перевести в UTF-8 и уже потом кодировать процентами побайтно. RFC 6068 прямо говорит, что пробел следует писать как %20, а не плюсом, потому что плюс не отличить от настоящего плюса в адресе.
Переводы строк в тексте письма должны кодироваться как %0D%0A. Сырой перевод строки в полезной нагрузке либо обрезает текст на этом месте, либо даёт URI, который почтовое приложение вообще не разберёт.
Что почтовые приложения действительно соблюдают
RFC 6068 намеренно ставит для читателей низкую планку: клиент, который разрешает URI mailto:, обязан обработать заголовок темы и текст письма, и ничего сверх этого не гарантировано. На практике cc и bcc соблюдает большинство настольных клиентов и игнорирует заметная часть мобильных — поэтому здесь нет полей, которые молча исчезали бы.
Сканирование открывает то приложение, которое назначено на телефоне почтовым по умолчанию. Если человек удалил штатное почтовое приложение и не вошёл в заменяющее, нажатие не даёт видимого результата, и это настройка устройства, а не дефект кода.
Длинный текст — вторая мягкая граница. Часть клиентов обрезает предзаполненный текст, и каждый символ вдобавок увеличивает символ кода, поэтому код mailto: лучше всего работает как тема плюс одно-два предложения, по которым понятно, где человек стоит.
Черновик, а не отправка, и не секрет
Сканирование ничего не отправляет. Почтовое приложение открывает составленный черновик в собственном аккаунте отправителя, с его собственного адреса, и он может изменить любую часть письма до отправки. Это же значит, что письмо приходит вам как обычное, с обычным обратным адресом.
Всё в коде читаемо. Любой, кто сфотографирует афишу, расшифрует адрес, тему и текст любым сканером, поэтому номер заявки или фраза со скидкой в тексте становятся публичными в момент печати.
Напечатанный адрес машиночитаем ровно так же, как ссылка mailto: на веб-странице, а значит, его могут собрать роботы. Ролевой адрес вроде info@ или stend14@ держит личный ящик вне печатных материалов и может быть закрыт без перепечатки всего остального.
Вопросы и ответы
Отправляется ли письмо автоматически при сканировании?
Нет. Схема mailto: умеет только открыть черновик. Человек видит получателя, тему и текст в своём почтовом приложении, может изменить что угодно и должен нажать «Отправить» сам. Ни одно почтовое приложение ни на одной платформе не отправляет сообщение mailto: без этого шага.
Можно ли добавить адреса в копию и скрытую копию?
RFC 6068 определяет cc и bcc как поля заголовка в строке запроса, но обязывает клиента понимать только subject и body. Мобильные почтовые приложения часто отбрасывают остальное, поэтому этих полей здесь нет — вместо того чтобы они выглядели работающими и потом исчезали.
Почему пробелы кодируются как %20, а не плюсом?
Потому что так велит RFC 6068. В URI mailto: плюс может быть настоящим символом адреса, как в name+tag@example.com, поэтому плюс, стоящий за пробел, не отличить от плюса, который там уместен. %20 убирает двусмысленность.
Не начнут ли собирать мой адрес, если напечатать его так?
Могут. Полезная нагрузка mailto: машиночитаема так же, как ссылка mailto: на веб-странице, и любой может расшифровать сфотографированный код. Возьмите ролевой адрес, который вы сможете закрыть, и ждите той же незапрошенной почты, какую собирает любой опубликованный адрес.
Как работает статический QR-код
Каждый код на этом сайте статический: данные записаны в сами чёрно-белые модули. При чтении кода ничего не запрашивается, ни один наш сервер в этом не участвует и никакая подписка не держит напечатанный код на плаву. То же свойство и есть ограничение: после печати изменить его содержимое нельзя.
Дальше то, прочитается ли напечатанный код, решают три вещи: во сколько байт вышли данные, какой уровень коррекции поглощает повреждения и какой ширины получается один модуль на бумаге. Эти руководства разбирают каждую из них с цифрами.