首页 > 解决方案 > 使用可传递性验证 C 中的电子邮件

问题描述

我正在编写一个需要在存储电子邮件之前验证电子邮件的 C 项目。我将不得不交叉编译,所以使用regex.h不是一个选项。

有没有一种万无一失的方法可以通过检查电子邮件是否是可交付地址来验证电子邮件,而无需实际使用 C 语言发送电子邮件?

如果无法做到这一点,欢迎提出替代方案或建议。

标签: cemail-validation

解决方案


您可以对域名(符号后面的电子邮件地址部分)执行DNS@查询,以确定该域是否有效并具有MX 记录。要验证用户名(符号之前的电子邮件地址部分@),您必须查询目标邮件服务器本身,例如使用VRFY SMTP命令。但是,出于安全原因,某些邮件服务器可能不支持此命令。

C 语言本身不提供任何可以用来发送网络数据包的函数。但是,大多数平台都提供了提供此功能的 API(例如POSIX 套接字Windows 套接字)。一些平台还提供了一个 API,可以为您执行 DNS 查询。此外,存在几个提供此功能的库。


推荐阅读