Created
December 29, 2018 14:28
-
-
Save lucasaba/abe0fd3ea8b9cefed5ca0445afaf47cb to your computer and use it in GitHub Desktop.
Uso della libreria PHPPec
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @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