PHP e file DBX

Ciauz...

avrei questa domandina da fare...

Considerando che la mia piccola "intranet" aziendale gira con EasyPHP su una macchina Winzozz (niente di speciale ma funziona)...

Su questo PC-WebServer gira anche un'applicativo Windows che recupera alcuni spool di stampa da AS400 e genera file PDF ed e-mail, le quali vengono poi inviate ai clienti sfruttando M$ Outlook...

Ora... con PHP c'e' la possibilità di accedere direttamente ai file DBX (i "database" di Outlook per posta inviata, ricevuta, etc...) per poter fornire agli utenti uno "stato" degli invii delle e-mail?

 :uglystupid:

Attualmente riesco a dare tutte le informazioni necessarie da PHP attingendo direttamente ad AS400, ad eccezione della data/ora di invio delle e-mail... informazione, appunto, contenuta in Outlook...

Multi-ciao e grazie a tutti!

Mauro

 ;D :bye:

inviato 10 anni fa
myne.it
X 0 X

vai sul sito www.phpclasses.org ed effettua una ricerca con la parola "outlook"

ci sono diverse classi che potrebbero fare al caso tuo

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

vai sul sito www.phpclasses.org ed effettua una ricerca con la parola "outlook"

ci sono diverse classi che potrebbero fare al caso tuo

 :bye:

In effetti ho trovato diverse classi, poi da lì (visto come agivano) ho fatto qualche ricerchina e sono arrivato al risultato che mi aspettavo... Non so se può interessare a qualcuno... ma provo a postare il codice che ho realizzato.

In pratica il mio sistema invia automaticamente le fatture ai clienti prendendo i dati da AS400, generando dei file PDF ed inviando le mail con Outlook... Con questo codice i miei utenti ora possono sapere se e quando una fattura è stata inviata, partendo dal presupposto che il numero di fattura è citato nell'oggetto della mail (ma la ricerca potrebbe essere fatta anche nel corpo della mail, nell'indirizzo del destinatario, nella data di invio, etc etc...):

<?php

   // Il numero fattura viene passato GET da un'altra finestra/applicazione
   if(!isset($_GET['ftNumero'])) {
      echo "Identificativo fattura da cercare mancante. Impossibile proseguire.";
      exit;
   } else {
      $ftNumero = $_GET['ftNumero'];
   }
   
   // Imposta i giorni della settimana in italiano
   $giorni = array("Domenica", "Luned&igrave;", "Marted&igrave;", "Mercoled&igrave;", "Gioved&igrave;", "Venerd&igrave;", "Sabato");

   // Istanza dell'applicazione Outlook
   $oOutlook = new COM("Outlook.Application");
   
   // Namespace MAPI
   $oNs = $oOutlook->GetNamespace("MAPI");
   
   // Istanza per la cartella "Posta Inviata" (o anche olFolderSentMail)
   $oFldr = $oNs->GetDefaultFolder(5);
   
   // Visualizza il totale delle e-mail inviate
   echo "Totale e-mail inviate: ". $oFldr->Items->Count() ."<BR><BR>";

   // Impoosta gli items delle email inviate
   $oItems = $oFldr->Items;
   
   // Acquisisce tutte le e-mail inviate con l'oggetto richiesto, restringendo il numero solo a quelle che soddisfano il numero fattura passato GET
   $elenco = $oItems->Restrict("[Subject] = 'Fattura/Invoice n. $ftNumero'");

   // Verifica se sono state trovate email con l'oggetto richiesto
   if($elenco->Count() > 0) {
   
      // Imposta la tabella di visualizzazione
      echo "<TABLE CELLPADDING=\"2\" CELLSPACING=\"2\" BORDER=\"0\" SUMMARY=\"e-mail inviate\">";
   
      // Cicla le email trovate (in teoria sempre 1 sola...)
      for($i=1; $i<=$elenco->Count(); $i++) {
         // Associa il singolo messaggio
         $mmm = $elenco->Item($i);
         
         // Visualizza i dati della mail
         echo "<TR><TD CLASS=\"elemento\">Destinatario</TD><TD CLASS=\"dato\">". $mmm->To ."</TD></TR>";
         echo "<TR><TD CLASS=\"elemento\">Oggetto</TD><TD CLASS=\"dato\">". $mmm->Subject ."</TD></TR>";
         $d = getdate($mmm->SentOn);
         echo "<TR><TD CLASS=\"elemento\">Data/Ora di invio</TD><TD CLASS=\"dato\">". $giorni[$d['wday']] ." ". $d['mday'] ."/". $d['mon'] ."/". $d['year'] ." ore ". $d['hours'] .":". $d['minutes'] ."</TD></TR>";
         if($mmm->Attachments->Count() > 0) {
            for($y=1; $y<=$mmm->Attachments->Count(); $y++) {
               $at = $mmm->Attachments($y);
               echo "<TR><TD CLASS=\"elemento\">Allegato $y</TD><TD CLASS=\"dato\">". $at->FileName ."</TD></TR>";
            }
         } else {
            echo "<TR><TD COLSPAN=\"2\" CLASS=\"dato\">Nessun allegato.</TD></TR>";
         }
      }
      echo "<TR><TD COLSPAN=\"2\" CLASS=\"dato\">&nbsp;</TD></TR>";
   }

?>

Gli unici vincoli per il buon "funzionamento" sono (a parte avere Apache e PHP sotto Windows  ::) ):

  • da REGEDIT verificare la presenza di queste chiavi all'interno della sezione HKEY_CLASSES_ROOT: Outlook.Application e MIME.Session (o MAPI.Session)
  • Verificare la presenza del file CDO.dll nella cartella \Windows\System32\ (eventualmente è possibile scaricarlo dal sito M$)
  • Registrare il file CDO.dll utilizzando REGSVR32

Qualche differenza c'e' se si usa MS-Exchange Server, in quanto richiede l'autenticazione...

Spero possa essere d'aiuto a qualcuno...  :)

Grazie a Gianni per la "spinta"!

Mauro

 :bye:

risposto 10 anni fa
myne.it
X 0 X

Scusa,

io ho provato ho messo:

$od="c:/programmi/file comuni/odbc/data sources/odbcsurgel.dns";

$cn = odbc_connect($od, $uid, $pwd)or die(odbc_errormsg());

e mi dà questo errore:

Warning: odbc_connect(): SQL error: [Microsoft][Driver Manager ODBC] Lunghezza della stringa o del buffer non valida, SQL state S1090 in SQLConnect in c:\web\fsitart0surgel.php on line 10

[Microsoft][Driver Manager ODBC] Lunghezza della stringa o del buffer non valida

mi sai dire qualcosa?

grazie

risposto 10 anni fa
ventrix
X 0 X
Su questo PC-WebServer gira anche un'applicativo Windows che recupera alcuni spool di stampa da AS400 e genera file PDF ed e-mail, le quali vengono poi inviate ai clienti sfruttando M$ Outlook...

Ciao,

anch'io come te sono in una piccola intranet aziendale ed uso l'as400...

questa parte della spedizione delle fatture per mail in formato pdf m'interessa..

qual'è questo applicatico che prende gli spool di stampa e gli converte in pdf?

sai indirizzarmi in qualche modo?

grazie!!

risposto 10 anni fa
mauro1980
X 0 X

Ciao,

anch'io come te sono in una piccola intranet aziendale ed uso l'as400...

questa parte della spedizione delle fatture per mail in formato pdf m'interessa..

qual'è questo applicatico che prende gli spool di stampa e gli converte in pdf?

sai indirizzarmi in qualche modo?

grazie!!

Beh... nessun problema... ma si tratta di un applicativo creato dalla software-house che ci fornisce gli applicativi per AS400. Il programma ha una parte di "cattura" degli spool su AS e la parte di creazione dei PDF su PC... non ti so dire se come applicazione può girare anche senza il pacchetto di contabilità che abbiamo noi (ma credo di si, con le dovute personalizzazioni)...

In pratica "qualunque spool" di AS400 può essere inviato al software e, tramite modelli di Word (quindi personalizzazione al 100%), generare PDF per archiviazione / invio e-mail.

Se ti interessa sapere qualcosa in più dimmelo che ti comunico i riferimenti della persona con cui parlo di solito (magari con un messaggio privato... nn so se Gianni approva la pubblicità esplicita sul suo Forum...  :P )

Ciauz!

 :bye:

risposto 10 anni fa
myne.it
X 0 X
nn so se Gianni approva la pubblicità esplicita sul suo Forum...  :P )

 :knuppel:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Beh... nessun problema... ma si tratta di un applicativo creato dalla software-house che ci fornisce gli applicativi per AS400. Il programma ha una parte di "cattura" degli spool su AS e la parte di creazione dei PDF su PC... non ti so dire se come applicazione può girare anche senza il pacchetto di contabilità che abbiamo noi (ma credo di si, con le dovute personalizzazioni)...

In pratica "qualunque spool" di AS400 può essere inviato al software e, tramite modelli di Word (quindi personalizzazione al 100%), generare PDF per archiviazione / invio e-mail.

Se ti interessa sapere qualcosa in più dimmelo che ti comunico i riferimenti della persona con cui parlo di solito (magari con un messaggio privato... nn so se Gianni approva la pubblicità esplicita sul suo Forum...  :P )

Ciauz!

 :bye:

capito,

no, non importa allora, pensavo fosse qualcosa fatto in casa..

cmq grazie per la dritta!

 :bye:

risposto 10 anni fa
mauro1980
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda