J'ai créé une page de contact qui permet d'envoyer un message à l'adresse monadresse@sfr.fr qui serait l'adresse qui reçoit les messages des utilisateurs du site. Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<div class="main">
	<div class="container">
		<h1>Contact</h1>
		<?php 
 
		if (!empty($_POST)) {
			extract($_POST);
			$valid=true;
			$boundary = "----=".md5(rand());
 
			$to = "monadresse@sfr.fr";
 
			if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $to)) {
				$lf = "\r\n";
			}
			else
			{
				$lf = "\n";
			}
 
 
 
			/*extraction des données du formulaires*/
 
			if(empty($nom)){
				$valid=false;
				$erreurnom="Merci de renseigner votre nom !";
			}else{
				$nom = $_POST['nom'];
			}
			if (!preg_match("/^[a-z0-9\-_.]+@[a-z0-9\-_.]+\.[a-z]{2,3}$/i", $email)) {
				$valid=false;
				$erreuremail= "Adresse non valide !";
			}
			if(empty($email)){
				$valid=false;
				$erreuremail="Merci de renseigner votre adresse de courrier électronique !";
			}else{
				$email = $_POST['email'];
			}
			if(empty($message)){
				$valid=false;
				$erreurmessage="N'oubliez pas votre message !";
			}else{
				$message = $lf."--".$boundary.$lf;
				$message .= "Content-type: text/html;".$lf."charset=\"ISO-8859-1\"".$lf;
				$message .= "Content-Transfer-Encoding: 8bit".$lf;
				$message .= $lf.$_POST['message'].$lf;
				$message .= $lf."--".$boundary.$lf;
				$message .= $lf."--".$boundary."--".$lf;
			}
			if($valid){
 
				$sujet=$nom." a envoyé un message sur rubin-immo.com";
				$sujet=utf8_decode($sujet);
				$header="From: \"L_ENTREPRISE\" <$email>".$lf;
				$header.="Reply-to: $email".$lf;
				$header.="MIME-Version: 1.0;".$lf;
				$header.="Content-type: multipart/alternative;".$lf."boundary=\"$boundary\"".$lf;
				$message=stripslashes($message);
 
				$message=utf8_decode($message);
				$nom=stripslashes($nom);
 
				if (mail($to,$sujet,$message,$header)) {
					$ctrl="Votre message nous est bien parvenu :".$lf;
					$ctrl.='Header : '.$header.'<br>Message : '.$message;
					unset($to);
					unset($sujet);
					unset($message);
					unset($header);
				} else {
					$ctrl="Une erreur est survenue et votre message n'a pas été envoyé";
				}
 
			}
 
		}
		?>
		<hr>
		<?php if (isset($ctrl)) {
			echo "<p>$ctrl</p>";
		} ?>
		<form method="post" action="" class="well">
			<div class="form-group">
				<label for="nom">Nom </label>
				<input type="text" name="nom" class="form-control" id="nom" value="<?php if (isset($nom)) {
					echo $nom;
				} ?>">
 
				<div class="text-danger"><?php if (isset($erreurnom)) {
					echo $erreurnom;} ?></div>
				</div>
 
				<div class="form-group">
					<label for="email">E-mail </label>
					<input type="email" name="email" class="form-control" id="email" value="<?php if (isset($email)) {
						echo $email;
					} ?>">
					<div class="text-danger"><?php if (isset($erreuremail)) {
						echo $erreuremail;} ?></div>
					</div>
 
 
					<div class="form-group">
						<label for="message">Votre message </label>
						<textarea name="message" class="form-control" id="message" rows="6"><?php if (isset($message)) {
							echo htmlentities($_POST['message']);
						} ?></textarea>
						<div class="text-danger"><?php if (isset($erreurmessage)) {
							echo $erreurmessage;} ?></div>
						</div>
 
 
						<p><button class="btn btn-primary" type="submit">
							<span class="fa fa-check-square-o"></span> Envoyer
						</button></p>
 
					</form>
				</div>
 
			</div>
		</div>
Et voici l'extrait de mon php.ini qui concerne les mails :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.sfr.fr
; http://php.net/smtp-port
smtp_port = 25
 
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = monadresse@sfr.fr
 
; 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(), even in safe mode.
;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 =
J'obtiens un message d'erreur standard, me demandant de vérifier mon smtp et mon port smtp : "Failed to connect to mailserver at "smtp.sfr.fr" port 25 verify your "smtp" and your "smtp_port" setting in php.ini or use ini_set()..."
J'ai beau retourner le problème dans tous les sens, je ne comprends pas ce qui cloche. Comment devrais-je configurer php.ini ? Y a-t-il quelque chose dans mon code php qui ne va pas ?

Merci d'avance de votre aide.