Merge remote branch 'origin/platal-0.10.2'
[platal.git] / include / newsletter.inc.php
index b03b419..a8c424e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -41,9 +41,9 @@ class NewsLetter extends MassMailer
         } else {
             $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'");
             if (!$res->numRows()) {
-                Newsletter::create();
+                NewsLetter::create();
             }
-            $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'");
+            $res = XDB::query("SELECT * FROM newsletter WHERE bits='new' ORDER BY id DESC LIMIT 1");
         }
         if ($res->numRows() != 1) {
             throw new MailNotFound();
@@ -308,7 +308,7 @@ class NLArticle
     // }}}
     // {{{ function getLinkIps()
 
-    public function getLinkIps(&$gethostbyname_count)
+    public function getLinkIps(&$blacklist_host_resolution_count)
     {
         $matches = $this->parseUrlsFromArticle();
         $article_ips = array();
@@ -322,14 +322,13 @@ class NLArticle
                     list(, $host) = explode('@', $match);
                 }
 
-                if ($gethostbyname_count < $globals->mail->blacklist_host_resolution_limit) {
+                if ($blacklist_host_resolution_count >= $globals->mail->blacklist_host_resolution_limit) {
                    break;
                 }
 
-                if ($host != $globals->mail->alias_dom && $host != $globals->mail->alias_dom2
-                    && $host != $globals->mail->domain && $host != $globals->mail->domain2) {
+                if (!preg_match('/^(' . str_replace(' ', '|', $globals->mail->domain_whitelist) . ')$/i', $host)) {
                     $article_ips = array_merge($article_ips, array(gethostbyname($host) => $host));
-                    ++$gethostbyname_count;
+                    ++$blacklist_host_resolution_count;
                 }
             }
         }