小编Que*_*ark的帖子

使用MX记录验证电子邮件地址

场景:
我的网络应用程序上有一个联系表单,它有很多垃圾邮件.
我正在松散地验证电子邮件地址的格式,即 ^.+@.+\..+$
我使用的是垃圾邮件过滤服务(defensio),但返回的垃圾邮件分数与有效邮件重叠.在0.4的阈值处,一些垃圾邮件通过并且一些客户的问题被错误地抛入日志中并显示错误.

所有垃圾邮件都使用虚假的电子邮件地址,例如zxmzxm@ywduasm.com

在美国专用PHP5 Linux服务器,mysql,仅记录垃圾邮件,通过电子邮件发送非垃圾邮件(未存储).

建议: 使用php checkdnsrr(preg_replace(/^.+?@/, '', $_POST['email']), 'MX')检查电子邮件域解析为有效地址,登录到文件,然后重定向错误的邮件无法解决,像以前一样继续垃圾邮件过滤服务,以解决根据问题解决的地址checkdnsrr().

我已经读过(我自己也对此持怀疑态度),你永远不应该将这种类型的验证留给远程查找,但为什么呢?

除了连接问题,我还会遇到比联系表格更大的问题,checkdnsrr是否会遇到误报/否定?
是否会有一些不会解决的地址类型?gov地址?ip电子邮件地址?
我是否需要转义传递给checkdnsrr()的主机名?

解决方案: 所有三个答案的组合(希望我可以接受不止一个作为复合答案).

我在用:

$email_domain = preg_replace('/^.+?@/', '', $email).'.';
if(!checkdnsrr($email_domain, 'MX') && !checkdnsrr($email_domain, 'A')){
   //validation error
}
Run Code Online (Sandbox Code Playgroud)

正在记录和轮换所有垃圾邮件.以期在以后升级到作业队列.

一些评论是关于要求邮件服务器让用户验证,我觉得这将是太多的流量,可能会让我的服务器被禁止或以某种方式陷入麻烦,这只是为了删除大多数正在发送的电子邮件由于服务器地址无效而退回.

http://en.wikipedia.org/wiki/Fqdn

RFC2821
The lookup first attempts to locate an MX record associated with the name.
If a CNAME record is found instead, the resulting name is processed as if 
it were the initial name.
If no MX records are found, …
Run Code Online (Sandbox Code Playgroud)

php mx-record email-validation

14
推荐指数
2
解决办法
1万
查看次数

如何从bash更改目录的图标/徽标

我正在玩get_iplayer(太棒了)它每隔几个小时运行一次以获取任何新的剧集......

在它完成任何新的东西之后,我想更改标志~/Videos以添加加号或星号(最好是鹦鹉螺徽)

我是否通过鹦鹉螺来解决这个问题?
我需要在gnome-config中更改一些内容吗?
我敢肯定这不能是FS等级吗?

欢呼任何链接和建议.

directory bash icons nautilus emblems

7
推荐指数
1
解决办法
3798
查看次数

堆叠多个libnotify弹出窗口

有没有人知道如何通过notify-send发送多个弹出窗口一次显示在屏幕上.

附:

$ notify-send 'Message One' 'Body One' & notify-send 'Message Two' 'Body Two' & notify-send 'Message Three' 'Body Three'
Run Code Online (Sandbox Code Playgroud)

每个人等待队列中的前一个弹出窗口在显示之前到期,我试图让所有三个人尽快在屏幕上向下级联.

男人说:

OPTIONS
       -u, --urgency=LEVEL Specifies the urgency level (low, normal, critical).

       -t, --expire-time=TIME
              Specifies the timeout in milliseconds at which to expire the notification.

       -i, --icon=ICON[,ICON...]
              Specifies an icon filename or stock icon to display.

       -c, --category=TYPE[,TYPE...]
              Specifies the notification category.

          Help options:

       -?, --help
              Show this help message

       -h, --hint=TYPE:NAME:VALUE
              Specifies basic extra data to pass. Valid types …
Run Code Online (Sandbox Code Playgroud)

linux bash popup libnotify

6
推荐指数
1
解决办法
4915
查看次数

将Mongo Embeded文档移动到自己的集合中

有人能指出我正确的方向,我有一个Collection(Forms)每个Form都有一个嵌入式文档数组(Responses).每个表单的响应都变得很大,事后看来嵌入它们是一个坏主意(包括嵌入式的mongo文档具有最大大小限制).

有没有办法可以快速轻松地将所有这些嵌入式响应移动到自己的集合中?是否有像旧的SQL选择这样的东西?我已经在rails控制台中浏览了一下,但是有很多嵌入式文档无法访问它,所以我想它在mongo控制台中必须是一个复杂的查找和插入查询?(只是在那里猜测)

我的模型是固定的,但是这个迁移(以及mongo文档)让我很难过.

TIA Dougle

ruby migration ruby-on-rails migrate mongodb

5
推荐指数
1
解决办法
728
查看次数

在继承树中获取PHP对象的祖先

我有一个对象,想要列出所有父类,直到stdClass或其他什么.

我已经在我的数据库表中添加了一个多态字段(比如类别),并希望自动化我的finder方法,以便还返回超类,这样我就可以跳到继承树中,我知道不一定是最后的子类:

FoodCategory::find_by_id(10) === Category::find_by_id(10)

SELECT * FROM categories WHERE ..... AND type IN ('FoodCategory', 'Category');
Run Code Online (Sandbox Code Playgroud)

粗略地我猜:

function get_class_lineage($object){
    $class = get_parent_class($object);
    $lineage = array();
    while($class != 'stdClass'){
        $dummy_object = new $class();
        $lineage[] = $class = get_parent_class($dummy_object);
    }

    return $lineage;
}
Run Code Online (Sandbox Code Playgroud)

但这会实例化一个对象,有没有人知道如何实现这个目标?

感谢任何输入,我觉得我在这里遗漏了一些明显的东西.

php oop inheritance traversal parent

4
推荐指数
2
解决办法
3593
查看次数

Rails BST时区实现

有谁知道如何在我的rails config/environment.rb文件中使用BST for config.time_zone?

目前我已将其保留为UTC,我正在考虑将BST添加到支持的时区列表中,然后扩展Time类以尊重这一点(> X月的最后一个星期日+ 1小时)

我在哪里可以找到支持的时区列表?

在我周围搜索我发现了很多抱怨,但没有很多答案.这将在guthub上尽快完成.

干杯,Dougle

timezone ruby-on-rails binary-search-tree

2
推荐指数
1
解决办法
2936
查看次数

在32位模式下从命令行运行php

有可能告诉php在32位模式下从命令行运行脚本吗?我有一个使用ODBC驱动程序的PHP脚本,该驱动程序仅在PHP以32位运行时才有效.这是我如何调用脚本:

php -d safe_mode=0 -f checkImport.php
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

php linux command-line 32bit-64bit

1
推荐指数
1
解决办法
876
查看次数