Cách tạo liên kết email
Bắt đầu href của liên kết bằng mailto: và địa chỉ. Nhấp vào sẽ mở một thư mới gửi tới địa chỉ đó trong ứng dụng thư của người đọc.
Bản xem trước không mở ứng dụng khác: nhấp vào một trong các liên kết này ở đó sẽ hiện địa chỉ mà nó sẽ mở. Trên một trang thật, liên kết đầu mở một email mới và liên kết thứ hai bắt đầu cuộc gọi trên điện thoại.
Dùng chính địa chỉ làm chữ liên kết. Người đọc chưa cài ứng dụng thư (thường gặp trên máy tính dùng webmail trong trình duyệt) vẫn sao chép được, còn một liên kết chỉ ghi "Gửi email cho chúng tôi" sẽ khiến họ bế tắc.
Subject, body, cc và bcc
Liên kết mailto có thể điền sẵn nhiều phần hơn của thư. Thêm tham số sau dấu ? và nối chúng bằng &, giống chuỗi truy vấn của URL:
| Tham số | Điền vào | Ví dụ |
|---|---|---|
subject | Dòng tiêu đề | ?subject=Order%20question |
body | Nội dung thư | &body=Hi%20there |
cc | Người nhận bản sao | &cc=sales@example.com |
bcc | Người nhận bản sao ẩn | &bcc=log@example.com |
Nhiều người nhận được đặt ở phần địa chỉ, ngăn cách bằng dấu phẩy: mailto:ana@example.com,bob@example.com.
Các giá trị phải được mã hóa URL: khoảng trắng là %20, xuống dòng là %0D%0A, & là %26 và ? là %3F. Script trong ví dụ này giải mã từng liên kết để bạn thấy ứng dụng thư nhận được gì:
Tiêu đề Order #123 phải viết là Order%20%23123: một dấu # trần sẽ kết thúc URL tại đó, và phần nội dung thư bị mất. Cũng đừng dùng + thay cho khoảng trắng. Trong liên kết mailto, + là dấu cộng thật, và nhiều ứng dụng thư hiển thị nó đúng như vậy.
Tạo liên kết mailto bằng JavaScript
Tự mã hóa bằng tay rất dễ sai. encodeURIComponent làm việc đó cho bạn. Gõ vào các ô và liên kết bên dưới sẽ cập nhật:
encodeURIComponent biến & thành %26 và xuống dòng thành %0A; lệnh replace biến xuống dòng thành cặp %0D%0A mà email cần. Giữ nguyên phần địa chỉ như đã gõ: @ và , được phép ở đó mà không cần mã hóa.
Liên kết điện thoại với tel: và sms:
tel: tạo liên kết bấm để gọi. Viết số kèm mã quốc gia và không có khoảng trắng trong href; phần chữ hiển thị có thể định dạng tùy ý.
tel:+442079460958hoạt động từ mọi quốc gia. Một số nội địa nhưtel:02079460958chỉ dùng được với người gọi trong nước đó.- Dấu gạch nối được phép làm ký tự phân cách (
tel:+1-555-123-4567); khoảng trắng không thuộc định dạng, nên hãy bỏ chúng khỏihref. sms:mở ứng dụng nhắn tin. Thêm nội dung tin nhắn bằng?body=chạy được trên nhiều ứng dụng, nhưng mức hỗ trợ khác nhau, nên đừng dựa vào nó.- Trên máy tính,
tel:mở một ứng dụng gọi điện nếu đã cài (như FaceTime hoặc softphone), và không làm gì trong trường hợp ngược lại.
Safari trên iPhone tự biến số điện thoại trong văn bản thường thành liên kết. Nếu điều đó làm hỏng thứ gì đó như mã đơn hàng, hãy tắt nó bằng <meta name="format-detection" content="telephone=no">.
Thư rác và địa chỉ email
Một địa chỉ trong liên kết mailto có thể bị đọc bởi bất kỳ bot nào tải trang về. Những mẹo như viết hello [at] example [dot] com hoặc ghép địa chỉ bằng JavaScript chặn được một số công cụ thu thập đơn giản, nhưng cũng làm liên kết khó dùng hơn. Một form liên hệ, được giới thiệu trong form trong HTML, giữ địa chỉ hoàn toàn bên ngoài trang. Với hầu hết các trang web, một bộ lọc thư rác tốt cho hộp thư là cách đơn giản hơn.
Tránh <form action="mailto:...">. Cách này phụ thuộc vào ứng dụng thư của người đọc, gửi các trường ở dạng mã hóa URL khó đọc, và không cho bạn biết thư có được gửi đi hay không.
Lỗi thường gặp
- Quên
mailto:.href="hello@example.com"là liên kết tương đối tới một trang mang tên địa chỉ đó. - Khoảng trắng hoặc
#chưa mã hóa trong subject hoặc body. Mã hóa giá trị bằng%20,%23hoặcencodeURIComponent. - Dùng
+thay cho khoảng trắng. Nó hiện ra thành dấu cộng. - Dùng
?thứ hai thay vì&. Chỉ tham số đầu tiên đứng sau?; các tham số còn lại được nối bằng&. - Chỉ ghi "Gửi email cho chúng tôi", khiến người dùng webmail không có gì để sao chép.
- Số điện thoại nội địa trong
tel:. Hãy thêm mã quốc gia.
Câu hỏi thường gặp
Làm sao tạo liên kết email trong HTML?
Dùng một liên kết có href bắt đầu bằng mailto: theo sau là địa chỉ: <a href="mailto:hello@example.com">hello@example.com</a>. Nhấp vào sẽ mở một thư mới trong ứng dụng thư mặc định của người đọc.
Làm sao thêm tiêu đề vào liên kết mailto?
Thêm nó làm tham số truy vấn sau dấu ?: mailto:hello@example.com?subject=Order%20question. Mã hóa khoảng trắng thành %20, và nối thêm tham số bằng &, ví dụ ?subject=Hi&body=Hello.
Làm sao gửi liên kết mailto tới nhiều người nhận?
Ngăn cách các địa chỉ bằng dấu phẩy: mailto:ana@example.com,bob@example.com. Dùng tham số cc= và bcc= để gửi bản sao: mailto:ana@example.com?cc=bob@example.com&bcc=cy@example.com.
Làm sao biến số điện thoại thành liên kết bấm được trong HTML?
Dùng liên kết tel: với số ở định dạng quốc tế: <a href="tel:+15551234567">+1 555 123 4567</a>. Trên điện thoại, nó bắt đầu một cuộc gọi; trên máy tính, nó mở ứng dụng gọi điện đã cài, nếu có.
Vì sao liên kết mailto không làm gì cả?
Liên kết chỉ chuyển địa chỉ cho ứng dụng thư mặc định. Nếu người đọc chưa cài đặt ứng dụng nào, điều thường gặp trên máy tính dùng webmail, thì chẳng có gì hữu ích xảy ra. Hãy hiển thị chính địa chỉ làm chữ liên kết để người đọc sao chép được.