JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
metaform: merge ckeditor settings from cms
[wfpl.git] / email.php
index a7c841d..a1e501a 100644 (file)
--- a/email.php
+++ b/email.php
@@ -2,21 +2,18 @@
 
 #  Copyright (C) 2006 Jason Woofenden
 #
-#  This file is part of wfpl.
-#
-#  wfpl is free software; you can redistribute it and/or modify it under the
-#  terms of the GNU Lesser General Public License as published by the Free
-#  Software Foundation; either version 2.1 of the License, or (at your option)
-#  any later version.
-#
-#  wfpl is distributed in the hope that it will be useful, but WITHOUT ANY
-#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-#  FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for
-#  more details.
-#
-#  You should have received a copy of the GNU Lesser General Public License
-#  along with wfpl; if not, write to the Free Software Foundation, Inc., 51
-#  Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+#  This program is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#  
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#  
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
 
@@ -44,7 +41,7 @@ function email($from, $to, $subject, $message, $reply_to = '', $cc = '', $bcc =
        if($to   == '') { return 2; }
 
        #FIXME should allow many more characters here
-       $subject = ereg_replace("[^a-zA-Z0-9 _'.:-]", '_', $subject);
+       $subject = preg_replace("|[^a-z0-9 _/#'.:&,-]|i", '_', $subject);
 
        $headers = "From: $from";
        if($reply_to) {
@@ -56,9 +53,8 @@ function email($from, $to, $subject, $message, $reply_to = '', $cc = '', $bcc =
        if($bcc) {
                $headers .= "\r\nBCC: $bcc";
        }
-       #header('Content-Type: text/plain');
-       #print_r(array($to, $subject, $message, $headers));
-       #exit();
+       $headers .= "\r\nContent-type: text/plain; charset=UTF-8";
+
        if(mail($to, $subject, $message, $headers)) {
                return 0;
        } else {
@@ -78,7 +74,7 @@ function email_header($addr) {
                return '';
        }
 
-       if(ereg('<.*>$', $addr) !== false) {
+       if(preg_match('|<.*>$|', $addr) === 1) {
                # format 2
                $div = strrpos($addr, '<');
                $name = substr($addr, 0 , $div);
@@ -86,7 +82,7 @@ function email_header($addr) {
                $email = substr($addr, $div + 1, -1);
        } else {
                $email = $addr;
-               $name = ereg_replace('@.*', '', $addr);
+               $name = preg_replace('|@.*|', '', $addr);
        }
 
        if(!valid_email($email)) {
@@ -94,7 +90,7 @@ function email_header($addr) {
        }
 
        #FIXME should allow many more characters here
-       $name = ereg_replace("[^a-zA-Z0-9 _'.-]", '_', $name);
+       $name = preg_replace("|[^a-z0-9 _/'.-]|i", '_', $name);
 
        return $name . ' <' . $email . '>';
 }
@@ -103,5 +99,5 @@ function email_header($addr) {
 
 # return true if e-mail is formatted like a valid email address
 function valid_email($email) {
-       return ereg('^[0-9a-zA-Z_~.-]+@[0-9a-zA-Z.-]+\.[a-z]+$', $email) !== false;
+       return preg_match('|^[0-9a-zA-Z_~.+-]+@[0-9a-zA-Z.-]+\.[a-z]+$|', $email) === 1;
 }