电子邮件地址可接受的字段类型和大小? [复制]

Posted

技术标签:

【中文标题】电子邮件地址可接受的字段类型和大小? [复制]【英文标题】:Acceptable field type and size for email address? [duplicate] 【发布时间】:2012-01-04 18:25:00 【问题描述】:

可能重复:Common mysql fields and their appropriate data typesWhat are the recommended database column sizes for names?

我正在寻找将电子邮件地址存储到 mysql 表中的最正确的字段类型和大小。

我最初考虑使用 varchar 255,但我认为 255 可能太多甚至太少,我能够捕获所有有效电子邮件地址的平均大小是多少?

【问题讨论】:

What are the recommended database column sizes for names? 或 What are the recommended database column sizes for names? 或 Common mySQL fields and their appropriate data types 的可能重复项 @gbn,前两个与电子邮件地址没有任何关系,但第三个是你的赢家。看来这是一个骗局。 @paxdiablo:第一个链接的接受答案提到了长度为 320 的电子邮件,尽管标题具有误导性,这就是我所看到的。第二个链接标题错误应该是“数据库字段的标准长度列表”。所有 3 个都是 Google 搜索的前 3 个 :-) gbn 好吧,在提出问题之前我确实尝试过四处搜索,但使用术语 mysql email 不足以找到任何相关内容。 @gbn,我倾向于只在问题是 question 的欺骗时将问题标记为欺骗,而不是其中一个答案可能包含所需信息的事实。那是因为我通常的用例是寻找询问我需要知道什么的问题。但这只是我的观点,无论如何,因为你的第三个链接是一个骗子:-) 【参考方案1】:

根据RFC 5321,正向和反向路径最长可达256个字符,因此电子邮件地址最长可达254个字符。使用 255 个字符是安全的。

【讨论】:

赞成,因为您是第一个谈论 RFC 5321 的人。 我喜欢这个答案。点赞。 请注意,VARCHAR(255) 不一定意味着 255 个八位字节(如 RFC 中所指定)。事实上***.com/a/3739871/582917 表示 CHAR、VARCHAR 和 TEXT 类型现在计算逻辑字符单元,如果您使用的是 utf8mb4,则它可能是可变大小的。 所以我猜测 255 限制应该是一个八位字节限制,在使用 utf8 编码的电子邮件地址时需要考虑这一点。 如何在没有多余的情况下输入“@”?【参考方案2】:

RFC5321 和RFC5322 是 SMTP 的相关标准,指定地址由本地部分和域组成。他们进一步指出,它们的最大大小分别为 64 和 253 个八位字节,尽管正向和反向路径还有 256 个八位字节的限制,包括标点符号(实际上是 254 个)。

所以这应该就是你所需要的。

【讨论】:

【参考方案3】:

任何企业 Web 应用程序中的标准都是 255 长度的 varchar

  varchar(255)

【讨论】:

【参考方案4】:

在这里使用 VARCHAR 255 可能是最好的主意 - 为每个电子邮件地址提供更多字节不会有任何损失。 255 也足够大,可以避免删除任何正常的电子邮件地址。

【讨论】:

【参考方案5】:

嗯 varchar (255) 对我来说是一个标准。而且我认为这是存储电子邮件的好方法。

【讨论】:

【参考方案6】:

What is the maximum length of a valid email address?

你应该使用 varchar 字段, 这使得大小无关紧要(假设您没有在其上建立索引)

【讨论】:

以上是关于电子邮件地址可接受的字段类型和大小? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在接受多个电子邮件地址的字段上实现 MVC 不显眼的验证

使用隐藏字段传输的可接受数据大小是多少

为啥我的“电子邮件地址”内容类型的文本字段不建议电子邮件? [关闭]

数据库字段类型

ExtJs - 具有动态可关闭标签的文本字段

删除 PayPal Checkout 中的账单地址字段