Три схемы
Каждая схема — это короткий фрагмент текста, который телефон умеет передать нужному приложению. mailto: открывает почтовое приложение, tel: — набор номера, а sms: — приложение для сообщений, причём получатель, а иногда и текст сообщения уже подставлены.
Номера телефонов лучше записывать в международном формате со знаком плюс и кодом страны, например +15035550123, чтобы код работал и для посетителей из других стран.
- mailto:hello@example.com?subject=Order%20question&body=Hi (RFC 6068)
- tel:+15035550123 (RFC 3966)
- sms:+15035550123?body=Hello (RFC 5724)
- SMSTO:+15035550123:Hello (более старое соглашение, всё ещё широко читается)
- MATMSG:TO:hello@example.com;SUB:Hi;BODY:Hello;; (более старое соглашение для электронной почты)
Кодирование текста сообщения
Темы и тексты сообщений в ссылках mailto и sms нужно записывать в процентной кодировке: пробел превращается в %20, а амперсанд внутри текста — в %26. Незакодированные символы могут оборвать сообщение или сломать ссылку.
Платформы не всегда одинаково разбирали параметр body в sms, и это одна из причин, по которым более старая форма SMSTO: до сих пор часто встречается в генераторах QR-кодов. Надёжная проверка — протестировать на iPhone и на Android перед печатью.
Чего эти коды не могут
QR-код не может сам отправить письмо, отправить сообщение или совершить звонок. Он лишь открывает приложение с заполненными полями, а сканирующий сам решает, нажимать ли «отправить» или «позвонить».
Поскольку получатель виден до отправки, людям стоит проверить, что он совпадает с ожидаемым. Код, который подставляет сообщение на номер с повышенной тарификацией или на незнакомый адрес, — тревожный признак.