c - 使用可传递性验证 C 中的电子邮件
问题描述
我正在编写一个需要在存储电子邮件之前验证电子邮件的 C 项目。我将不得不交叉编译,所以使用regex.h
不是一个选项。
有没有一种万无一失的方法可以通过检查电子邮件是否是可交付地址来验证电子邮件,而无需实际使用 C 语言发送电子邮件?
如果无法做到这一点,欢迎提出替代方案或建议。
解决方案
您可以对域名(符号后面的电子邮件地址部分)执行DNS@
查询,以确定该域是否有效并具有MX 记录。要验证用户名(符号之前的电子邮件地址部分@
),您必须查询目标邮件服务器本身,例如使用VRFY
SMTP命令。但是,出于安全原因,某些邮件服务器可能不支持此命令。
C 语言本身不提供任何可以用来发送网络数据包的函数。但是,大多数平台都提供了提供此功能的 API(例如POSIX 套接字、Windows 套接字)。一些平台还提供了一个 API,可以为您执行 DNS 查询。此外,存在几个提供此功能的库。
推荐阅读
- apple-push-notifications - CloudKit 正在限制来自 CKQuerySubscription 的推送通知的数量
- mysql - 在 mysql 中为我的外部连接起别名的正确方法是什么,这样我就不会收到“非唯一表/别名”错误?
- http - 如何从网页中获取所有结果,就像浏览器在完成向下滚动时显示的那样
- python - 如何让 python 与交互式 shell 环境一起工作?
- mysql - 在 BigQuery 中使用 `With` 然后 `Delete`
- python - 如何在 LSTM 模型上使用 GridSearchCV?
- python - 有没有更“逻辑”的形式来编程这个函数?
- angular - 打字稿如何进行对象解构赋值
- java - canvas.drawBitmap 仅绘制最后修改的位图,不绘制中间图
- excel - 如何搜索/替换术语(及其格式)?