diff options
Diffstat (limited to 'wp-mail.php')
| -rw-r--r-- | wp-mail.php | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/wp-mail.php b/wp-mail.php index 5f11cb1..e510055 100644 --- a/wp-mail.php +++ b/wp-mail.php @@ -60,12 +60,15 @@ for ($i=1; $i <= $count; $i++) : $subject = $subject[0]; } - // Set the author using the email address (To or Reply-To, the last used) + // Set the author using the email address (From or Reply-To, the last used) // otherwise use the site admin - if (preg_match('/From: /', $line) | preg_match('/Reply-To: /', $line)) { - $author=trim($line); - if ( ereg("([a-zA-Z0-9\_\-\.]+@[\a-zA-z0-9\_\-\.]+)", $author , $regs) ) { - $author = $regs[1]; + if ( preg_match('/(From|Reply-To): /', $line) ) { + if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line, $matches) ) + $author = $matches[0]; + else + $author = trim($line); + $author = sanitize_email($author); + if ( is_email($author) ) { echo "Author = {$author} <p>"; $author = $wpdb->escape($author); $result = $wpdb->get_row("SELECT ID FROM $wpdb->users WHERE user_email='$author' LIMIT 1"); |
