mailto、sms 與 tel 連結

又稱: mailto URI, tel URI, sms URI, SMSTO, 電子郵件 QR Code, 電話 QR Code

定義

mailto、sms 與 tel 連結是標準的 URI scheme,用來開啟新郵件、簡訊或撥打電話。放在 QR Code 中,會填好相關資料,但仍要由使用者按下傳送或撥號。

三種 scheme

每種 scheme 都是一小段文字,手機知道要把它交給哪個 App。mailto: 開啟電子郵件 App,tel: 開啟撥號畫面,sms: 開啟訊息 App,並且已填好收件人,有時連訊息內容也填好了。

電話號碼最好使用帶有加號與國碼的國際格式,例如 +15035550123,這樣其他國家的訪客也能使用這個 QR Code。

  • 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 的 body 參數解析並不一直相同,這也是較舊的 SMSTO: 形式在 QR Code 產生器中仍然常見的原因之一。印刷前在 iPhone 與 Android 兩邊都測試,是可靠的檢查方式。

這些 QR Code 做不到的事

QR Code 本身無法寄出電子郵件、傳送簡訊或撥打電話。它只是開啟已填好欄位的 App,要不要按下傳送或撥號,由掃描的人決定。

因為收件人在傳送前就看得見,所以大家應該檢查是否與預期相符。如果 QR Code 預先填好要傳給加值費率號碼或陌生地址的訊息,就是警訊。

常見問題

QR Code 可以自動傳送簡訊嗎?

不行。sms 或 SMSTO 的 QR Code 會開啟訊息 App,並填好號碼與文字,仍然需要由使用者按下傳送。

如何製作會撥打電話號碼的 QR Code?

編碼 tel: 加上國際格式的號碼,例如 tel:+15035550123。掃描後會開啟撥號畫面,號碼已填好。

如何在電子郵件 QR Code 中加入主旨?

使用 mailto:地址?subject=你的主旨&body=你的文字,其中的空格與特殊字元要做百分比編碼。

sms: 與 SMSTO: 有什麼不同?

sms: 是 RFC 5724 的標準 URI scheme,SMSTO: 則是早期 QR Code 讀取 App 的較舊慣例。大多數手機兩者都讀得了。

來源與標準

所有名詞