Разберите строку электронной почты с метаданными и получите значения «От» и «Копия».Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Разберите строку электронной почты с метаданными и получите значения «От» и «Копия».

Сообщение Anonymous »

Я пытаюсь получить электронное письмо и копию переадресованного письма, а тело выглядит следующим образом:

Код: Выделить всё

$body = '-------
Begin forwarded message:

From: Sarah Johnson 

Subject: email subject

Date: February 22, 2013 3:48:12 AM

To: Email Recipient 

Cc: Ralph Johnson 

Hi,

hello, thank you and goodbye!

blabla@gmail.com'
Теперь, когда я делаю следующее:

Код: Выделить всё

$body = strtolower($body);
$pattern = '#from: \D*\S([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})\S#';
if (preg_match($pattern, $body, $arr_matches)) {
echo htmlentities($arr_matches[0]);
die();
}
Я правильно понимаю:

Код: Выделить всё

from: sarah johnson 
А теперь почему копия не работает? Я делаю что-то очень похожее, только меняя с на cc:

Код: Выделить всё

$body = strtolower($body);
$pattern = '#cc: \D*\S([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})\S#';
if (preg_match($pattern, $body, $arr_matches)) {
echo htmlentities($arr_matches[0]);
die();
}
и я получаю:

Код: Выделить всё

cc: ralph johnson  hi, hello, thank you and goodbye! blabla@gmail.com
Если я удалю электронное письмо из исходного нижнего колонтитула (удалив blabla@gmail.com), я правильно получу:

Код: Выделить всё

cc: ralph johnson 
Похоже, что электронное письмо влияет на регулярное выражение. Но как и почему это не влияет на него в "от"? Как я могу это исправить?

Подробнее здесь: https://stackoverflow.com/questions/150 ... -cc-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»