OVH Community, votre nouvel espace communautaire.

vps cloud 2 release 3 ; la fonction mail() de php ne marche pas...


ridhas
05/08/2015, 12h25
Bonjour,
J'ai aussi un soucis avec la release 3 que je viens de reinstaller. la fonction mail de php provoque un blocage de la page.
voici le log correspondant avec des "permission denied"
Aug 5 12:19:03 vpsxxx postfix/postdrop[16234]: warning: mail_queue_enter: create file maildrop/85094.16234: Permission denied
Aug 5 12:19:08 vpsxxx postfix/postdrop[3078]: warning: mail_queue_enter: create file maildrop/27489.3078: Permission denied
Aug 5 12:19:08 vpsxxx postfix/postdrop[13867]: warning: mail_queue_enter: create file maildrop/30499.13867: Permission denied
Aug 5 12:19:08 vpsxxx postfix/postdrop[13821]: warning: mail_queue_enter: create file maildrop/30896.13821: Permission denied
Aug 5 12:19:13 vpsxxx postfix/postdrop[16234]: warning: mail_queue_enter: create file maildrop/95484.16234: Permission denied
Aug 5 12:19:18 vpsxxx postfix/postdrop[3078]: warning: mail_queue_enter: create file maildrop/27666.3078: Permission denied
Aug 5 12:19:18 vpsxxx postfix/postdrop[13867]: warning: mail_queue_enter: create file maildrop/30641.13867: Permission denied
Aug 5 12:19:18 vpsxxx postfix/postdrop[13821]: warning: mail_queue_enter: create file maildrop/31016.13821: Permission denied
Aug 5 12:19:23 vpsxxx postfix/postdrop[16234]: warning: mail_queue_enter: create file maildrop/95672.16234: Permission denied
Aug 5 12:19:28 vpsxxx postfix/postdrop[3078]: warning: mail_queue_enter: create file maildrop/33590.3078: Permission denied
Aug 5 12:19:28 vpsxxx postfix/postdrop[13821]: warning: mail_queue_enter: create file maildrop/33458.13821: Permission denied
Aug 5 12:19:28 vpsxxx postfix/postdrop[13867]: warning: mail_queue_enter: create file maildrop/33541.13867: Permission denied
Aug 5 12:19:29 vpsxxx postfix/anvil[19040]: statistics: max connection rate 1/60s for (smtp:74.208.72.7) at Aug 5 12:16:09
Aug 5 12:19:29 vpsxxx postfix/anvil[19040]: statistics: max connection count 1 for (smtp:74.208.72.7) at Aug 5 12:16:09
Aug 5 12:19:29 vpsxxx postfix/anvil[19040]: statistics: max cache size 1 at Aug 5 12:16:09
Aug 5 12:19:33 vpsxxx postfix/postdrop[16234]: warning: mail_queue_enter: create file maildrop/95880.16234: Permission denied

jeromefabre
23/12/2013, 01h16
En tout cas merci pour votre guidage précieux.

jeromefabre
22/12/2013, 19h46
Il y a bien quelque chose puisque ce même formulaire fonctionnait bien sur la R2.
Pas grave. J'ai repris les parametres de l'exemple et mon formulaire fonctionne. Mais j'aurais aimé savoir exactement ce qui cloche. Là j'ai un peu peur que ça me retombe dessus plus tard.

Gaston_Phone
22/12/2013, 15h40
Citation Envoyé par jeromefabre
Par contre avec ton test, ça passe très bien même si le return-path n'est pas correct.
--> Donc le vps cloud 2 release 3 n'est pas en cause.

En comparant ton script et le mien tu as toutes les billes pour trouver la solution.

jeromefabre
22/12/2013, 15h22
Avec mon script, le return-path du mail n'était pas une adresse mail correcte, je pensais que ça pouvait poser problème. En corrigeant ça ne permet pas de faire arriver correctement le mail. Par contre avec ton test, ça passe très bien même si le return-path n'est pas correct.

Gaston_Phone
22/12/2013, 13h15
Citation Envoyé par jeromefabre
Ma piste de return-path ne donne rien.
Le test de Gaston fonction.
Rien compris.

jeromefabre
22/12/2013, 12h43
Ma piste de return-path ne donne rien.
Le test de Gaston fonction.

Gaston_Phone
22/12/2013, 12h31
As-t essayé mon test ?

jeromefabre
22/12/2013, 11h21
Dans l'entête de mon mail il y a return-path qui n'est pas une adresse mail mais mon nom d'utilisateur unix. Je vais voir ça d'abord.

Gaston_Phone
22/12/2013, 11h02
A tout hasard essaye avec le script --> OVH - Tester l'envoi de mail avec un petit script PHP.

jeromefabre
22/12/2013, 10h56
Rien d'anormal me semble-t-il dans les logs du vps sur lequel je travaille. du coup je suis allé voir les logs du kimsufi qui héberge l'adresse de destination du mail généré par le formulaire. Je creuse.
Dec 22 10:48:59 www spamd[13595]: spamd: connection from localhost [127.0.0.1] at port 46938
Dec 22 10:48:59 www spamd[13595]: spamd: checking message <20131222094858.711B711C050@vps41271.ovh.net> for qscand:509
Dec 22 10:49:05 www spamd[13595]: spamd: clean message (1.7/6.0) for qscand:509 in 5.3 seconds, 1017 bytes.
Dec 22 10:49:05 www spamd[13595]: spamd: result: . 1 - BAYES_40,HTML_MESSAGE,MIME_HTML_ONLY,RDNS_NONE,TO_ EQ_FM_DOM_HTML_ONLY scantime=5.3,size=1017,user=qscand,uid=509,require d_score=6.0,rhost=localhost,raddr=127.0.0.1,rport= 46938,mid=<20131222094858.711B711C050@vps41271.ovh .net>,bayes=0.232515,autolearn=no
Dec 22 10:49:05 www qmail-scanner[27378]: Clear:RC:1(127.0.0.1): 0 1100 postmaster@ks3266274.kimsufi.com <> policy-violation_found_in_sent_message_"[Contact_jeromefabre.fr]" http://www.jeromefab.re1387705745767...74.kimsufi.com quarantine-event.txt:1000
Dec 22 10:49:05 www qmail-scanner[27378]: Clear:RC:1(127.0.0.1): 0 1100 postmaster@ks3266274.kimsufi.com postmaster@ks3266274.kimsufi.com policy-violation_found_in_sent_message_"[Contact_jeromefabre.fr]" http://www.jeromefab.re1387705745767...74.kimsufi.com quarantine-event.txt:1000
Dec 22 10:49:05 www spamd[19511]: prefork: child states: II

fritz2cat
21/12/2013, 21h47
Citation Envoyé par jeromefabre
Tout dans la même ligne et avec des \r\n partout, ça fonctionne et j'ai pu remettre la protection comme au départ.
Me reste un petit problème annexe, je peux envoyer ce mail vers une adresse locale mais pas une autre.... Sachant que le serveur est bien capable d'envoyer des mails.
Que dit ton fichier log ? Je parierais que la réponse s'y trouve.

jeromefabre
21/12/2013, 15h47
$tete = "Content-Type: text/html; charset=UTF-8"."\r\n"."from: $Email"."\r\n"."X-Sender: $Email"."\r\n"."X-Mailer: PHP"."\r\n"."X-auth-smtp-user: $Email"."\r\n"."X-abuse-contact: travail@jeromefabre.fr"."\r\n"."Reply-to: $Email"."\r\n";
Tout dans la même ligne et avec des \r\n partout, ça fonctionne et j'ai pu remettre la protection comme au départ.
Me reste un petit problème annexe, je peux envoyer ce mail vers une adresse locale mais pas une autre.... Sachant que le serveur est bien capable d'envoyer des mails.

fritz2cat
20/12/2013, 18h31
il me semble que le diagnostic était proche de ce que tu as
Citation Envoyé par fritz2cat
S'il y a des doubles newline dans tes headers, tu as probablement mal formatté tes paramètres.
En SMTP chaque ligne doit se terminer par CR LF (ou \r\n ) ; donc des CR ou des LF isolés indiquent au mieux une erreur de programmation, ou au pire des mails corrompus ou tronqués entre l'expéditeur et le destinataire.

Il faut donc mieux soigner le malade plutôt que tremper le thermomètre dans l'eau froide.
Ca explique pourquoi les headers se retrouvent dans le texte du mail.
Le comportement est aberrant et dépand des mailers etde ton logiciel de mail, puisque ton message ne répond pas aux protocoles, chacun fait à sa manière.

fritz2cat
20/12/2013, 18h27
pourquoi des \n et non des \r\n sur la moitié des lignes ???

jeromefabre
20/12/2013, 17h02
$tete = "Content-Type: text/html; charset=UTF-8"."\r\n";
$tete .= "from: $Email"."\r\n";
$tete .= "X-Sender: $Email\n";
$tete .= "X-Mailer: PHP\n";
$tete .= "X-auth-smtp-user: $Email\n";
$tete .= "X-abuse-contact: travail@jeromefabre.fr\n";
$tete .= "Reply-to: $Email"."\r\n";
$tete .= "\r\n";
On parle bien que des entêtes? l'objet est à part. Ailleurs ça fonctionnait, mais sur mon client mobile, les entes passaient parfois dans le corps du mail. Donc peut-être bien un défaut dans la forme de mes mails que ce nouveau serveur ne tolère pas du tout....
parce que là tout de suite j'envoie le mail sur une adresse hébergée sur la même machine alors j'imagine mal un problème entre l'expéditeur et le destinataire.

fritz2cat
20/12/2013, 14h56
S'il y a des doubles newline dans tes headers, tu as probablement mal formatté tes paramètres.
En SMTP chaque ligne doit se terminer par CR LF (ou \r\n ) ; donc des CR ou des LF isolés indiquent au mieux une erreur de programmation, ou au pire des mails corrompus ou tronqués entre l'expéditeur et le destinataire.

Il faut donc mieux soigner le malade plutôt que tremper le thermomètre dans l'eau froide.

jeromefabre
20/12/2013, 14h39
Merci pour toutes ces indications. Mais j'ai trouvé une réponse ailleurs. j'ai regardé dans var/log/messages et j'ai trouvé ça. l'ip est bien la mienne.
Dec 20 12:44:18 vps41271 suhosin[10183]: ALERT - mail() - double newline in headers, possible injection, mail dropped (attacker '109.190.95.185', file '/home/jeromehuli/www/mail_contact1.php', line 61)
Dec 20 12:50:24 vps41271 suhosin[10579]: ALERT - mail() - double newline in headers, possible injection, mail dropped (attacker '109.190.95.185', file '/home/jeromehuli/www/mail_contact1.php', line 61)
J'ai donc creusé du côté de suhosin. suhosin sécurise ce mail mais on peut régler le niveau de protection. J'ai mis à 0 dans /etc/php.d/suhosin.ini:
suhosin.mail.protect = 0
J'ai trouvé ça là:
http://http://www.hardened-php.net/s...n.mail.protect

Si personne me dit que ça représente un vrai problème de sécurité, je passerai en résolu.

fritz2cat
20/12/2013, 12h00
/usr/bin/sendmail ne devrait pas montrer "smtpd" mais bien "Postfix, from user nnn"

jeromefabre
20/12/2013, 11h01
ça ne m'avance pas vraiment. Cette connexion "unknown" correspond à ma tentative d'envoi de mail en php... L'installation est toute fraîche et j'ai rien modifié. J'ai beau chercher, je ne trouve pas.
La seule piste sérieuse était le chemin vers le mail dans php.ini et j'ai ça:
/usr/sbin/sendmail -t -i

fritz2cat
20/12/2013, 08h20
J'ai fait une connexion ce matin vers 08h18
# telnet vps41271.ovh.net 25
Trying 37.187.199.67...
Connected to vps41271.ovh.net.
Escape character is '^]'.
220 vps41271.ovh.net ESMTP Postfix
helo forum.ovh.net
250 vps41271.ovh.net
mail from:
250 2.1.0 Ok
rcpt to:
550 5.1.1 : Recipient address rejected: User unknown in virtual mailbox table
quit
221 2.0.0 Bye
Connection closed by foreign host.
Dans ton log, tu as aussi un connect from unknown[unknown] ? Normalement tu devrais voir une IP commençant par 192.95.24.xx

Frédéric

jeromefabre
20/12/2013, 02h55
Je précise que le mail "classique" fonctionne (pop3, smtp...).

jeromefabre
20/12/2013, 02h39
Dec 20 02:35:13 vps41271 postfix/smtpd[6423]: connect from unknown[unknown]
Dec 20 02:35:13 vps41271 postfix/smtpd[6423]: lost connection after CONNECT from unknown[unknown]
Dec 20 02:35:13 vps41271 postfix/smtpd[6423]: disconnect from unknown[unknown]
Dec 20 02:35:32 vps41271 clamd[3160]: SelfCheck: Database status OK.
Nouvelle tentative avec les logs correspondants au dessus...

jeromefabre
13/12/2013, 00h14
tail -f /var/log/maillog (sans le point finalement)

rien d'autre que mes connexions pop et smtp de chez moi. et ça dont je ne sais ce que c'est:
Dec 13 00:10:18 vps41271 postfix/smtpd[13894]: connect from unknown[unknown]
Dec 13 00:10:18 vps41271 postfix/smtpd[13894]: lost connection after CONNECT from unknown[unknown]
Dec 13 00:10:18 vps41271 postfix/smtpd[13894]: disconnect from unknown[unknown]
Dec 13 00:10:22 vps41271 clamd[3196]: SelfCheck: Database status OK.
Dec 13 00:13:38 vps41271 postfix/anvil[13895]: statistics: max connection rate 1/60s for (smtp:unknown) at Dec 13 00:10:18
Dec 13 00:13:38 vps41271 postfix/anvil[13895]: statistics: max connection count 1 for (smtp:unknown) at Dec 13 00:10:18
Dec 13 00:13:38 vps41271 postfix/anvil[13895]: statistics: max cache size 1 at Dec 13 00:10:18

Nowwhat
12/12/2013, 23h30
Bien ...

T'as un R3 donc postfix.
Le présume que le log de postfix est ici /var/log/mail.log
Ouvre une session SSH, puis tape:
tail -f /var/log/mail.log
et observe le.

Maintenant, fait en sorte que mail() de PHP soit utilisé.

Observe ce qui ce passe dans les logs ... est ce que le mail est traité ?

D'une manière ou autre, on commence toujours avec un:
tail -f /var/log/mail.log
pour voir ce qui ce passe ...

jeromefabre
12/12/2013, 23h06
Je pensais que quelqu'un pouvait avoir rencontré ce problème. Je ne vois pes vraiment de précision que je pourrai ajouter à ma demande... tout devrait fonctionner normalement.

Nowwhat
12/12/2013, 22h54
Bonsoir,

Image-toi que nous avons encore moins des pistes que toi.
Quand t'as fini avec le témoin, tu nous le passe ?
Il parlera.

jeromefabre
12/12/2013, 22h08
Bonjour,

J'y ai passé l'après-midi, en vérifications de toute sorte et recherche sur le web. Je n'arrive pas à envoyer un mail en php, il me semble que ça devrait fonctionner de base.... Je précise que le serveur de mail fonctionne bien. Je n'ai aucune piste.