Skip to content

Instantly share code, notes, and snippets.

@lucasaba
Created December 29, 2018 14:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucasaba/abe0fd3ea8b9cefed5ca0445afaf47cb to your computer and use it in GitHub Desktop.
Save lucasaba/abe0fd3ea8b9cefed5ca0445afaf47cb to your computer and use it in GitHub Desktop.
Uso della libreria PHPPec
/**
* @param Mailbox $mailbox
* @return PecServer
*/
private function getServer(Mailbox $mailbox)
{
$server = new PecServer($mailbox->getHost(), $mailbox->getPort());
$server->setAuthentication($mailbox->getUsername(), $mailbox->getPassword());
return $server;
}
foreach ($mailboxes as $mailbox) {
$server = $this->getServer($mailbox);
/**
* Aggiorna la lista delle PEC scaricando quelle non ancora lette
*/
foreach ($server->recuperaPecInIngresso('SUBJECT "POSTA CERTIFICATA: " UNSEEN') as $messaggio) {
/* @var PecMessage $messaggio */
$nuovaPec = new NuovaPec();
$nuovaPec->setData($messaggio->getDataMessaggio())
->setMittente($messaggio->realeMittente())
->setOggetto($messaggio->getOggetto())
->setRicevuta($messaggio->getRicevuta())
->setTipoRicevuta($messaggio->getTipoRicevuta())
->setTrasporto($messaggio->getTrasporto())
->setUid($messaggio->getUid())
->setRiferimentoMessaggioId($messaggio->getIdMessaggioDiRiferimento())
->setCorpoMessaggioCompleto($messaggio->getRawBody())
->setMailbox($mailbox);
foreach ($messaggio->getAttachments() as $allegatoPec) {
/* @var Attachment $allegatoPec */
$allegato = new AllegatoNuovaPec();
$allegato->setFilename($allegatoPec->getFileName())
->setMimeType($allegatoPec->getMimeType())
->setDimensione($allegatoPec->getSize())
->setContenuto($allegatoPec->getData())
->setNuovaPec($nuovaPec);
$nuovaPec->addAllegato($allegato);
}
$em->persist($nuovaPec);
$em->flush();
$messaggio->setFlag(array(PecMessage::FLAG_SEEN, PecMessage::FLAG_FLAGGED));
}
$messaggi[$mailbox->getNome()] = $this->getDoctrine()->getRepository('ProtocolloBundle:NuovaPec')->findAllFromMailbox($mailbox);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment