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
24
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
24
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
795
16
18
59
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
795
16
18
59
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
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
P Aiuto per rendere un Bot Telegram Privato PHP 0
V Query per una somma PHP 2
A Tabella con bottoni per aggiornamento record PHP 6
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 5
P Passare solo alcuni parametri a script per CSV PHP 0
A Consiglio per creazione sito web CMS (Content Management System) 0
A Regex per isolare link interni con rel noopener PHP 0
L form immagini per il database PHP 0
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 1
I [cerchiamo][retribuito] Grafico/a per stickers Offerte e Richieste di Lavoro e/o Collaborazione 0
R Cercarsi programmatore per GDR PBC Offerte e Richieste di Lavoro e/o Collaborazione 0
L Sessione e array per utenti PHP 0
A Sottoquery con group by per mese MySQL 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
V [Cerco] Socio e Sviluppatore per App PlacesFinder Offerte e Richieste di Lavoro e/o Collaborazione 0
M user agent per il download di api PHP 0
B Stringa sql per ricerca su più campi Database 1
Cosina Upload multiplo con invio allegati per email PHP 0
P Editor per la realizzazione di siti HTML e CSS 0
M Versione nativa per M1. Photoshop 1
A Aiuto per pagina php PHP 0
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
T [cerco] scrittore/scrittrice per articoli web Offerte e Richieste di Lavoro e/o Collaborazione 5
B javascript per problemi con pdf e Safari Javascript 0
R Plugin per Gestire videocorsi a pagamento WordPress 3
Y Vorrei selezionare un colore di sfondo per una pagina web Javascript 0
C media per riga MySQL 1
I Cerca: blogger IT per articoli di prova Offerte e Richieste di Lavoro e/o Collaborazione 0
R Plugin per Registrazione Utente e Pagamento prodotto WordPress 2
M Quando ha l'immagine ingrandita è possibile fare rotazione per ritagliare? Photoshop 0
D modificare questo codice per inserimento in text e non in tabella jQuery 1

Discussioni simili