vanschklift.com

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 3 décembre 2008

Dotclear 2 et envoi de mails

Il y a un aspect de la configuration de dotclear 2 qui est assez méconnu, c'est celui de la configuration de l'envoi de mail. C'est un problème que l'on rencontre fréquemment dans les applications php.

Lorsque l'on utilise la fonction mail de php il est très fréquent de voir les mails envoyés atterrir eu spam. Ceci est dû au fait que l'adresse de l'expéditeur n'est pas la même dans l'enveloppe et dans les headers ; les filtres antispam vérifient que ces deux champs sont égaux à la réception d'un mail.

Par défaut php (ou le serveur de mail, je ne suis pas sûr) va générer une adresse bidon pour l'expéditeur, à partir de l'utilisateur dans lequel le processus apache tourne. Ceci n'est pas pertinent, et pose problème dans notre cas.

Dotclear 2 fournit une solution par défaut dans son fichier de configuration, la fonction mail est en fait surchargée par une fonction maison de clearbricks, qui joue le rôle d'un serveur de mail, et qui envoie un mail bien formé. Pour plus d'infos voir le fichier de configuration et cette page de la doc : Personnaliser l'envoi des mails.

Cependant cette solution n'est pas optimale, notamment en termes de performance (sur un de mes sites, le script met plus de 30 secondes à s'exécuter à la soumission du formulaire). Il existe une solution qui n'est pas portable mais qui fonctionne mieux dans certains cas, il s'agit de passer les bonnes options à la fonction mail. Si on se trouve sur un serveur linux, avec sendmail ou postfix, il est possible d'envoyer des mails via la fonction mail, en ajoutant un argument dans le 5e paramètre de cette fonction mail, qui contient l'adresse de l'expéditeur.

Voici un exemple de fonction mail à placer dans votre config.php :

function _mail($to,$subject,$message,$headers)
{
        // recherche de l'adresse de l'expéditeur
        $h = explode("\n", $headers);
        $from = '';
        $p = null;
        foreach ($h as $l) {
                if (strpos($l, 'From:') === 0) {
                        if (preg_match('|<(.*)>|', $l, $matches))
                             $from = $matches[1];
                        break;
                }       
        }       

        // si l'adresse de l'expéditeur est trouvée, on ajoute le paramètre
        if (!empty($from)) {
                $p = '-f'.$from;
        }
        // appel à la fonction mail classique
        @mail($to, $subject, $message, $headers, $p);
}

Remarques :

  • Il est nécessaire de vérifier que votre "sendmail" supporte bien l'option -f (en tapant par exemple la commande suivante : echo test | sendmail -ftest@test.com monadresse@mondomaine.com).
  • D'apès la doc php, il faut vérifier que l'utilisateur dans lequel le serveur web tourne fait bien partie des utilisateurs de confiance du serveur de mail, sinon le mail sera envoyé avec un header X-Warning, qui risque de le bloquer au niveau des antispams. Personnellement j'ai envoyé un mail, et X-Warning n'est pas apparu dans les headers, donc tout va bien :) Pour plus de détails, voir la doc php pour la fonction mail, dans la description du paramètre additional_parameters.

Si vous avez des suggestions ou des remarques sur cette fonction, n'hésitez pas à les formuler ici dans les commentaires.

mardi 2 décembre 2008

chroot et ssh

Depuis quelques temps je cherche à faire des comptes sur un serveur avec du chroot pour certains utilisateurs se connectant via scp/sftp.

Je sais le chroot c'est pas secure toussa, n'empêche que ça peut dissuader certains utilisateurs lambda de fouiller dans les fichiers de leurs petits camarades ;)

Depuis la version 4.8 de OpenSSH (y'a la 5.1 dans la dernière ubuntu 8.10), on peut maintenant en faire *simplement*, c'était vraiment pas le cas avant avec scponly ou rssh.

Quelques liens où c'est bien expliqué :

Ça n'a l'air de rien comme ça, mais en fait ça change la vie ! Plus de script de création d'account qui copie plein de binaires dans le jail (qui ne sont pas mis à jour, forcément), plus de procédure alambiquée pour la création de jails... c'est la class !

vendredi 21 novembre 2008

La technique de Cailliau !

Je viens d'apprendre l'existence du bouquin d'Antoine Cailliau sur Dotclear 2. Je viens de le commander sur amazon, histoire d'avoir un objet physique en rapport avec le projet qui me prend pas mal de mon temps depuis quelques années.

Félicitations à l'auteur pour le bouquin, ça fait toujours plaisir de voir que ce que l'on fait peut servir.

mercredi 19 novembre 2008

Alter ergo

On a pas mal parlé de qualité web lors de la dernière conférence Paris web. Dans le cadre de la qualité web, il y a une discipline qui peut paraître un peu magique pour les pauvres informaticiens que nous sommes, c'est l'ergonomie.

Parfois on peut penser que l'ergonomie c'est une somme de recettes de cuisine, ou du bon sens, mais c'est en fait une discipline scientifique. Il y a pas mal de bricoleurs qui se font passer pour ergonomes, il faut se méfier, c'est un vrai boulot qui s'apprend !

Si je peux vous recommander une ressource sur l'ergonomie qui est sympa, c'est alter ergo. C'est un site qui traite d'ergonomie et qui essaie de vulgariser un max, pour nous les informaticiens, et parce que nous le valons bien.

Pour débuter c'est bien sympa, et c'est écrit par un copain, l'Ergopathe, avec qui on a monté une asso pour promouvoir l'ergonomie : FLUPA.

En conclusion, c'est la fête, je vais avoir des réducs sur les oreillers ergonomiques ! :)

jeudi 6 novembre 2008

Are you sure, Jen ?

Je viens de lire un commentaire sur /. ce matin qui m'a fait marrer :

"I have a theory that find + xargs + grep is Turing-complete. Can't prove it, but it feels right."

C'est grave docteur ?

Edit: ah y'a aussi le pong qui chie la classe, whiteboard pong. Mystifiant !

vendredi 24 octobre 2008

Garbage collector

bon bah j'vais faire un peu de ménage, c'est parti !


Mell - Porcherie - C'est Quand Qu'on Rigole

mercredi 22 octobre 2008

Ca ne marche pas !

On n'était déja pas très appréciés au GD, si maintenant les médias et le président en rajoutent une couche... on est mal barrés !


Tension entre Pujadas et Juncker

jeudi 9 octobre 2008

All your ugly photos are belong to us

Vive les photos médiocres !

c'est ce que nous propose le site deleted images

Je vais pouvoir leur en envoyer plein ! ;)

vendredi 3 octobre 2008

White night

Juste un petit post vite fait pour vous signaler que la nuit blanche à Metz c'est ce soir !

Pour une fois qu'il se passe un truc à Metz, allez-y ! c'est par là le programme

dimanche 28 septembre 2008

rando des lavoirs

Ce matin, plein de bonne volonté, nous voulions nous rendre à la rando des lavoirs, mais c'était sans compter avec une chambre à air récalcitrante qui nous a fait rater le départ.

Du coup, improvisation d'un petit tour de 35km qui fut au final bien sympathique.


Agrandir le plan

vendredi 26 septembre 2008

yatta !

la chaudière remarche, ils ont changé la carte maman ! \o/

mardi 16 septembre 2008

Tout s'explique !

Pour ceux qui se demandent encore pourquoi je refuse de travailler le vendredi, voici une explication plausible : je suis pastafariste !

Selon Wikipedia,

le pastafarisme (Flying Spaghetti Monsterism ou pastafarianism en anglais, jeu de mot humoristique faisant référence aux pâtes et au mouvement rastafari) est une parodie de religion créée par Bobby Henderson, un diplômé en physique de l'Université d'État de l'Oregon, pour protester contre la décision du Comité d'Éducation de l'État du Kansas de permettre au dessein intelligent d'être enseigné dans les cours de science au même titre que la théorie de l'évolution.

Dans les dogmes religieux, on peut trouver ceci :

Le vendredi est une journée sacrée où il est de mise de manger des pâtes, et c'est aussi un jour de congé. Les pastafariens luttent pour la reconnaissance de ce droit à pratiquer leur religion.

En voilà une raison qu'elle est bonne ! Je ne peux pas travailler le vendredi, c'est contre ma religion :)

- page 1 de 17