Interfaccia per webmail-interno al sito

megarospo

Utente Attivo
25 Set 2007
147
0
0
Ciao.
Vorrei realizzare un servizio di messaggistica (interno al sito) che graficamente sia come una normale webmail (posta in arrivo, castino, allegati, bozze, rubrica, elimina tutto ecc.). Gli utenti dovrebbero inviarsi messaggi tramite questo servizio.
Avete qulache consiglio? Esiste qualcosa da personalizzare? Ciao e grazie :book:
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
funziona anche su server windows e per sola messaggistica interna al sito?
 
Ultima modifica:

megarospo

Utente Attivo
25 Set 2007
147
0
0
si.
l'idea è questa.
l'utente "A" messaggia a "B" (tramite il sito e il messaggio rimane nella banca dati del sito).
Il sistema avverte "B" (tramite il sul indirizzo di posta elettronica) che sul sito è presente un mess per lui.
"B" si collega al sito e legge il messaggio. Se vuole può risponde ad "A" (sempre nel sito e dentro il sito).
Le uniche e-mail VERE che vengono spedite sono quello del sistema che avverte gli utenti di nuovi mess.
Ciao! :book:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Al momento non ho tempo per scriverti il codice ma ti illustro brevemente come può funzionare una cosa del genere.

Ti serve una tabella per i messaggi che contenga l'ID del messaggio, l'oggetto, il testo, ID del mandante ed ID del ricevente e la cartella dove viene salvato (inbox/outbox), oltre ad un campo che può essere 0 o 1 e che servirà per capire se il messaggio è stato letto oppure no.

Quando A compone un messaggio verso B, oltre ad effettuare tutti i dovuti controlli, salvi il messaggio nell'inbox di A e nell'outbox di B. Nel primo caso il campo che determina se un messaggio è stato letto avrà valore 0, nel secondo valore 1 (A conosce il messaggio che ha mandato!). Inoltre invii una e-mail a B con tutti i dati relativi al messaggio.

Quando B legge il messaggio di A, imposti la variabile che determina se il messaggio è stato letto oppure no ad 1.

Per la risposta userai lo stesso principio dell'invio.

Probabilmente ti starai chiedendo perché c'è un campo che determina se un messaggio deve finire in inbox o in outbox, senza fare direttamente una cartella per tutti e poi capire dinamicamente se vanno visualizzati in posta ricevuta o posta inviata. Te lo spiego subito: tempo fa ho fatto un sistema di MP per un mio CMS senza quel campo, e mi sono reso conto che quando cancellavo un messaggio dall'outbox di A spariva anche nell'inbox di B, perché lo cancellavo dal database! In questa maniera invece A elimina solo la copia del messaggio nel suo outbox e B continua a tenersi la sua.

Questa è un'idea abbastanza astratta su come potresti fare la cosa, che poi immagino sia il sistema usato anche dai CMS famosi. Ovviamente si può migliorare moltissimo, ad esempio aggiungendo anche un'altra cartella (il cestino) e tutte quelle boiate che non servono a niente ma che fanno sembrare il portale tremendamente figo :D
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
in realtà ho già iniziato a lavorarci e sono ad un buon punto, ma mi rendo conto che un programma fatto da esperti risulterebbe più robusto e più gradevole all'utente.
E poi avrebbe già superato decine di problematiche che io mi trovo a risolvere man mano che proseguo la compilazione.
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
No, no! Sono stato frainteso! :)
Come ti dicevo ho già iniziato a lavorarci. Ho scritto diverso codice e studiato il database.
Infatti quello che hai scritto precedentemente mi è stato utile per riflettere sulla struttura del database. :book:
Nella mia idea immagino che l'utente "A" possa inviare a più utenti contemporaneamente. Quindi nel campo id_dest ci potrebbe essere anche una cosa tipo: 34, 587,1365, 13, 52, 767.
E questo comporta altre considerazioni ancora.... :book: :)
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
per il database la mia idea è questa:

DATABASE
TABELLA OUTBOX
| id_mess | id_user | id_dest | oggetto | testo | allegati | tipo | data |

TABELLA INTBOX
| id_mess | id_user | id_mitt | oggetto | testo | allegati | tipo | data |


Dove su campo “tipo” pensavo di inserire una lettera identificativa della situazione del messaggio. Cioè se è una bozza metto “B”, se è letto metto “L” o no “A”, se è nel cestino “C”.
Così facendo c’è un po’ di ridondanza di dati sui campi ”oggetto”, “testo” e “allegati”, ma solo nel caso il mittente invia a più soggetti. È anche il modo più semplice e logico per permettere ad ogni destinatario di amministrare i propri messaggi indipendentemente dagli altri.

Per il campo “testo” mi consigliate di fare dei collegamenti a file di testo o è più pratico inserirlo nel database?
 
Ultima modifica:

megarospo

Utente Attivo
25 Set 2007
147
0
0
Questo codice dovrebbe realizzare un ciclo e compilare una tabella.
Mi stampa solo l'ultimo record dei tre che ho inserito nel database.


prima parte per la query nel database:
PHP:
$sql_posta_in_arrivo = "SELECT * FROM m_inbox WHERE id_user_i=$id_userOK"; 
$result_posta_in_arrivo = mysql_query($sql_posta_in_arrivo,$film) or die (mysql_error());
$array_posta_in_arrivo = mysql_fetch_array($result_posta_in_arrivo);
$array_posta_in_arrivo_assoc = mysql_fetch_assoc ($result_posta_in_arrivo);
$numero_messaggi_posta_in_arrivo=mysql_num_rows($result_posta_in_arrivo);

$array_posta_in_arrivo_assoc = mysql_fetch_assoc($result_posta_in_arrivo);



Seconda parte nell'HTML
PHP:
<?php do { ?>
<tr>
<td width=10% colspan=2 valign=top> <?php echo "<input name=\"".$array_posta_in_arrivo_assoc['id_mess_i']." \" value=\"".$numero_messaggi_posta_in_arrivo['id_mess_i']."\" type=\"checkbox\">"; ?>
</td>
 <td width=10% colspan=2 valign=top> <?php echo "stampa".$array_posta_in_arrivo_assoc['allegati_i']."";?>
</td>
 <td width=50% colspan=2 valign=top> <?php echo "stampa".$array_posta_in_arrivo_assoc['oggetto_i'].""; ?>
</td>
<td width=20% colspan=2 valign=top> <?php echo "stampa".$array_posta_in_arrivo_assoc['id_mittente_i'].""; ?>
</td>
<td width=10% colspan=2 valign=top> <?php echo "stampa".$array_posta_in_arrivo_assoc['data_i']."";?>
</td>
</tr>
</table>
</form>

<?php } while ($array_posta_in_arrivo_assoc = mysql_fetch_assoc($result_posta_in_arrivo));
?>


Secondo voi cosa sbaglio?:confused:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ciao, in questa riga:
PHP:
$sql_posta_in_arrivo = "SELECT * FROM m_inbox WHERE id_user_i=$id_userOK";
Quell'OK finale non è anche nell'originale, vero?
E comunque non usare do while, perché comunque esegue il ciclo una volta. Usa direttamente while.
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
Rispondo prima a MarcoGrazia
Sto cercando di creare, non una chat che lavora nell'immediatezza dello scambio di messaggi di utenti contemporaneamente collegati, ma un sistema di mail, o di messaggi che dir si voglia, tra utenti che per leggere i messaggi devono collegarsi al sito. Un modo come un altro per generare traffico. :)

Ora rispondo ad alessandro1997:
L'OK finale è corretto.
Ho usato "do while" perchè che io sappia produce un ciclo! L'ho usato in un'altra pagina e funziona. Mi compila una tabella con tutti i dati pescati dal database. In questa pagina invece no! :confused:

Cosa ne pensate?:book:
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
Infatti la prima chat era fatta come la vuoi fare tu, ne più e ne meno, la contemporaneità è venuta dopo, ma dopotutto è la stessa cosa, i messaggi vengono messi in attesa in uno stack fino a quando l'utente designato non li legge e decide cosa farne.
Lo stack è un ciclo while infinito che controlla per prima cosa se c'è qualcuno loggato, se sì prosegue leggendo la posta dallo stack.
Il ciclo termina solo e soltanto quando anche l'ultimo utente si disconnette e ricomincia quando qualcuno fa il log.
Comunque, mi spieghi perché due tabelle, una inbox e una outbox?
Ti bastava una sola tabella con un campo flag, se false il messaggio contenuto era in arrivo, se true in uscita.
Facevi due sole tabelle, una con i dati per userID, account, password per l'autenticazione, e l'altra per le email, con userID per fare un collegamento con la persona autenticata, poi leggi i dati in funzione di un campo mail (true|false) che ti dice se ciò che leggerai negli altri campi della tabella è in arrivo o in partenza, puoi anche metterci un campo cestino(true|false) per definire ciò che va buttato e ciò che non va buttato.
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
il codice ora mi funziona. avevo saltato questi passaggi:

$maxRows_ric = 10000;
$pageNum_ric = 0;
if (isset($_GET['pageNum_ric'])) {
$pageNum_ric = $_GET['pageNum_ric'];
}
$startRow_ric = $pageNum_ric * $maxRows_ric; :byebye:

Avevo valutato la possibilità di una sola tabella ma l'avevo esclusa per una serie di ragionamenti. Non voglio farti del male quindi te li risparmio :)
Comunque credo che ritornerò sui miei passi e proverò a seguire il tuo consiglio.
Ciao e buona notte! :dormo:
 

megarospo

Utente Attivo
25 Set 2007
147
0
0
Intendevo dire che ti avrei annoiato a morte e che non sarebbe stato utile renderti partecipe dei voli pindarici che mi hanno portato a pensare (erroneamente) che fossero necessarie più tabelle :)

Invece pongo un altro quesito.
Questo codice non mi stampa il numero dei record estratti. Secondo voi cosa sbaglio? Ovviamente ho letto e riletto e riprovato il codice decine di volte prima di postaro.
Non sono riuscito a vedere errori. Ma qualcosa c'è sicuramente. :confused:


$sql_posta_in_arrivo = sprintf ("SELECT * FROM m_inbox WHERE id_user_i=$id_userOK");
$result_posta_in_arrivo = mysql_query($sql_posta_in_arrivo,$db) or die (mysql_error());
$numero_messaggi_posta_in_arrivo = mysql_num_rows($result_posta_in_arrivo);
echo "numero mess:".$numero_messaggi_posta_in_arrivo;

La stampa a video è: numero mess: 0

Eppure la stampa del contenuto dei record la fà correttamente!

ciao!!!
 

MarcoGrazia

Utente Attivo
15 Dic 2009
852
20
28
62
Udine
www.stilisticamente.com
0 (zero) può essere anche un risultato di errore, sicuro che la query sia giusta?
Sicuro che per useridOK ci siano ancora messaggi da leggere in quel momento?
Hai controllato magari con un echo, cosa c'è in $sql_posta_in_arrivo dopo che l'hai processato?
 
Discussioni simili
Autore Titolo Forum Risposte Data
L Interfaccia grafica per gestire sql server .NET Framework 1
J Interfaccia per un gioco in HTML/CSS/JQ HTML e CSS 0
helpdesk problema interfaccia per ogni utente PHP 0
abulafia [postgres+php]interfaccia grafica per inserimento e ricerca dati PHP 0
M interfaccia per la modifica del sito. HTML e CSS 5
S Interfaccia web Cisco cap1700 Reti LAN e Wireless 0
R [PHP] Interfaccia Postgres PHP 0
D Interfaccia Grafica in C C/C++ 3
B Visualizzazione interfaccia grafica photoshop cs 5 Photoshop 1
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
S [ACCESS]: Database e interfaccia grafica, popolare caselle dinamicamente MS Access 0
M interfaccia php a google calendar PHP 16
G Creazione interfaccia VISUALIZZAZIONE/CANCELLAZIONE dati database PHP 1
P Editare file di testo tramite interfaccia WEB Javascript 1
emanuelevt differenze tra classe astratta e interfaccia PHP 5
Y Problema con Link interni ad una interfaccia Tab Javascript 3
X Interfaccia webmail PHP 1
S Interfaccia Grafica Turbo Pascal... Aiuto!! Programmazione 1
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
E Aiuto per query PHP 8
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F CERCO Servizi SEO di Qualità per Agenzie di Servizi SEO e Posizionamento 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
R Plugin di base per WordPress WordPress 0
D [COMPRO/CERCO] GUEST POST o scambio link per sito di Spiritualità ed Esoterismo. Vendere e Acquistare pubblicita' online 0
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
M Analisi sito per pulire codice inutile HTML e CSS 1
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
M Hosting VPS per server di gioco Minecraft Hosting 0
N Grazie per il benvenuto Presentati al Forum 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Filtri e plugin per photoshop Photoshop 0
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
0 [Retribuito] Cercasi programmatore per GdR PbC Offerte e Richieste di Lavoro e/o Collaborazione 0
A Adempimenti per magazine on line Leggi, Normative e Fisco 0
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
I aiuto urgente per thunderbird Posta Elettronica 0
A Web master per semplice sito web Offerte e Richieste di Lavoro e/o Collaborazione 2
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
M Un saluto per cominciare Presentati al Forum 1
N MAX() + ADD_DATE - per update su Mysql MySQL 0
G Qualcuno conosce questo software per gestire le telecamere IP Cam e Videosorveglianza 0
A [CERCO] Articolista per siti a tema eventi e feste private Offerte e Richieste di Lavoro e/o Collaborazione 0
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
I aiuto per outlook Posta Elettronica 0
L Script per convertire numeri in parole Javascript 2
J [Cerco] [Collaborazione gratuita] Grafico per piccoli lavori di grafica Offerte e Richieste di Lavoro e/o Collaborazione 0
M Memorizzazione temi per le diverse pagine del sito Javascript 1

Discussioni simili