是这样的,我们的程序提供了用户输入邮箱给用户发送邮件功能,好多用户邮箱乱写,写些根本不存在的邮箱,导致占用系统资源,还有有很多系统退信,能否有PHP程序在用户提交邮箱信息后进行验证,这个邮箱真实有效则发送邮件,否则跳过邮件发送?有没有办法做到呢?

1 lianyue Jun 17, 2015 |
2 b821025551b Jun 17, 2015 不能完美解决。 1、改为用邮箱注册,并验证邮箱; 2、如果有系统退信,对这个邮箱的相应用户做一些操作。 |
3 chinassl OP @b821025551b 哦,由于系统没有强制用户注册后使用,看来真的没啥好办法! |
4 tabris17 Jun 17, 2015 光检查MX记录无法确认邮箱是真实有效的 SMTP协议有个VRFY命令用来验证用户是否存在,不过很多SMTP服务器都把这个命令禁用了 |
5 davidyin Jun 17, 2015 强制新用户验证一次邮箱。 旧用户的email地址导出,专门导入到邮件列表程序,验证。 |
6 Andy1999 Jun 17, 2015 via iPhone filter_var if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // invalid emailaddress } ceckdnsrr if (!checkdnsrr($domain, ‘MX’)) { // domain is not valid } |
7 b821025551b Jun 17, 2015 @Andy1999 MX只能检测输的那个域名是否存在,也是不能解决问题。 |
9 111111111111 Jun 17, 2015 via Android a. 检查MX 记录存在 b. 测试MX服务器SMTP 正常访问 c. SMTP协议 给用户发一封邮件 捕捉返回值 以上操作可以让用户界面的js 做,也可以找第三方服务商做 |
11 fangjinmin Jun 17, 2015 没有完美的用程序直接验证邮箱存不存在的方法。 发认证码让用户认证是最好的解决办法。 |
12 chinassl OP @111111111111 你可以写这个程序吗?还有这样是否会除了给用户发送我们发送的邮件,还会多一个验证邮件呢? |
13 chinassl OP @fangjinmin 好的! |
15 huage Jun 17, 2015 1.只准使用某些后缀的邮箱,像如163、126等等;2.你参考一下这些邮箱允许用户的地址规则,然后做一个判断;3.注册时发邮件,确认验证。 |
16 learnshare Jun 17, 2015 让用户点击邮箱中收到的链接,通过这个唯一的链接来确认邮箱有效。嗯,跟 PHP 没关系 |
17 s2555 Jun 17, 2015 模拟注册这些邮箱,已经注册的肯定不能注册成功,那就说明是存在的 |
18 lilydjwg Jun 17, 2015 |
19 chuangbo Jun 17, 2015 楼主是销售吗?如果不是技术背景并且确定你的技术水平比你们技术强,就不要在外面帮技术问问题,然后回去跟技术说找到了个技术方案看可不可行。这代表了你对同事的不信任。 |
20 chinassl OP @lilydjwg 是这样的,我们提供了一种免费的服务,需要生成用户所需的文件,有一点专业性质,好多用户不懂,总是忘记下载文件,所以我们启用了生成完毕自动发送附件给用户邮箱,然而有好多用户可能出于测试的目的随便填写下信息,随便填写不存在的邮箱,所以出现了上述问题! |
22 Hello1995 Jun 17, 2015 via Android |
24 lilydjwg Jun 18, 2015 @chinassl 那应该量不太大吧,测试填错误的邮箱也得不到结果啊。难道说大中华无聊的人真那么多? 网上能搜到验证服务的,比如 http://verify-email.org/ 。原理很简单,直接和邮件服务器进行会话,看对方是否说指定的信箱无效。当然有些邮件服务器会不肯说。 |
25 chinassl OP @lilydjwg 量确实不算很大,但总收到退信也是头痛的事,没错,确实无聊的人很多,填写无效的也就算了,还有人填写什么微软、百度的企业邮箱,都服了这些人了,好多时候都是一颗老鼠屎坏了一锅好粥! |
26 sixbyte Jun 18, 2015 我觉得还是得用户登录邮箱进行验证一次. 因为他完全可以使用非自己的邮箱. |
27 chinassl OP @sixbyte 因为大多数用户是使用自己的邮箱的,因为这个信息是只有用户收到才能用,但就是有极个别的用户随便乱写,如果加上验证太影响正常用户的的体验,比较繁琐了,看来还没有完美的解决方案! |
28 chinassl OP 看来这样解决,加个选项,默认不发送邮件,只有用户选中复选框后发送,只能先这样了! |
29 aec4d Jun 12, 2016 &list=PLt0SDK0_hDSDkDFSXgcxCvtR3zc5fXkXJ&index=11 http://verify-email.org/ |