2009-10-26 14 views

Odpowiedz

5

Będziesz prawdopodobnie trzeba wykonać następujące czynności:

  1. Napisz skrypt PHP, który jest wykonywalny w CLI (dodająC# deklaracja na początku skryptu, który wskazuje na binarny PHP, a następnie ustawia swoje uprawnienia do wykonywania).

  2. Pobierz ten skrypt do zapoznania się z surowego email z php: // stdin (file_get_contents najłatwiej)

  3. Get że skrypt do dekodowania pocztę do części, używając coś jak gruszka :: Mail :: Pantomimy :: Dekodowanie lub myślę, że jest przydatny komponent Zend Framework).

  4. Czytaj załącznik i temat z dekodowane wiadomości i zapisać jako normalny

  5. exit (0) na końcu opowiedzieć CLI, że był to czysty zjazd - wszelkie inne exit() stan może spowodować odbity e-mail.

+0

Dzięki! Jestem nowy w plikach wykonywalnych, więc będę musiał się w to zagłębić, czy znasz jakieś linki, które mogą mi się przydać :) – tarnfeld

5

Istnieje biblioteki PHP, zwany php-mime-mail-parser która sama zależy od PECL mailparse library. Gdy już je zainstalowane, kod, aby osiągnąć to, co chcesz, jest dość prosta:

<?php 
require_once 'MimeMailParser.class.php'; 

$parser = new MimeMailParser(); 
$parser->setStream(STDIN); 

$subject = $parser->getHeader('subject'); 

$attachment_content = false; 
foreach ($parser->getAttachments() as $attachment) { 
    $extension = pathinfo($attachment->filename, PATHINFO_EXTENSION); 
    if ($extension == "txt") { 
     $attachment_content = $attachment->content; 
     break; 
    } 
} 

// adapt to what ever database you are using 
$sth = $mysqli->prepare("INSERT INTO mails (subject, attachment) VALUES (:subject, :attachment)"); 
$sth->bindParam(':subject', $subject, PDO::PARAM_STR); 
$sth->bindParam(':attachment', $attachment_content, PDO::PARAM_STR); 
$sth->execute(); 

Można rura pocztę do skryptu, gdyż czyta z STDIN. Możesz również odczytać plik, zmieniając setStream na setPath. Zobacz documentation of the library.

+3

To powinna być poprawna odpowiedź. – Daniel

+0

Jakie zmiany są wymagane, aby zapisać i zapisać plik PDF? Czy jest jakiś rodzaj szyfrowania lub kodowania, którym należy się zająć, czy po prostu zmienić txt na pdf? – Tarquin

+0

Przechowywanie zawartości pliku PDF w polu bazy danych nie jest zalecane. Lepiej zapisz go w systemie plików i po prostu zapisz ścieżkę. – akirk