Обработка полученной электронной почты с помощью PHP - PullRequest
1 голос
/ 08 июня 2010

У меня есть php-скрипт, который будет пересылать письмо с перехватом и обрабатывать его.

#!/usr/local/bin/php -q
<?php
while (!feof(STDIN)) {$s .= fgets(STDIN);}
// Now do some work on the email source in $s.
?>

Это отлично работает. У меня вопрос, как сохранить вложение в файловую систему из источника. Например, если я изолирую раздел ниже, как мне нужно обработать его перед сохранением в файл gif, чтобы создать правильный gif?

Полагаю, мне нужно изменить кодировку или обработать ее другим способом, но кто-нибудь точно знает?

Спасибо!

--------------090607000609050308090504
Content-Type: image/gif;
 name="tfk.gif"
Content-Transfer-Encoding: base64
Content-ID: <part1.06050801.05020504@etc....>
Content-Disposition: attachment;
 filename="tfk.gif"

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
--------------090607000609050308090504--

Ответы [ 3 ]

2 голосов
/ 08 июня 2010
1 голос
/ 08 июня 2010

Попробуйте PEAR_Mail_MimeDecode класс от Pear. Вы можете пересылать ему всю почту и возвращать различные фрагменты MIME ... и не нужно устанавливать расширение.

1 голос
/ 08 июня 2010

Для решения PHP (расширения C не требуются) есть PEAR Mail_mimedecode.

После анализа электронной почты у вас уже есть вложение bytestream, нет необходимости декодировать base64 самостоятельно.

...