正在显示
1 个修改的文件
包含
14 行增加
和
7 行删除
@@ -133,11 +133,7 @@ class Header{ | @@ -133,11 +133,7 @@ class Header{ | ||
133 | */ | 133 | */ |
134 | public function getTo(bool $isArray = false):array { | 134 | public function getTo(bool $isArray = false):array { |
135 | // 如果有这个字段,就用这个字段 to字段的邮箱可能被伪造 | 135 | // 如果有这个字段,就用这个字段 to字段的邮箱可能被伪造 |
136 | - if(!empty($this->attributes['delivered-to'])){ | ||
137 | - $to = $this->attributes['delivered-to']; | ||
138 | - }else{ | ||
139 | - $to = $this->attributes['to']??''; | ||
140 | - } | 136 | + $to = $this->attributes['to']??$this->attributes['delivered-to']; |
141 | 137 | ||
142 | return $this->parseAddress($to,$isArray); | 138 | return $this->parseAddress($to,$isArray); |
143 | } | 139 | } |
@@ -152,14 +148,25 @@ class Header{ | @@ -152,14 +148,25 @@ class Header{ | ||
152 | */ | 148 | */ |
153 | private function parseAddress(string $address, $isArray = false){ | 149 | private function parseAddress(string $address, $isArray = false){ |
154 | $arr = []; | 150 | $arr = []; |
151 | + $address = trim($address); | ||
155 | if($address){ | 152 | if($address){ |
156 | - foreach (explode(',',$address) as $k=>$str){ | 153 | + $address = explode(',',$address); |
154 | + $s = ''; | ||
155 | + foreach ($address as $k=>$str){ | ||
156 | + // 是否是邮箱 | ||
157 | + if (!(str_contains($str, '@') && str_contains($str,'.'))){ | ||
158 | + $s .= $str.','; | ||
159 | + continue; | ||
160 | + } | ||
161 | + $str = $s.$str; | ||
162 | + $s = ''; | ||
163 | + | ||
157 | $arr[$k] = Address::make($str); | 164 | $arr[$k] = Address::make($str); |
158 | if($isArray) $arr[$k] = $arr[$k]->toArray(); | 165 | if($isArray) $arr[$k] = $arr[$k]->toArray(); |
159 | } | 166 | } |
160 | } | 167 | } |
161 | 168 | ||
162 | - return $arr; | 169 | + return array_values($arr); |
163 | } | 170 | } |
164 | 171 | ||
165 | /** | 172 | /** |
-
请 注册 或 登录 后发表评论