Serveurs Dédiés-old - Envois de mails en php si multiples domaines installés
... / Envois de mails en php si...
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Envois de mails en php si multiples domaines installés

Von
XavierJ2
Erstellungsdatum 2017-02-28 10:42:33 (edited on 2024-09-04 11:19:18) in Serveurs Dédiés-old

Bonjour,
J'ai plusieurs domaines installés sur un dédié.
C'est une vieille config qui va être bientôt changée mais en attendant.... il faut bien que je trouve une solution.
Linux Release 2 OVH + PHP 4.4 ..... je sais mais !! no comments please :-)

Sur la machine, plusieurs domaines.
L'un, domaine1, configuré sur l'IP principale de la machine,
Un autre, domaine2, (celui qui m'intéresse) sur une IP failover sur la même machine.

J'envoie un mail à partir d'un script php de domaine2.
Le mail arrive sans problème.... sauf que il a été véhiculé via le smtp de domaine1.

Je trouve ça dans le header du message reçu :
Received: from nsxxxxxxx.ovh.net ([IPfixe de la machine(donc de domaine1)])
j'imagine que j'aurai du avoir un header avec
Received: from nsxxxxxx.ovh.net ([IPfailover du domaine2])

La zone DNS de domaine2 est en principe bien configurée avec notamment :
un champ MX de type mail.domaine2
une entrée mail.domaine2 A [IPfailover du domaine]
une entrée SPF sur l'IP failover du domaine

Est-ce que quelqu'un saurait m'aiguiller dans mes recherches pour savoir et corriger si c'est un pbp de zone DNS, de config php, autre ?

Par avance merci


8 Antworten ( Latest reply on 2018-10-19 14:50:22 Von
XavierJ2
)

L'envoie se fait via le web ?
Peut être faudrait il regarder au niveau de la variable : sendmail_path ?
Avec comme valeur : /usr/sbin/sendmail -t -i -f email_expediteur@tld.com

ça peut se configurer dans le php.ini ou un .user.ini

Pour le php.ini y'a les valeurs hosts ou path
Pour le path :
[PATH=chemin du site]
sendmail_path = xxx

pour le host :
[HOST=url du site sans http]
sendmail_path = "/usr/sbin/sendmail -t -i -f lemail@tld.com"

Dans la config php :
sendmail_path /usr/sbin/sendmail -t -i

Le sendmail_from est à me@localhost.com

J'ai parcouru les fichiers de qmail avec notamment le me
Il contient le nom de la machine nsxxxxx.ovh.net qui lui est associé à l'adresse IP fixe (donc pas la bonne).

(Suite) Je complète le message précédent sur le "me"
Difficile de mettre autre chose car finalement plusieurs domaines doivent être capable indépendamment d'envoyer des mails depuis leur propre domaine... non ?

J'ai modifié le sendmail_path pour ajouter le -f webmaster@domaine2
Mais sans plus de succès

Je ne connais pas votre config, mais en gros il faut dire à PHP quel mail d'envoie utiliser via ce que j'ai mis plus haut.
PHP est en mode FPM ou module apache ?
Si c'est en mode fpm un fichier .user.ini à la racine de chaque site avec un sendmail_path devrait fonctionner. Sinon ça doit pouvoir se faire via le .htaccess (en cas de module php sur apache) mais là je ne sais pas pour la syntaxe.

D'abord, merci pour vos différents messages et le temps que vous passez pour vos réponses.

C'est un module php sur apache.

J'ai essayé pas mal de choses sans succès.
Modification du php.ini pour le sendmail_path avec une ligne de type
sendmail_path /usr/sbin/sendmail -t -i -f webmaster@domaine2
ça n'a rien changé.
J'ai modifié le php.ini (même s'il indique que pour Win32) le sendmail_from ... toujours sans succès.
En fait, l'un et l'autre ne serait pas satisfaisant puisque le problème se posera le jours ou domaine1 aura besoin de faire la même manip.

J'ai essayé en php de modifier la variable d'environnement php SMTP pour mettre "smtp.domaine2" ou "mail.domaine2" sans succès même si un appel de phpInfo dans le même script à la suite de la manip affiche bien smtp.domaine2 (sauf si )

Dans la pratique, quand on regarde le header, on ne trouve pas directement le nom de domaine domaine1 mais un :
Received from nsxxxxx.ovh.net (IP fixe)

Il me semble, mais je peux me tromper, que j'aurai du avoir
from nsxxxx.ovh.net (IP failover du domaine2)
ou
from domaine2 (IP failover di domaine2).
Mais je peux me tromper.

Et c'est là le problème puisque l'IP fixe remonte via les DNS vers le domaine1.

Le problème m'est apparu sur un test vers gmail qui mettait un cadenas brisé en rouge indiquant que domaine1 n'avait pas signé le message.

(La signature, c'est un autre sujet que j'essaie de traiter avec la norme DKIM.... mais ce n'est pas encore gagné)

ha ok, c'est un autre problème.
Que voulez vous, que chaque domaine envoie ses mails depuis sont IP FO ?
Ou que chaque site est le bon expéditeur dans les mails ?

Déjà le from nsxxx.ovh.net ce n'est pas bon, il faut mettre votre propre domaine là et configurer le reverse comme il faut pour les mails.
Ensuite que tous les mails partent depuis la même IP ce n'est pas un problème. Mais il ne faut pas garder le reverse d'OVH par contre.


Du coup le coeur du problème c'est quoi ? (oui je deviens vieux faut m'expliquer lgtps)
- Que chaque domaine envoie ses mails depuis une IP différente ?
- Ou que les mails envoyé depuis chaque site disposent bien du bon expéditeur et non pas un truc du genre www-data@adresse-du-serveur ?

Pas évident d'être clair mais j'essaie quand même ( je me fais aussi vieux maintenant :-) )

Pour les reverses, c'est en principe ok, c'est fait dans la rubrique des IP des dédiés dans l'espace client OVH.
l'IP fixe a un reverse sur domaine1
l'IPFailover a un reverse sur domaine2

Dans le meilleur des mondes, un mail envoyé depuis un script exécuté sur domaine1 devrait faire apparaître, dans le header du mail reçu, un Received from domaine1 (IP du domaine1) et pour ceux exécutés depuis domaine2 un Received from domaine2 (IP du domaine2) et non le nom de la machine (hostname) et son IP

Je suis d'accord sur le fait que si les mails partent tous de la même IP ce n'est pas vraiment grave sauf s'il s'avérait que ça posait problème pour certains destinataires dont les anti-spam venaient à considérer qu'il n'est pas très propre. D'où ma remarque sur un mail reçu sur une adresse gmail et dont un avertissement indiquait que le message n'avait pas été signé par .... domaine1. Donc là, le destinataire du mail pourrait se dire .... pfiouuuuu c''est quoi ce mail envoyé par domaine 2 qui n'est pas signé par domaine1..
Maintenant, peut-être que si j'intègre des signatures DKIM pour domaine1 et domaine2, le message n’apparaîtra plus...

Enfin, j'ai pas mal travaillé depuis hier pour que les records de la zone DNS de domaine2 soient corrects (et je pense qu'ils ne sont pas trop mal), je vais m'atteler à faire pareil pour domaine1 (des fois que des mauvais records polluent et perturbent l'ensemble).

Je fais des tests en parallèle sur 1tester.com.tester.com.
L'un des résultats était que les mail était envoyé par webmaster@domaine2 qui n'était pas autorisé à émettre depuis l'IP fixe. J'ai ajouté l'IP fixe dans un champ type spf1 qui pointait sur l'IP failover.
Prochain essai probablement demain après-midi dès que je pourrai me replonger dedans avec une signature DKIM au moins sur domaine2 et domaine1 si j'ai le temps. Je verrai alors ce qu'il en est et j'ajouterai un post en fonction.

Hum pour envoyer les mails en fonction du domaine sur une IP différente je ne sais plus comment faire ça. C'est faisable sur postfix pour sûr, mais je ne sais plus trop.

Concernant GMail normalement quelque soit l'IP ça doit être OK.
Sous réserve que l'IP soit bien autorisée via le SPF.
Idéalement signer les mails avec dkim également.
Faire en sorte que les serveurs se connectent via TLS et non pas en clair sur le port 25.

Si toutes ces conditions sont bien réunies ça ne posera pas de problème.
En fait le web et le mail sont 2 choses totalement différentes pas besoin de déclarer l'IP Fo dans les mails pour que ça marche.
Mais sinon oui il est parfaitement possible de dire au serveur mail d'envoyer les mails depuis une autre IP, par contre le mailname restera le même je crois.

Bonjour,


C'est faisable sur postfix

Attention il est sur une R2, avec qmail donc de mémoire (et sûrement une vieille version).

Cordialement, janus57

ha vi la bonne vieille R2....

Exact, avec qmail.
Une migration est prévue mais le temps de tout basculer sur une config, mon client sera parti ...

donc rien à faire, les mails partent de nsxxxxx et pas de la bonne IP :-(

QMail je ne connais vraiment pas, mais à minima essaie de configurer la signature des mails, spf ça sera déjà un bon début.
Pour nsxxx.ovh.net sous Postfix ça se gère avec le "mailname", il faut mettre la même chose que le reverse sur ton ip principale.

Mouaip, je continue mes tests mais il est vrai que ce n'est pas évident de savoir si c'est un pb de Zone DNS, pb php ou qmail.
J'ai intégré une clé DKIM1 par dkimcore.org qui est reconnue comme valide en passant dans leurs tests mais au bout du compte sans intérêt dès lors qu'il y a confusion de header des mail au niveau des adresses de l'émetteur.
Donc je continue à fouiller.

Bon, ce n'est pas forcément l'endroit mais quand même la suite logique de la discussion.
Je vais accélérer le passage sur une nouvelle config même si ça ne résout pas le court terme.

J'ai prévu une base Ubuntu (sans doute une 16.04 LTS (pas de bol, OVH propose une 17.10 qui n'est plus maintenue et ne propose pas la 18.04 LTS qui est la dernière avec une maintenance sur 5 ans).
Apache + java + tomcat.

Bon, là dessus il faut que j'installe un serveur de mails. Des suggestions pour quelque chose de solide (et configurable) ?

Perso je bosse avec Debian, mais tu as le droit de passer sur Ubuntu :)
Pour les mails je bosse avec postfix + dovecot. Question d'habitude, ce n'est pas forcément la meilleure config mais celle avec laquelle je suis habitué à bosser.

A voir dans ton cas si tu ne maîtrise pas de voir là où tu trouveras le + de doc sur le net.

Merci.
Je vais très probablement partir sur Ubuntu (qui est, à ma connaisance, bâti sur Debian).

Pour ma question de mails, j'ai du en plus à patcher qmail pour une question de PACKETSZ qui générait des erreurs sur certaines destinations. J'ai modifié le source qmail responsable et recompilé le tout.
Je vais me satisfaire de cette solution, les mails de mon clients arrivent, pas forcément idéalement constitués (question des 2 domaines) mais je considère que pour l'instant c'est ok car après ça va être trop consommateur de temps.

Je compte plus sur la nouvelle config pour être plus propre une fois montée pour retravailler le tout.

En tout cas, merci à toi Sich pour ton temps, tes conseils et ton accompagnement .