探索短信认证背后隐藏的运营、基础设施和全球性成本。了解企业如何降低短信 OTP 开销并找到更好的替代方案。
Alex
Created: July 15, 2025
Updated: July 16, 2025
See the original blog version in English here.
60-page Enterprise Passkey Whitepaper:
Learn how leaders get +80% passkey adoption. Trusted by Rakuten, Klarna & Oracle
越来越多的公司正在放弃基于短信的一次性密码 (OTP)(通常称为短信验证码),不再将其作为双因素认证 (2FA) 策略的一部分。随着安全威胁变得日益复杂,依赖于短信认证的风险也越来越大,因为它容易受到网络钓鱼、SIM 卡交换和信息拦截的攻击,已经显得过时。但这并不是公司决定更换其认证方式的主要原因,高昂的短信成本才是!
谷歌最近的转变就是一个例子:Gmail 正在开始取代短信 OTP,原因是其安全性差、成本高,并且为了提升运营效率(这同样能节省短信成本)。2025 年 2 月,该公司宣布了这一变更,未来用户将通过智能手机扫描 QR 码进行认证,而不是接收短信验证码。总的来说,谷歌希望在其所有服务中逐步淘汰短信 OTP,同时仍然提供抗网络钓鱼的多因素认证(MFA)(例如,作为 FIDO 联盟的成员,谷歌很快意识到了 Passkey 认证的潜力,并决定将其用于其用户量最大的谷歌账户登录)。
理解像谷歌这样的大公司为何以及如何放弃短信 OTP 非常重要。因此,我们将在本博客中回答以下问题:
短信认证,通常被称为短信验证或短信验证码,虽然仍然流行,但成本日益高昂。这是一种通过短信验证用户身份的方法。通常,可以区分为两种类型:
单因素流程(仅短信 OTP): 用户输入手机号码/邮箱,系统通过短信发送一次性验证码,用户输入验证码以验证身份。
双因素流程: 用户首先输入用户名/密码,系统通过短信发送验证码,用户输入验证码作为第二因素。在这种情况下,短信是一种基于“持有物”的因素,因为用户需要能访问自己的移动设备才能使用它。
为了决定合适的流程并判断这种认证方法是否适合您的企业,理解短信认证的工作原理至关重要。这些流程的典型用例包括:
短信不仅用于认证。实际上,它们最初是为两个人之间的消息传递而创建的。然而,随着时间的推移,短信的使用模式和类型也演变出了不同的形式:
这是最经典的短信形式,即两个人通过各自的设备互相发送消息。它通常是非正式、直接且小批量的。P2P 短信使用标准的电话号码,并由移动运营商处理。
这是指公司、服务或系统向用户发送消息。它通常是自动化的,并大规模使用。企业使用 A2P 短信进行客户支持、营销、提醒和认证。由于这些不是一对一的文本,它们通常通过短代码、免费电话号码或专用的长代码发送。短信 OTP 就属于这一类(例如:支付确认、OTP、促销信息等)。
这是指个人向企业或系统发送消息。P2A 短信允许用户向短代码或号码发送关键字或命令以触发某个操作(例如:支持对话、出席确认)。
根据消息类型的不同,不同用例的成本也会有所不同:
交易型短信是在满足特定条件时,作为预定义流程的一部分自动触发发送的。示例成本包括:
总的来说,推广型消息主要用于营销(例如,宣布促销、特别优惠或新产品发布)。示例成本包括:
推广型短信的成本通常高于交易型短信,后者传递的是必要信息(如订单确认、一次性密码 (OTP)、支付通知等)。
交易型短信通常更便宜,因为它们被归类为关键通信,不太可能被运营商或监管机构过滤或阻止。相比之下,推广型消息通常有更严格的指导方针和更高的费用,尤其是在广告法规严格的地区。
另一个影响成本的因素是发送的负载大小,这在短信和彩信 (MMS) 之间有所不同,我们将在下一节讨论。
让我们简要了解一下短信 (Short Message Service) 和彩信 (Multimedia Messaging Service) 之间的区别。
短信的概念诞生于 20 世纪 80 年代初欧洲 GSM(全球移动通信系统)标准组织的讨论。当时有人提议,160 个字符足以满足大多数文本消息的需求,这后来成为了短信的字符限制。虽然基本的短信功能保持不变,但现代智能手机提供了更高级的功能,例如安卓用户可以设置自动转发短信,以实现业务连续性或安全监控。标准短信具有以下特点:
彩信是在 20 世纪 90 年代作为短信的扩展而开发的,旨在支持图像、音频和视频等多媒体内容。它在 21 世纪初由 3GPP(第三代合作伙伴计划)标准化。这两种服务针对其用例具有不同的功能。彩信具有以下特点:
除了通过蜂窝网络发送的短信和彩信外,还有一种名为 RCS(富通信服务)的服务最近越来越受欢迎,尤其是在 iOS 18 中得到支持后。
在认证方面,它支持商业消息和认证,通常通过经过验证的商业聊天进行。消息可以包含交互式按钮(例如,“确认登录”)。
WhatsApp 消息通过 WhatsApp 应用使用 Wi-Fi 或移动数据发送,而不是通过您的移动运营商。它们在全球范围内通用,不依赖于您手机号码的运营商,只需要双方都安装了 WhatsApp。
使用 WhatsApp 消息进行认证看起来与标准的短信 OTP 类似,但消息是通过应用访问的。
功能 | 短信 | 彩信 | RCS | |
---|---|---|---|---|
文本限制 | 160 个字符 | 与短信相同 | 几乎无限制 | 几乎无限制 |
媒体支持 | 否 | 是(图片、音频、低分辨率视频) | 是(高分辨率图片、视频、GIF) | 是(高分辨率媒体、文档、贴纸) |
群聊 | 有限 | 基本的彩信群聊 | 是(高级功能) | 是(最多 1024 人) |
Wi-Fi/数据支持 | 否 | 否 | 是 | 是 |
端到端加密 | 否 | 否 | 是(在某些应用中,如谷歌消息) | 是(所有聊天的默认设置) |
跨平台支持 | 是 | 是 | 否(目前仅限安卓) | 是(安卓、iOS、网页、桌面) |
无网络工作 | 是 | 是 | 否 | 否 |
全球可用性 | 是 | 是 | 否(取决于运营商和地区) | 是 |
备份支持 | 否 | 否 | 否 | 是(Google Drive/iCloud) |
多媒体质量 | 不适用 | 低到中 | 高 | 高 |
消息成本 | 按条收费(运营商) | 按条收费(更贵) | 通过 Wi-Fi/数据免费(可能消耗数据) | 通过 Wi-Fi/数据免费 |
加密所有权 | 运营商管理(无) | 运营商管理(无) | 应用/运营商相关(部分) | WhatsApp 所有(完全加密) |
在评估短信认证成本时,公司常常忽略了恢复、支持开销和基础设施等隐藏费用。在大量使用的环境中,OTP 短信价格会迅速攀升,使得扩展变得具有挑战性。短信 OTP 费用的上涨是由重塑电信格局的几个因素驱动的。
电信供应商正在大力投资基础设施升级,以维持基于短信的认证的可靠性和安全性。
全球范围内用于各种功能的短信使用量增加,给网络容量带来了压力,需要持续的维护和扩展,因为全球每天平均发送 230-270 亿条短信。
与各种电信网络的兼容性以及遵守不同地区法规的成本高昂,但对于在国际边界间可靠地交付消息是必要的。此外,网络维护和升级通常占运营预算的 15-20%。
短信 OTP 的昂贵功能(如请求速率限制、传输安全、反欺诈措施等)虽然提高了安全性,但也增加了价格。
对于计划进行国际短信流量业务的企业来说,了解不同国家和运营商的短信定价至关重要。成本会因当地运营商费用、法规和发送的消息量而有显著差异。以下是不同国家/地区每条短信的典型成本(以欧元计)的比较:
在美国,每条短信的成本在不同供应商之间差异显著,从 0.00500 欧元到 0.01429 欧元不等。
截至 2025 年,美国电信行业由 T-Mobile US、Verizon Communications、AT&T、Comcast 和 Charter Communications 领导。T-Mobile 在与 Sprint 合并后迅速发展,提供最快的 5G 下载速度和广泛的全国覆盖。Verizon 拥有 37% 的最大无线市场份额,是顶级移动服务提供商。Comcast 在有线电视和宽带领域仍然重要,而 Charter 在提供区域电信和互联网服务方面发挥着关键作用。
运营商 | 每条短信价格 |
---|---|
Airadigm | $0.01465 |
Astca | $0.00650 |
AT&T Mobility | $0.00650 |
Bluegrass | $0.00650 |
C Spire Wireless | $0.00650 |
Cellular One | $0.01465 |
Commnet Wireless | $0.00569 |
Epic Touch | $0.01465 |
GCI Wireless | $0.00650 |
Immix Wireless | $0.01465 |
Lycamobile | $0.00650 |
MetroPCS | $0.00650 |
Sprint | $0.01465 |
T-Mobile USA | $0.01626 |
Truphone | $0.00569 |
U.S. Cellular | $0.01280 |
Verizon | $0.00569 |
Westlink | $0.00650 |
在加拿大,每条短信的成本差异显著,价格在 0.00857 欧元到 0.07800 欧元之间,大多数主要供应商的收费在 0.01429 欧元到 0.02029 欧元左右。
加拿大的电信行业由 Rogers、Bell 和 Telus 主导,它们共同控制了超过 85% 的无线市场。Rogers 拥有 31.9% 的最大移动份额,并通过收购 Shaw 扩大了其在加拿大西部的影响力。Bell 约占无线订阅的 30%,以推出北美最快的互联网速度而闻名。Telus 约占 28% 的市场份额,并将其强大的无线服务与其不断增长的医疗保健部门相结合。在与 Rogers 合并之前,Shaw 专注于加拿大西部,而 Quebecor 的 Videotron 则以其广泛的区域覆盖范围主导着魁北克的媒体和电信市场。
运营商 | 每条短信价格 |
---|---|
Bell | $0.02307 |
Eastlink | $0.00975 |
Execulink | $0.00975 |
Fido | $0.01626 |
Freedom Mobile | $0.02276 |
Globalstar | $0.00975 |
ICE Wireless | $0.00975 |
MTS | $0.02307 |
Quadro | $0.01465 |
Rogers Wireless | $0.01626 |
SaskTel | $0.00975 |
Shaw Telecom | $0.02276 |
SSI Connexions | $0.00975 |
TBay | $0.00975 |
Telus | $0.01302 |
Videotron | $0.00975 |
Wightman Telecom | $0.00975 |
Xplornet | $0.08877 |
在澳大利亚,各供应商的短信成本相对一致,通常在 0.01571 欧元左右,不过 Lycamobile 的费率略低,为 0.01375 欧元。
澳大利亚的电信市场由 Telstra、Optus 和 TPG Telecom 主导。Telstra 拥有 43% 的最大份额,并运营着最广泛的移动网络,覆盖超过 99.5% 的人口。Optus 紧随其后,约占 30% 的市场份额,并通过其广泛的 4G 网络在区域地区拥有强大的影响力,同时推进 5G 和数字化转型。TPG Telecom 提供全国性的移动和互联网服务,专注于有竞争力的定价。Vodafone(在 Vodafone Hutchison 旗下运营)控制着约 17% 的移动订阅,并专注于价格实惠的预付费选项。Macquarie Telecom 通过专业的企业、云和数据中心解决方案为商业和政府客户提供服务。
运营商 | 每条短信价格 |
---|---|
Lycamobile | $0.01566 |
Norfolk Telecom | $0.01789 |
Optus | $0.01789 |
Pivotel | $0.01789 |
Telstra | $0.01789 |
Vodafone | $0.01789 |
英国的每条短信成本是欧洲最高的之一,通常在每条消息 0.03971 欧元左右,不过 Gamma Telecom 和 Vectone Mobile 的费率较低,分别为 0.02313 欧元和 0.03000 欧元。
英国电信市场由 Vodafone、BT Group、Sky UK、O2 (Telefonica UK) 和 Virgin Media 主导。Vodafone 是移动和宽带领域的主要参与者,优先考虑 5G 扩张和数字化转型。BT Group 在宽带、固定电话和移动服务领域占据主导地位,大力推进光纤宽带和增强的数字基础设施。以电视服务闻名的 Sky UK 通过将电视与宽带捆绑并改善客户服务,已扩展到电信领域。O2 仍然是关键的移动提供商,重点关注 5G 推广和数字解决方案。Virgin Media 提供高速宽带、移动和电视服务,利用捆绑产品进行有效竞争。
运营商 | 每条短信价格 |
---|---|
3 | $0.04522 |
BT | $0.04522 |
Cable & Wireless | $0.04522 |
Cloud9 | $0.04522 |
Gamma Telecom | $0.02635 |
Greenfone | $0.04522 |
Jersey Airtel | $0.04522 |
Jersey Telecom | $0.04522 |
Lycamobile | $0.04522 |
Manx Telecom | $0.04522 |
O2 | $0.04522 |
Orange | $0.04522 |
Sky | $0.04522 |
Sure Mobile | $0.04522 |
T-Mobile | $0.04522 |
Truphone | $0.04522 |
Vectone Mobile | $0.03415 |
Virgin Mobile | $0.04522 |
Vodafone | $0.04522 |
在德国,每条短信的成本在 0.06988 欧元到 0.09000 欧元之间,大多数主要供应商的收费在每条消息 0.07714 欧元到 0.08571 欧元左右。
德国的电信行业由全球和本地主要供应商混合主导,包括 Deutsche Telekom、Vodafone、Telefónica (O2)、Freenet 和 United Internet。Deutsche Telekom 是最大的供应商,为近 6700 万移动用户提供服务,目标是到 2025 年底在全国 90% 的地区和 99% 的人口中实现 5G 覆盖。Vodafone 在移动连接方面领先,拥有超过 7850 万用户,并为三分之二的家庭提供千兆互联网。Telefónica Germany (O2) 为超过 4500 万移动用户和 240 万宽带用户提供服务,重点是扩展其 5G 网络和改善客户体验。Freenet 专注于移动和数字服务,包括其电视流媒体平台 waipu.tv。United Internet 在宽带服务方面实力雄厚,在全国范围内提供高速互联网。
运营商 | 每条短信价格 |
---|---|
Lycamobile | $0.10244 |
O2 | $0.09755 |
T-Mobile | $0.08785 |
Truphone | $0.07952 |
Vodafone | $0.08945 |
在法国,短信成本因供应商而异,通常在 0.03950 欧元到 0.05143 欧元之间,主要供应商如 Orange 和 Free Mobile 的收费在 0.04571 欧元到 0.04643 欧元左右。
法国的电信市场是欧洲最先进的市场之一,由激烈的竞争、广泛的 5G 部署和对光纤基础设施的大量投资驱动。Orange 仍然是该国最大的运营商,提供广泛的移动、宽带和固定电话服务,拥有超过 3000 个专注于城市地区的活跃 5G 站点。SFR 是一个关键参与者,拥有广泛的移动和宽带服务以及近 5000 个 5G 站点,强调无限数据计划和客户体验。Bouygues Telecom 运营着超过 6700 个 5G 站点,并通过战略合作伙伴关系专注于有竞争力的定价和数字创新。Iliad 旗下的 Free Mobile 以超过 13000 个活跃站点引领 5G 部署,并以实惠、对消费者友好的定价而闻名。Alcatel-Lucent 在幕后发挥作用,通过设备和研发增强国家电信基础设施。
运营商 | 每条短信价格 |
---|---|
Bouygues | $0.05284 |
Coriolis | $0.05852 |
Free Mobile | $0.05284 |
Lebara | $0.04499 |
Lycamobile | $0.05365 |
NRJ Mobile | $0.05365 |
Orange | $0.05203 |
SFR | $0.05365 |
Sierra Wireless | $0.04626 |
Syma Mobile | $0.04626 |
Transatel Mobile | $0.05284 |
Truphone | $0.05284 |
Vectone Mobile | $0.04626 |
在印度,大多数运营商的每条短信平均成本相当一致,通常在每条消息 0.06000 欧元左右,Tata Docomo 的价格略有不同,为 0.05750 欧元。
印度的电信市场是世界上最大、增长最快的市场之一,受广泛的智能手机普及、低成本数据和快速的 5G 推广推动。Reliance Jio 以 41.5% 的市场份额和超过 4.5 亿无线用户领先,主导移动、宽带 (JioFiber) 和数字服务,同时引领 5G 创新。Bharti Airtel 紧随其后,拥有 25.25% 的市场份额,提供移动、宽带和金融服务,并专注于在城乡地区扩展 5G。BSNL 拥有 16.14% 的份额,并强调可负担的连接性,尤其是在农村地区,同时推出本土的 4G 和 VoWiFi 网络。Vodafone Idea 拥有约 2.1 亿用户,继续改善其 4G 服务并逐步引入 5G。MTNL 主要在德里和孟买等大都市运营,专注于固定电话、宽带和企业服务。
运营商 | 每条短信价格 |
---|---|
Aircel | $0.06829 |
Airtel | $0.06829 |
BSNL Mobile | $0.06829 |
Dolphin | $0.06829 |
HFCL | $0.06829 |
Loop Mobile | $0.06829 |
MTS | $0.06829 |
Reliance | $0.06829 |
Reliance Jio | $0.06829 |
Tata Docomo | $0.06593 |
Uninor | $0.06829 |
Videocon | $0.06829 |
Vodafone Idea | $0.06829 |
日本的每条短信成本因供应商而异,通常在 0.03286 欧元(Rakuten)到 0.05000 欧元(KDDI)之间,主要运营商如 NTT Docomo 的收费在每条消息 0.04214 欧元左右。
日本的电信行业是全球最先进的行业之一,由强大的基础设施、快速的 5G 普及和创新的数字服务驱动。NTT 通过其移动部门 NTT Docomo 领导市场,拥有超过 7000 万用户,提供最广泛的覆盖和最快的速度,同时在 5G 和 IoT 解决方案方面取得进展。KDDI (au) 是第二大提供商,拥有约 6000 万用户,提供强大的城市覆盖,并专注于云服务、IoT 和客户体验。SoftBank 排名第三,专注于城市中心的数据密集型移动计划,重点是数字化转型和技术投资。Rakuten Mobile 是一个较新的颠覆者,凭借实惠的定价和创新的基于开放 RAN 的 5G 网络继续快速增长。Internet Initiative Japan (IIJ) 主要服务于企业客户,提供互联网、云和网络安全服务。
运营商 | 每条短信价格 |
---|---|
KDDI | $0.05691 |
NTT Docomo Inc | $0.04799 |
Rakuten | $0.03742 |
SoftBank | $0.04228 |
印度尼西亚的每条短信成本是最高的之一,通常在 0.30000 欧元(Telkomsel)到 0.34571 欧元(Smartfren)之间,大多数运营商的收费接近 0.32929 欧元。
印度尼西亚的电信行业是东南亚最具活力的行业之一,由快速的 5G 扩张、数字普及和近期的市场整合驱动。Telkomsel 以 45% 的市场份额和超过 1.7 亿移动用户领先,通过 IndiHome 等平台提供移动、宽带和数字服务。Indosat Ooredoo Hutchison 紧随其后,拥有 28% 的份额和约 1.02 亿用户,专注于 5G 创新和企业服务。XL Smart 是由 XL Axiata 和 Smartfren 合并而成的新实体,占据 25% 的市场份额,为超过 9400 万用户提供服务,强调人工智能、娱乐和网络效率。Tri Indonesia 仍然是一个规模较小但具有竞争力的参与者,以实惠的数据计划瞄准年轻人群。
运营商 | 每条短信价格 |
---|---|
3 | $0.37481 |
Indosat | $0.37481 |
Smartfren | $0.39373 |
Telkomsel | $0.34145 |
XL | $0.37401 |
在阿拉伯联合酋长国,短信成本是全球最高的之一,主要运营商 Etisalat 和 Du 的费率通常在每条消息 0.12300 欧元到 0.12600 欧元左右。
阿联酋的电信市场由 Etisalat 和 du(阿联酋综合电信公司)主导。Etisalat 是市场领导者,提供全面的移动、宽带和数字服务,重点关注 5G 部署、智慧城市计划和数字化转型。Du 紧密竞争,专注于移动和家庭服务,并扩展其光纤网络和企业解决方案。两家运营商都是阿联酋成为全球数字中心愿景的核心,投资于人工智能、IoT 和先进的网络基础设施。该市场受到高度监管和创新驱动,反映了该国更广泛的技术前瞻性雄心。
运营商 | 每条短信价格 |
---|---|
Etisalat | $0.14341 |
Du | $0.13900 |
并非所有短信成本都相同,因为不同的云提供商根据地区、流量和甚至用例收取不同的费率。以下是四个常用平台的分析:
使用 AWS(通常通过 Amazon SNS - 简单通知服务)发送短信的成本取决于消息数量,因为它是按消息收费的,费率取决于目标国家和消息类型。虽然对于低流量使用来说价格实惠,但在大规模使用时成本会迅速增加,特别是对于用户遍布高成本地区的全球应用。
Firebase 提供了一个无缝的基于短信的电话认证系统。然而,只有有限数量的消息是免费的。超出部分,短信成本将计入您的 Google Cloud 项目,同样因目的地而异。
Twilio 是开发人员最广泛使用的消息 API 之一。它提供全球覆盖、对开发人员友好的 API 和详细的报告。然而,与其他公司相比,Twilio 的定价往往偏高,尤其是在考虑送达确认和专用号码等功能时。
MessageBird 是一家总部位于欧洲的 CPaaS 提供商,提供全球短信发送服务,专注于欧盟合规性和高送达率。在某些地区,它可能比 Twilio 更具成本效益。
除了每个地区短信流量的直接成本外,还有一些隐藏的运营成本,这些成本不会立即想到,但由于其高昂,仍然扮演着重要角色。
当用户失去对其电话号码或设备的访问权限时,您的支持团队通常需要手动验证其身份,然后才能允许重置或恢复。
每当用户因为没有收到短信 OTP 或更换了电话号码而联系支持团队时,都会消耗宝贵的支持团队资源。
所有这些情况都不会在资产负债表上的短信流量项目下显示,但它们会降低运营效率,增加客户支持开销,降低用户满意度,同时将人们暴露于风险之中。
实施和维护短信 OTP 系统不仅仅是发送消息,它需要一个强大的基础设施来确保可靠性。这些基础设施组件通常带有持续的、有时被低估的成本:
为了确保您的短信网关在全球电信网络中的正常运行时间、吞吐量和可靠交付,存在经常性成本。
将短信 OTP 集成到您的产品或认证流程中,涉及前期的工程工作和长期的维护(构建 API、处理交付回调、日志记录、重试逻辑、错误处理、与用户账户服务同步等)。
为了确保消息及时可靠地送达,必须实施实时监控系统。这些系统跟踪送达率、延迟、失败率和特定地区的问题。
虽然短信一次性密码 (OTP) 曾是双因素认证的首选,但越来越多的公司现在正在放弃它们。这一转变是由三个关键因素引发的:高成本、弱安全性和差的用户体验。在当今安全威胁和成本优化都备受关注的环境中,依赖短信 OTP 越来越难以自圆其说。
现代认证策略正朝着抗网络钓鱼的选项发展,如 Passkey 或基于应用的认证。这些方法提供了更强的安全性、更流畅的用户体验和更具成本效益的前进道路,特别是与短信 OTP 交付所涉及的经常性费用相比。
然而,如果您的企业在可预见的未来仍计划依赖短信 OTP,那么以清晰和战略性的眼光来处理这种方法至关重要。以下是一些需要牢记的关键问题和考虑因素:
了解您的 OTP 数量对于管理您的短信活动成本和协商批量消息费率至关重要。如果您在运行登录验证的同时还进行营销短信流量,这一点尤其重要,因为这些活动会迅速累积费用。
不同的国家和运营商收取不同的短信费用,因此国际 OTP 交付的成本概况可能会大相径庭。进行区域规划并使用可靠的短信成本 API 可以帮助预测费用并防止交付失败。
虽然短信提供了第二因素,但它本身并不抗网络钓鱼。许多组织会加入实时欺诈检测或备用认证流程来弥补这一弱点。
除了短信交付本身,其背后的基础设施(API 集成、日志记录、错误处理)可能会成为一个长期的维护挑战。使用强大的短信成本 API 不仅可以提供有关交付成功率的见解,还可以提供有关持续成本优化的信息。
在本博客中,我们仔细研究了使用 OTP 的短信认证,并分析了与此认证方法相关的成本。我们发现,从商业角度来看,Passkey 或其他 MFA 方法是更便宜的替代方案,甚至能为用户带来更高的安全性,同时提供一流的用户体验。此外,我们还回答了以下问题:
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents