예제 #1
0
 public static function sendMail($to, $subject, $message, $skipblacklistcheck = 0)
 {
     if (Config::TEST) {
         return 1;
     }
     # do a quick check on mail injection attempt, @@@ needs more work
     if (preg_match("/\n/", $to)) {
         //TODO: convert to new logger
         phpList::log()->notice('Error: invalid recipient, containing newlines, email blocked');
         return 0;
     }
     if (preg_match("/\n/", $subject)) {
         phpList::log()->notice('Error: invalid subject, containing newlines, email blocked');
         return 0;
     }
     if (!$to) {
         phpList::log()->notice("Error: empty To: in message with subject {$subject} to send");
         return 0;
     } elseif (!$subject) {
         phpList::log()->notice("Error: empty Subject: in message to send to {$to}");
         return 0;
     }
     if (!$skipblacklistcheck && Util::isEmailBlacklisted($to)) {
         phpList::log()->notice("Error, {$to} is blacklisted, not sending");
         Util::blacklistSubscriberByEmail($to);
         Subscriber::addHistory('Marked Blacklisted', 'Found subscriber in blacklist while trying to send an email, marked black listed', Subscriber::getSubscriberByEmailAddress($to)->id);
         return 0;
     }
     return phpListMailer::sendMailPhpMailer($to, $subject, $message);
 }
예제 #2
0
 /**
  * Porcess the bounce data and update the database
  * @param Bounce $bounce
  * @param int $campaign_id
  * @param Subscriber $subscriber
  * @return bool
  */
 private function processBounceData($bounce, $campaign_id, $subscriber)
 {
     if ($campaign_id === 'systemmessage' && $subscriber !== false) {
         $bounce->status = 'bounced system message';
         $bounce->comment = sprintf('%s marked unconfirmed', $subscriber->id);
         $bounce->update();
         phpList::log()->notice($subscriber->id . ' ' . s('system message bounced, subscriber marked unconfirmed'));
         $subscriber->addHistory(s('Bounced system message'), sprintf('<br/>%s<br/><a href="./?page=bounce&amp;id=%d">%s</a>', s('Subscriber marked unconfirmed'), $bounce->id, s('View Bounce')), $subscriber->id);
         $subscriber->confirmed = 0;
         $subscriber->update();
     } elseif (!empty($campaign_id) && $subscriber !== false) {
         $bounce->connectMeToSubscriberAndMessage($subscriber, $campaign_id);
     } elseif ($subscriber !== false) {
         $bounce->status = 'bounced unidentified message';
         $bounce->comment = $subscriber->id . ' bouncecount increased';
         $bounce->update();
         $subscriber->bouncecount++;
         $subscriber->update();
     } elseif ($campaign_id === 'systemmessage') {
         $bounce->status = 'bounced system message';
         $bounce->comment = 'unknown subscriber';
         $bounce->update();
         phpList::log()->notice($subscriber->id . ' ' . s('system message bounced, but unknown subscriber'));
     } elseif ($campaign_id) {
         $bounce->status = sprintf('bounced list message %d', $campaign_id);
         $bounce->comment = 'unknown subscriber';
         $bounce->update();
         phpList::DB()->query(sprintf('UPDATE %s
                  SET bouncecount = bouncecount + 1
                  WHERE id = %d', Config::getTableName('message'), $campaign_id));
     } else {
         $bounce->status = 'unidentified bounce';
         $bounce->comment = 'not processed';
         $bounce->update();
         return false;
     }
     return true;
 }