From f32b35dbb083843447986aea2a96ca3dc1cf5b77 Mon Sep 17 00:00:00 2001
From: Peter Rotich <peter@osticket.com>
Date: Thu, 28 Mar 2013 23:33:18 -0400
Subject: [PATCH] Use email address when FROM field doesn't have a name.

---
 include/class.mailfetch.php | 10 +++++++---
 include/class.mailparse.php |  6 +++++-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php
index 1bcf6d690..d1032ba50 100644
--- a/include/class.mailfetch.php
+++ b/include/class.mailfetch.php
@@ -372,16 +372,20 @@ class MailFetcher {
 
         $emailId = $this->getEmailId();
         $vars = array();
-        $vars['name']=$this->mime_decode($mailinfo['name']);
         $vars['email']=$mailinfo['email'];
+        $vars['name']=$this->mime_decode($mailinfo['name']);
         $vars['subject']=$mailinfo['subject']?$this->mime_decode($mailinfo['subject']):'[No Subject]';
         $vars['message']=Format::stripEmptyLines($this->getBody($mid));
         $vars['header']=$this->getHeader($mid);
         $vars['emailId']=$emailId?$emailId:$ost->getConfig()->getDefaultEmailId(); //ok to default?
-        $vars['name']=$vars['name']?$vars['name']:$vars['email']; //No name? use email
         $vars['mid']=$mailinfo['mid'];
 
-        if(!$vars['message']) //An email with just attachments can have empty body.
+        //Missing FROM name  - use email address.
+        if(!$vars['name'])
+            $vars['name'] = $vars['email'];
+
+        //An email with just attachments can have empty body.
+        if(!$vars['message'])
             $vars['message'] = '(EMPTY)';
 
         if($ost->getConfig()->useEmailPriority())
diff --git a/include/class.mailparse.php b/include/class.mailparse.php
index ba8d21761..3347451de 100644
--- a/include/class.mailparse.php
+++ b/include/class.mailparse.php
@@ -289,11 +289,15 @@ class EmailDataParser {
                 break;
             }
 
+            $data['email'] = $from->mailbox.'@'.$from->host;
+
             $data['name'] = trim($from->personal,'"');
             if($from->comment && $from->comment[0])
                 $data['name'].= ' ('.$from->comment[0].')';
 
-            $data['email'] = $from->mailbox.'@'.$from->host;
+            //Use email address as name  when FROM address doesn't  have a name.
+            if(!$data['name'] && $data['email'])
+                $data['name'] = $data['email'];
         }
 
         //TO Address:Try to figure out the email address... associated with the incoming email.
-- 
GitLab