Créer un webmail en php

Fermé
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 - 23 févr. 2009 à 10:28
 serv-webmasters - 13 déc. 2011 à 21:16
Bonjour à tous,


J'ai un projet qui consiste à créer un webmail.
Je voudrais le faire en php car c'est le seul langage web que je connaisse à peu près (et encore, je n'ai que les bases).

Je ne vous demande pas de me donner du code ou un lien vers un webmail déjà tout fait, je voudrais juste quelques conseils pour m'aider à avancer.


Je ne sais pas par où commencer. Je me suis orienté vers le manuel php :
http://fr.php.net/manual/fr/refs.remote.mail.php
mais, honnêtement, j'y capte que dalle.

Je ne sais même pas quelles bibliothèques il faut que j'installe, ni même comment en installer une (je me doute que c'est tout con mais je ne sais quand même pas faire).


Le webmail sera installé sur un serveur LAMP, mais le serveur de mails n'utilise pas MySQL.
Pour les mails, j'utilise Postfix et Courier-imap.
Les mails sont donc stockés dans le répertoire perso de l'utilisateur (sous Linux).


Pouvez-vous m'aider svp ?
A voir également:

5 réponses

tite_tête13 Messages postés 125 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 19 février 2010 3
23 févr. 2009 à 10:35
Slt,

vas voir sur le site du zéro c'est très bien fait : www.siteduzero.com

bonne journée
0
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
23 févr. 2009 à 17:55
Je suis déjà allé sur ce site mais je n'ai pas trouvé mon bonheur.

J'ai quand même réfléchis (mais pas trop, sinon ça fait mal) et je crois que je pourrai m'en tirer, en faisant quelques tests.

Mais une question me tarabiscotte, et sa réponse n'est pas sans importance :
Comment fait-on pour lire le nom d'un fichier, et surtout comment récupère-t-on la dernière lettre de ce fichier ?

Par exemple, j'ai un fichier qui se nomme "nomdufichier1.2,S" et un autre qui se nomme "nomdufichier2.2," et je veux savoir lequel se termine par un S.
Comment faire ?

Je n'ai pas trouver de fonction qui puisse faire ça.
0
Kopros Messages postés 597 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 3 février 2020 89
28 févr. 2009 à 19:46
Bah en fait sur mon OS la librairie imap est déjà installée, ça c'est fait avec l'installation de courier-imap (enfin c'est ce que j'ai compris).

Et j'ai installé php comme un module d'Apache (j'ai utilisé les paquets déjà compilés avec apt).
Ce n'est pas que je ne veux pas recompiler php pour qu'il ne soit plus un module d'Apache, mais je n'ai pas le temps de le faire (je présente un truc qui doit tourner le 3 mars, et j'ai encore pas mal de choses à faire).



Par contre ce que je ne comprends pas c'est que tu as besoin d'utiliser imap alors que tu veux faire un serveur pop3.
Perso je préfère que la gestion des mails soit centralisée sur le serveur, c'est pour ça que j'utilise imap. Pop3 a aussi ses avantages, ça dépend de ce que tu veux faire. Mais ton MTA ne peut utiliser qu'un seul de ces protocoles, alors pourquoi t'as installé imap ?


Voilà sinon je réponds à la question que j'avais posée précédemment (si ça intéresse quelqu'un) :
Pour prendre la dernière lettre du nom d'un fichier en php, il faut ouvrir et parcourir le répertoire où il y a le fichier, lister le contenu avec une boucle et à chaque passage de la boucle on met l'élément dans une variable.
On a alors une chaîne de caractère (dans la variable) il ne reste plus qu'à utiliser strlen pour prendre la dernière lettre (avec -1).

Voilà le code :

$nb_mails = 0;
$ligne = 0;
echo '<ul>';
$path="/home/$login/Maildir/cur/";
if($maildir = opendir("$path")) //si le dossier existe on l'ouvre
{
	while(false !== ($fichier = readdir($maildir))) //on parcourt le répertoire fichier par fichier
	{
    		if($fichier != '.' && $fichier != '..') //on ne prend pas en compte le dossier parent ni le dossier actuel
    		{
	    		$nb_mails++; //incrémentation pour connaître le nb de fichiers dans le répertoire
	    		echo '<li><a href="'.$path.'' . $fichier . '">' . $fichier . '</a></li>'; //on affiche le nom du fichier, le lien permet de vérifier l'adresse

	    		$last_char=$fichier[strlen($fichier)-1]; //on récupère la dernière lettre du nom du fichier
	    		echo $last_char."<br />"; //on l'affiche. Si c'est un 'S' le mail a été lu, sinon c'est une virgule ,
    		}
    	}
    	echo '</ul><br />';
	echo 'Il y a <strong>' .$nb_mails.'</strong> mail(s) dans le dossier';
	closedir($maildir);
}
    else echo 'Le dossier n\' a pas pu être ouvert';
0
www.netdoor.fr
8 mars 2009 à 17:22
Hello,

j'ai un serveur pop3 et smtp sous netdoor.fr, mais les boîtes sont comptées et je ne souhaite pas proposer de compte pop3 aux membres de netdoor.fr (administration lourde). Ce que je souhaite proposer c'est la possibilité de télécharger leurs mails depuis un serveur imap ou pop3 autre que celui de netdoor (wanadoo, orange, hotmail, celui de leur choix). En fait, j'avais besoin de la librairie imap en php car elle permet de dialoguer avec un serveur pop3 ou imap (du moment que l'on dispose du login, mot de passe et du nom du serveur). Ainsi, les membres du site pourront télécharger leurs mails dans leur boîte aux lettres de leur compte sur netdoor). En effet, je ne vais pas lire les mails directement en local dans le système de fichier (c'est également possible si la machine héberge un serveur de mail et un serveur web en même temps), je vais télécharger les mails et les injecter dans la messagerie du site via la librairie imap php, comme le fait un client de messagerie local tel que outlook).

Du moins, c'est comme celà que je vois la chose :0) mais je vais m'y mettre cette semaine car je rentre du ski à l'instant.

Tu fais des études en info si j'ai bien compris?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
serv-webmasters
13 déc. 2011 à 21:16
Bonjour,
Désolée de faire remonter le sujet
Même avis que netdoor
Je te recommande d'allé voir ma librairie qui automatise certaine action http://serv-webmasters.leobaillard.org/WM_IMAP.php
0