mailto 链接怎么写:让邮箱可点击,还能预填主题和正文
讲清 mailto 邮件链接的写法:点一下打开邮件客户端,预填收件人、主题、正文、抄送密送。带 subject 和 body 参数编码细节,一个真实例子,以及它在手机和网页上的局限。
mailto 链接怎么写:让邮箱可点击,还能预填主题和正文
我维护过一个落地页,联系方式就是一行 support@example.com 的纯文本。后来看后台,愿意写信进来的访客寥寥。换成可点击的 mailto 链接,再把主题和正文预填好之后,真正发邮件来的人明显多了。差别不在文案,而在那「点一下就打开邮件」的动作本身,少了复制粘贴这一道坎。
这篇就把 mailto 链接讲透:它怎么起作用,主题正文怎么编码,一个能直接用的例子,以及它在哪些场景会失灵。
mailto 链接到底是什么
mailto 链接是一种网址,只不过开头不是 https,而是 mailto:。浏览器看到它,不会去加载一个页面,而是把它交给系统默认的邮件程序,比如 Outlook、Apple Mail 或 Gmail。程序随即弹出一封新邮件,把链接里写好的内容预先填进去。
最朴素的写法是 mailto:sales@acme.com,点开就是一封发往这个邮箱的空白邮件。它是把邮箱地址变成可点击元素的标准做法,比起让访客盯着一串文字手动复制,体验差了不止一截。
给链接加上主题和正文
光有收件人还不够。真正好用的地方在于,你可以在地址后面接一段查询字符串,把主题和正文也预填进去。规则是用 ? 开头,参数之间用 & 连接:
mailto:a@b.com?subject=Hello&body=Hi%20there
点开它,邮件客户端会打开一封主题为 Hello、正文为 Hi there 的草稿。注意正文里那个 %20,这就是编码的关键。
参数编码:空格和换行不能直接写
网址里不能塞裸的空格,也不能塞裸的换行。一旦直接写,某些环境会把网址提前截断,你的主题就只剩前半截。所以:
- 空格要写成
%20 - 换行要写成
%0A(line feed 的编码形式) &、=、?这类本身有语法含义的字符,出现在内容里时要转义,否则会被当成参数分隔符
举个会出错的例子:你想让主题是 Q3 报价 & 付款,如果直接拼进去,那个 & 会被读成「下一个参数开始了」,后面的字就丢了。正确做法是把它转义掉。这种活儿手写很容易漏,可以交给 mailto 链接生成器,你填纯文本,它负责把每个特殊字符换成对应编码。想单独理解编码规则本身,URL 编码工具 也能让你逐字符看清 %20、%0A 是怎么来的。
一个真实的输入输出例子
假设你要做一个「报告问题」的链接:收件人是 bugs@yourco.com,主题预填 Bug 反馈,正文放一个两行的小模板。
输入(你在表单里填的纯文本):
- 收件人:
bugs@yourco.com - 主题:
Bug 反馈 - 正文(两行):
`` 复现步骤: 期望结果: ``
输出(拼好的链接):
mailto:bugs@yourco.com?subject=Bug%20%E5%8F%8D%E9%A6%88&body=%E5%A4%8D%E7%8E%B0%E6%AD%A5%E9%AA%A4%EF%BC%9A%0A%E6%9C%9F%E6%9C%9B%E7%BB%93%E6%9E%9C%EF%BC%9A
你会看到主题里的空格变成了 %20,中文被编成了 %E5... 这串字节,两行之间的换行变成了 %0A。把它挂到一个「报告问题」按钮后面,访客点一下,邮件草稿就带着模板打开了,每份反馈到手时格式都一致,你不必每次追着问那几样基本信息。
抄送、密送和多个收件人
多个收件人,在收件人栏用逗号分隔,比如 mailto:alice@x.com,bob@y.com。这里有个坑:很多人用 Outlook 用惯了,习惯用分号分隔,但 mailto 规范认的是逗号,分号在不少客户端里会让第二个收件人悄悄消失。
抄送和密送分别是 cc= 和 bcc= 两个参数。抄送是所有人都看得见的副本收件人;密送是对其他人隐藏的收件人,群发通知又不想暴露每个人邮箱时,用它最合适。
放进 HTML 页面要注意的一点
把链接包进 <a> 标签就能用,href 设成 mailto 链接,可见文字写「给我们发邮件」。但有个细节:在 HTML 属性里,参数之间的 & 应当写成实体 &,否则严格的解析器可能误读整条链接。生成器的 HTML 标签输出已经替你写好了实体,直接复制粘贴即可,省得自己核对。
mailto 链接的局限
它不是万能的,几个场景要心里有数:
- 用户得装了并配置好默认邮件程序,链接才有意义。没设默认客户端的电脑,点了可能什么都不弹,或者弹出一个莫名其妙的设置框。
- 手机上行为不一致。多数手机会唤起自带邮件 App,但有人只用网页版 Gmail,体验就断了。
- 正文长度有上限。不同客户端对 mailto 链接总长度的容忍度不一样,正文塞太长可能被截断,别拿它当邮件群发工具用。
- 它只是「预填」,不是「发送」。草稿打开后还得用户自己点发送,你控制不了之后的事。
如果你只是想确认填进去的地址本身是否合法,可以先用 邮箱格式校验工具 检查一遍,避免把拼错的地址做进链接里,白白浪费访客那一次点击。
小结
mailto 链接的价值,在于把「找到邮箱、复制、粘贴、写主题」这一串动作压缩成点一下。写对它的核心就两件事:参数编码别出错(空格 %20、换行 %0A、特殊字符转义),多收件人用逗号别用分号。剩下的交给工具处理,你只管想清楚要预填什么内容。
Made by Toolora · Updated 2026-06-13