5546 sujets

Sémantique web et HTML

Bonjour à tous, je vous contacte concernant une erreur qui me titille depuis plusieurs jours déjà. J'ai réalisé un formulaire de contact sur 2 pages distinctes : Contact.html

<p align="center"<strong>Contact</strong></p>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<form action="Formulaire.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire">
<tr> 
<td colspan="3"><strong>Envoyer un message</strong></td>
</tr>
<tr> 
<td><div align="left">Votre nom :</div></td>
<td colspan="2"><input type="text" name="nom" size="45" maxlength="100"></td>
</tr>
<tr> 
<td width="17%"><div align="left">Votre mail :</div></td>
<td colspan="2"><input type="text" name="mail" size="45" maxlength="100"></td>
</tr>
<tr> 
<td><div align="left">Sujet : </div></td>
<td colspan="2"><input type="text" name="objet" size="45" maxlength="120"></td>
</tr>
<tr> 
<td><div align="left">Message : </div></td>
<td colspan="2"><textarea name="message" cols="50" rows="10"></textarea></td>
</tr>
<tr> 
<td></td>
<td width="42%"><center>
<input type="reset" name="Submit" value="Réinitialiser le formulaire">
</center></td>
<td width="41%"><center>
<input type="submit" name="Submit" value="Envoyer">
</center></td>
</tr>
</form>
</table>



Ainsi que ma page Formulaire.php :

$nom=$HTTP_POST_VARS['nom']; 
$mail=$HTTP_POST_VARS['mail']; 
$objet=$HTTP_POST_VARS['objet']; 
$message=$HTTP_POST_VARS['message']; 

/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 

//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 

////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer:PHP"; 

$subject="$objet"; 
$destinataire="exemple@domain.com"; 
$body="$message"; 
if (mail($destinataire,$subject,$body,$headers)) { 
echo "Votre mail a été envoyé<br>"; 
} else { 
echo "Une erreur s'est produite"; 
} 
?>



Lorsque je remplis le formulaire sur mon site, et que j'appuis sur le bouton envoyer, toujours le même message apparaît : " Une erreur s'est produite", j'en déduit que l'erreur provient de :
if (mail($destinataire,$subject,$body,$headers))


Pour plus d'informations, mon site est hébergé sur une raspberry pi.

Comment résoudre ce problème ?

Merci de votre aide.
Modifié par LuckyFr (12 Oct 2017 - 14:36)
Modérateur

$ tail -n 10 /var/log/syslog


ou


$ tail -n 10 /var/log/mail.log


ou


$ tail -n 10 /var/log/apache2/error.log


Smiley cligne
Modifié par niuxe (13 Oct 2017 - 13:00)
Modérateur
Ou plus globalement,

y'a-t-il un serveur de mail installé sur le raspberry pi?
=>

mail -s "Test" truc@example.com < /dev/null


quelle est la valeur de sendmail_path dans le php.ini ?
Bonsoir,

C'est effectivement ce à quoi je m'attendais, je me rencontre ne pas avoir activé le service [mail function] dans le fichier php.ini. J'ai donc ;

For Win32 only.
;  http://php.net/sendmail-from
 
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;  http://php.net/sendmail-path
 
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog


De plus, après avoir regardé le fichier d'erreur de mon site, il y est écris :

sendmail: Cannot open smtp.gmail.com:587


Le problème que je rencontre actuellement est que je ne sais pas comment modifier le fichier afin de résoudre mon problème.

J'espère que ce message vous permettra de mieux apporter une réponse et d'aider ceux qui ont le même problème.

Merci
Modifié par LuckyFr (13 Oct 2017 - 21:52)
Modérateur
Là sur ma machine, j'ai pas installé un serveur mail. Donc je vais faire de tête :

Est ce que tu as un résultat probant en faisant (tu noteras le # Smiley cligne ) :

#systemctl | grep postfix


Tu peux aussi avoir quelque chose en faisant :

#systemctl status postfix


a écrit :
...je me rencontre ne pas avoir activé...


Oui moi aussi de temps en temps je me fais moi même des rencontres. Je m'invite même pour des restaurants... Smiley lol
Modifié par niuxe (14 Oct 2017 - 03:01)
Cela ne fait rien une fois rentré dans le terminal.

Effectivement tu m'a fait bien rire en ayant vu m'a gigantesque faute d'orthographe mais cela montre que tu portes attention à mon problème.

Merci
Modérateur
Apparemment, tu n'as pas de serveur de mail installé. En soit, ce n'est pas très difficile à mettre en place. Mais il y a pas mal de manips à faire (configuration du bordel/création user/création BDD spécifique à cet usage/droits d'accès/etc./etc.).

Je t'invite à regarder ce tuto : Envoyer des mails avec PHPMailer (je l'ai lu en Z et il me semble qu'il soit pas mal du tout pour un "get started"). Ce sera nettement plus simple pour toi. Il y a aussi une autre libs que je ne connais pas vraiment mais qui je sais, est très bien aussi : phpswiftmailer. Regarde dans packagist, je pense que tu vas trouver ton bonheur.

Si tu n'as pas de gros débits (ce que je ne pense pas), tu vas pouvoir faire ton/tes envois. Il y a quelques années, je m'étais fait un système de e-mailing. Pour ce faire :
- régler le maximum execution time (ou un truc dans ce genre là) dynamiquement (ini_set())
- envoyer les mails par paquets afin de ne pas saturer ton serveur et le smtp.

niuxe a écrit :


#systemctl status postfix



Pour la dernière commande que je t'ai dite de faire, tu aurais dû avoir une réponse affirmative ou négative.
Modifié par niuxe (14 Oct 2017 - 12:35)
--' Je viens de passer 2 jours à comprendre que la police de code utilisé par ce forum différencie mal le :

1 du l


la commande :
systemctl status postfix
affiche :

? postfix.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)


par contre la commade :
systemctl | grep postfix
n'affiche rien.

Cependant, cette ligne de commande qui permet d'envoyer un mail à une autre adresse mail fonctionne :
echo "Texte" | mail -s "Titre" example@domaine.com 

Ce qui je pense signifie que mon smtp est bien configurer.

En exécutant la commande :
 tail -n 10 /var/log/mail.log
qui permet de voir le fichier d'erreur du serveur mail, j'obtiens :

Oct 16 11:15:45 NomSite citserver[617]: SMTPCQ: queue run completed; 7 messages processed 0 activated
Oct 16 11:15:45 NomSite citserver[617]: network: no neighbor nodes are configured - not polling.
Oct 16 11:15:45 NomSite citserver[617]: No external notifiers configured on system/user
Oct 16 11:15:45 NomSite citserver[617]: -- db checkpoint --
Oct 16 11:16:07 NomSite citserver[617]: SMTPC:IO[10]CC[14]S[46][9] connecting to alt1.gmail-smtp-in.l.google.com [Mon IP]:25 ...
Oct 16 11:16:07 NomSite citserver[617]: IO[10]CC[14] connect() = 39 failed: Network is unreachable
Oct 16 11:16:07 NomSite citserver[617]: SMTPC:IO[9]CC[13]S[34][8] connecting to alt1.gmail-smtp-in.l.google.com [Mon IP]:25 ...
Oct 16 11:16:07 NomSite citserver[617]: IO[9]CC[13] connect() = 41 failed: Network is unreachable
Oct 16 11:16:07 NomSite citserver[617]: SMTPC:IO[9]CC[13]S[34][8] connecting to alt2.gmail-smtp-in.l.google.com [Mon IP]:25 ...
Oct 16 11:16:07 NomSite citserver[617]: SMTPC:IO[10]CC[14]S[46][9] connecting to alt2.gmail-smtp-in.l.google.com [Mon IP]:25 ...



Qu'en pensez-vous?
Modifié par LuckyFr (16 Oct 2017 - 13:21)
Modérateur
Salut,

essai de faire ceci :

sudo systemctl start postfix


et dis moi ce que donne ceci :

sudo systemctl status postfix


Ensuite, essaie de faire la commande que kustolovic t'a invité de faire et aussi de lancer ton mail via ton site php.

Aussi, je pense que tu devrais essayer avec un autre smtp (celui de ton FAI) pour voir si ça change quelque chose.
Bonjour,

La commande
systemctl status postfix
donne :

postfix.service - LSB: Postfix Mail Transport Agent
   Loaded: loaded (/etc/init.d/postfix)
  Drop-In: /run/systemd/generator/postfix.service.d
           ??50-postfix-$mail-transport-agent.conf
   Active: active (exited) since mar. 2017-10-17 06:21:00 UTC; 7h ago


La commande que m'a donnée kustolovic donne :

postdrop: warning: unable to look up public/pickup: No such file or directory


J'ai réessayé d'envoyer un mail depuis mon site, cela marque "mail envoyé" or je ne reçois rien dans ma boîte mail.

Et normalement postfix c'est pour tester localement l'envoie de mail non?

Bonne journée