세 가지 스킴
각 스킴은 휴대폰이 알맞은 앱에 넘길 줄 아는 짧은 텍스트예요. 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이 돼요. 인코딩하지 않은 문자는 메시지를 중간에서 자르거나 링크를 깨뜨릴 수 있어요.
플랫폼이 sms 본문 매개변수를 항상 똑같이 해석하지는 않았고, 이것이 예전 SMSTO: 형식이 QR 생성기에서 지금도 흔한 이유 중 하나예요. 인쇄 전에 아이폰과 안드로이드 모두에서 테스트하는 것이 확실한 확인 방법이에요.
이런 코드가 할 수 없는 것
QR코드는 스스로 이메일을 보내거나, 문자를 보내거나, 전화를 걸 수 없어요. 필드가 채워진 앱을 열어 줄 뿐이고, 보내기나 전화 걸기를 누를지는 스캔한 사람이 정해요.
보내기 전에 수신자가 보이므로 기대한 것과 맞는지 확인해야 해요. 유료 서비스 번호나 낯선 주소로 메시지를 미리 채우는 코드는 위험 신호예요.