V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hbtech
V2EX  ›  问与答

为什么邮箱验证都是发邮件给用户,而不是接收用户发的邮件

  •  
  •   hbtech · 1 天前 via Android · 2502 次点击
    但是手机号验证两种方式都有
    22 条回复    2025-01-06 11:17:54 +08:00
    Tink
        1
    Tink  
       1 天前 via Android
    上行邮件验证的例子也有,只不过特别少
    CarrieBauch
        2
    CarrieBauch  
       1 天前
    1. 手机验证,有短信上行的场景是因为一些场景下,短信下行已经无法解决了(运营商、信号、欠费、手机端设置)等多个因素,这些因素一般概率还很高,而且身为发送方还束手无策
    2. 邮件一般只有下行,是因为邮件只依赖网络协议,相对来说发送方很好解决极端场景。但是就如一楼所说,上行邮件也有,但是很少见了
    msg7086
        3
    msg7086  
       1 天前   ❤️ 1
    因为没法验证是用户发的邮件。
    gransh
        4
    gransh  
       1 天前
    手机号那个不是为了省短信钱吗,我目前只见到网易和腾讯这么干
    SillyAdam
        5
    SillyAdam  
       1 天前
    我觉得有两个原因:

    1. 如 #3 所说,无法确定是不是从这个地址发的,还是由其他服务代发。虽然有邮件头签名/域名验证等手段,但实现起来比较麻烦。

    2. 无法保证用户一定按照指定格式发送。如果是面向程序员的论坛可能问题不大;但如果是面对普通人,让用户把指定内容 XXX 复制到邮件正文:用户把 XXX 复制到了邮件标题怎么办?用户把“让用户把指定内容 XXX 复制到邮件正文”这句话复制到了正文怎么办?用户复制了 XXX ,但是前后还加了你好谢谢之类的话语怎么办?这些都很难处理。

    对于第二点,在短信验证的时候,iOS / Android 都有接口,点一个链接,就会跳转到短信界面并且帮你编辑好信息,直接发送即可。但是发邮件的话,不是所有人都用系统自带的邮件程序,那这个接口就失效了,需要用户自己编辑。
    hbtech
        6
    hbtech  
    OP
       1 天前
    @Tink
    是的,从没遇到过注册时需要发邮件的时候

    @CarrieBauch
    如果用户手机没信号或者欠费了,上行也发不出去吧

    @msg7086
    是因为邮件协议容易伪造吗

    @gransh
    12306 也会要求用户发短信
    要求发短信可能是为了避免使用虚拟号,像阿里小号是不支持向 106 开头的号码发短信的
    bobryjosin
        7
    bobryjosin  
       1 天前 via Android
    发件多可能会被判定为滥用,对发件域信誉会有损害,收件不严格,你收多少封都没有这个问题,最多进垃圾箱,而且对用户来说发邮件比收邮件麻烦。
    littiefish
        8
    littiefish  
       1 天前 via iPhone
    我 QQ ,国内邮箱好多丢了一看要发短信找回的,我就懒得要了,爱咋地咋地
    msg7086
        9
    msg7086  
       1 天前   ❤️ 3
    @hbtech 协议一开始就没有对发件人有要求。
    就像现实中,你给别人寄一封信,你把信投进邮筒的时候邮筒会问你要身份证吗?就是这个道理。
    所以现实中你要验证一个人的地址,也只能是你给他发信,而不是让他写一封信发给你。
    kk2syc
        10
    kk2syc  
       1 天前
    @hbtech
    0. 大部分银行、云闪付在新设备首次登录的时候都会要求上行短信,还有微信解冻类似的。
    1. 和虚拟号无关,更多的是风控需求和责任体现。防止因为验证码下行短信被转发盗取导致的不必要损失,同时用户<主动>发送上行短信确认当前操作,明确用户是人类主体而不是自动脚本,有效避免黑灰产批量操作。
    churchmice
        11
    churchmice  
       1 天前
    首先发邮件没啥成本
    其次你如果让用户主动给你发邮件,你还得去解析这邮件
    就跟验证码一样,你知道结果产生一个验证码让用户输入很简单,但是反过来就很麻烦
    pakro888
        12
    pakro888  
       1 天前
    怎么上面都是技术视角?与用户相关的操作建议都用产品视角去思考问题,在能够满足诉求的情况下,当然是让用户操作成本越低越好,要知道用户每多操作一步,流失率都要高一个数量级。
    况且邮件验证已经是“古早”的验证方式了,因为用户还需要查看邮件,现在手机号验证方式步骤更少(哪怕是发短信),也更符合国情(多少人没有邮箱)。
    paopjian
        13
    paopjian  
       1 天前
    用户都是猴子,你怎么保证用户按照你的格式发邮件? 瞎发邮件你是处理还是不处理, 用户注册不了走人你不就损失一个用户
    mumbler
        14
    mumbler  
       1 天前
    实时监控的邮件系统太复杂了,特别量很大情况下,稳定性也不好,做个邮箱发送的验证码系统,简单可靠
    terranboy
        15
    terranboy  
       1 天前
    是的 根本问题不是技术 而是用户体验 , 只有垄断行业有资格去让用户发邮件 ,
    SunsetShimmer
        16
    SunsetShimmer  
       1 天前
    不能保证用户身份不被伪造,向大部分用户要求确认 SPF 、DKIM 等不现实(虽然一般大厂都有)。
    不能保证用户按照指定格式发送邮件,Plain Text/HTML ,HTML 放什么标签,纯文本格式?
    用户体验,操作繁琐。
    biubiuF
        17
    biubiuF  
       1 天前
    epos 就是主动发邮件验证
    pengjz
        18
    pengjz  
       1 天前
    大厂考虑的更多成本投入和回报。接受验证码对用户的体验更高,用户留存更好。日常的大部分场景会考虑用户只要接收并填写就行了,这时是需要厂家承担成本来留住你这个用户的。当用户有些增值需求时,大厂判断即使操作麻烦一点用户也要开通、也要用的时候,这个成本就可以由用户承担。比如 TX 某些邮箱功能、密码找回的,这时候就会由用户去发送。这些统统都不是技术问题,而是纯纯的成本投入和回报的问题。一条短信成本接近 1 分钱,几亿用户量,成本也是很恐怖的。
    pengjz
        19
    pengjz  
       1 天前
    跑题了,觉得让用户发验证码更多的整个操作流程体验相对会差一些。毕竟要输入邮箱地址,输入验证码。跟收到验证码直接输入,操作体验是慢很多。而且用户是不可控的,用户操作也多意外要处理的情况也就越多,还是让用户收并且填写会简单一点。
    另外在这个手机互联网时代,邮件本身便利性没短信方便,再这个方向再发力感觉就不值得了
    blur1119
        20
    blur1119  
       1 天前
    你搞这么麻烦干啥
    K2
        21
    K2  
       1 天前
    把手机号绑定在无忧行,根本没法发送短信,只能接收。
    Hozoy
        22
    Hozoy  
       23 小时 8 分钟前
    短信让你主动发是为了减少短信费用开支。一般用户量群体非常大并且处于垄断地位的 APP 会这样干,类似微信、银行等。当然银行这样干还有为了安全的考虑,如果处于手机处于录屏状态,下发短信则有可能被直接盗用,而主动发短信必须用户手动操作,还有二次确认环节。所以这是从 2 种不同角度看待这个问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6073 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:25 · PVG 10:25 · LAX 18:25 · JFK 21:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.