- Home
- Categorie
- Coding e Sistemistica
- PHP
- Visualizzare tutte le mail inviate e ricevute da un determinato indirizzo email
-
Visualizzare tutte le mail inviate e ricevute da un determinato indirizzo email
Ciao a tutti,
sto lavorando a un crm e tra le cose che sto implementando vorrei poter visualizzare tutta la corrispondenza da e verso un determinato cliente...
Ho preparato uno script ma non riesco a visualizzare l'elenco completo delle email (inviate e ricevute) ma solo di una "cartella" per volta.
Sapreste darmi qualche dritta?
-
Cosa intendi con "cartella"?
In teoria ti basta fare una Query al database pescando i dati che hanno corrispondenze nelle colonne "da" e "a".
-
Intendo che mi collego a una casella imap online, ma non riesco a visualizzare tutte le mail, ma solo una cartella per volta: inbox, sent eccetera....
-
In che modo ti colleghi via IMAP?
In ogni caso è normale vedere una cartella per volta. Se sono divise in cartelle sono separate e non tutte insieme.
-
io mi collego tramite le apposite funzioni php:
[PHP]$imapStream = imap_open("{imap.example.org:143}.INBOX", $mbox_user, $mbox_pwd, OP_READONLY);[/PHP]e poi vado a ricercare le email inviate da e a un certo indirizzo sempre tramite la funzione:
[PHP]$imapResult= imap_search($imapStream,"FROM provaemail.it");[/PHP]soltanto che non riuscendo a collegarmi (se c'è un modo) in modo da visualizzare TUTTE le email (inviate, ricevute ecc...) presenti sul server, devo fare due connessioni e ricerche distinte: una dove visualizzo le ricevute, una dove visualizzo le inviate:
[PHP]$imapStream = imap_open("{imap.example.org:143}.Sent", $mbox_user, $mbox_pwd, OP_READONLY);
$imapResult= imap_search($imapStream,"TO provaemail.it");[/PHP]poi salvo tutto in un array dove utilizzo come chiave la data in formato numerico, successivamente lo ordino per data e sparo fuori il risultato, in termini di prestazioni non è il massimo ma funziona
-
Beh credo che se il tuo account di posta non prevede una cartella ALL è difficile averle tutte in un colpo solo a meno che non esista qualche cosa di particolare nella funzione IMAP che io non conosco.
Se provi a cercare ALL ti ritorna sia inviate che ricevute oppure no?
-
se metto all +l'indirizzo email non mi restituisce nulla.
Facendo un imap_list ecco cosa mi viene fuoriArray (
[0] => {incoming.esempio.com:143}INBOX.Cestino
[1] => {incoming.esempio.com:143}INBOX.Sent_prog
[2] => {incoming.esempio.com:143}INBOX.Deleted Messages
[3] => {incoming.esempio.com:143}INBOX.Archives.2015
[4] => {incoming.esempio.com:143}INBOX.Trash
[5] => {incoming.esempio.com:143}INBOX.Drafts
[6] => {incoming.esempio.com:143}INBOX.Archives
[7] => {incoming.esempio.com:143}INBOX.Archive
[8] => {incoming.esempio.com:143}INBOX.Cestino.Archive
[9] => {incoming.esempio.com:143}INBOX.Archives.2014
[10] => {incoming.esempio.com:143}INBOX
[11] => {incoming.esempio.com:143}INBOX.Posta inviata
)
-
Secondo me puoi provare a vedere nella 10 se ti torna tutta altrimenti non vedo altri metodi rispetto a quello usato da te.
-
Già, purtroppo quella la utilizzo proprio per leggere la posta in entrata
-
Credo che ci sia poco da fare, ma forse per migliorare efficienza potresti mostrare pochi pezzi alla volta tipo 40 risultati e quando uno scrolla vai le chiamate per fare apparire i successivi.
-
Grazie per la dritta...
Purtroppo non è il mio caso perché comunque si tratta di max 5-6 mail x cliente, al max limito il filtro per l'ultimo anno, comunque può essere utile a chi magari ha un problema simile.