Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/08/2011, 11h32   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut Envoyer un mail

Bonjour,

je souhaite envoyer un mail (avec la fonction PHP), mais sur le serveur sur lequel je le fais, ça ne marche pas toujours ; cette fonction est-elle disponible chez un hébergeur gratuit (pas chez Free en tout cas), car je pourrais l'intégrer via une iframe ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 12h13   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par laurentSc Voir le message
...je souhaite envoyer un mail (avec la fonction PHP), mais sur le serveur sur lequel je le fais, ça ne marche pas toujours
Bonjour,
je suppose que tu parles de la fonction mail() (PHP 4, PHP 5).

- quel est ton code ?
- quel est le problème ?
- message d'erreur ? mail non envoyé ? ...
- quel hébergeur ? (normalement, sur le site de l'hébergeur, tu dois pouvoir trouver la liste des fonctions disponibles)

Citation:
Envoyé par laurentSc Voir le message
...je pourrais l'intégrer via une iframe ?
Oui, si ca te fait plaisir.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 13h56   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
quel est ton code ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$adresse='adresse_perso@aol.com';
$nom='lolo';
$email='adresse_perso@aol.com';
$sujet='test';
$alex='adresse_perso@aol.com';
$from="From: $nom<$email>\r\n";
$from.="Reply-To: $nom <$email>\n";
$texte=utf8_decode($nom.' ('.$adresse.') a &eacute;crit '.$nom);
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br></center>" );
else
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$alex\">classiquement</a>" );
?>
Citation:
- quel est le problème ?
- message d'erreur ? mail non envoyé ? ...
mail non arrivé (donc sûrement pas envoyé, même si on a le message "Formulaire envoyé !")
Citation:
- quel hébergeur ?
Le problème, c'est que je n'en sais rien, vu que je fais ça pour rendre service et que la personne intéressée m'a juste communiqué les paramètres FTP, mais je lui ai posée la question pour l'hébergeur et espère avoir la réponse dans l'après-midi.
Citation:
Citation:
...je pourrais l'intégrer via une iframe ?
Oui, si ca te fait plaisir.
Honnêtement, j'avais pensé à cette solution :
Code :
1
2
   <iframe frameborder=0 src="http://---/mail/mail.php?dest=<?=$destinataire?>&sujet=<?=$Subject?>&message=<?=$mail_texte?>&url=<?=$mail_URL?>&em=<?=$mailemetteur?>&jeton=<?=$jeton?>&nom=<?echo $nom ?>&prenom=<?echo $prenom?>&pseudo=<?echo $pseudo?>&mdp=<?echo $mdp?>&par1=<?echo $par1?>
 &par2=<?echo $par2?>&par3=<?echo $par3?>&par4=<?echo $par4?>&par5=<?echo $par5?>"</iframe>
(les paramètres sont liés à mon besoin), pour transmettre des données, même s'il existe d'autres moyens.
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 14h15   #4
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
1/ remplace <? par <?php !

2/ a vouloir changer les noms des variables (par rapport à la doc), on en arrive à tout mélanger :
regarde ta variable $from ...

Garde les même noms que dans la doc :
Code :
mail ( $to , $subject , $message [, $additional_headers [, string $additional_parameters ]] )
ou
Code :
mail( $mail_to , $mail_subject , $mail_message , $mail_headers)
Ca t'évitera de mettre les infos où il ne faut pas.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 14h21   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
From: $nom<$email>
Il y a de fortes chances que ca parte dans les spam -> à vérifier
Code :
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
<?php
$mail_nom 		= 'lolo';
$mail_to 		= 'adresse_perso@aol.com';
$mail_from 		= "From: ".$mail_nom."<".$mail_to.">\r\n";
$mail_reply 	= "Reply-To: ".$mail_nom." <".$mail_to.">\r\n";
 
$mail_subject 	= 'test';
 
$mail_message 	= utf8_decode($mail_nom.' ('.$mail_to.') a &eacute;crit '.$mail_nom);
 
$mail_headers 	= $mail_from;
$mail_headers 	.= $mail_reply;
$mail_headers 	.= "MIME-Version: 1.0\r\n";
$mail_headers 	.= "Content-type: text/html; charset=UTF-8\r\n";
 
if (mail( $mail_to , $mail_subject , $mail_message , $mail_headers)) 
{
	echo '
	<div style="width:400px; margin:60px auto 0 auto; text-align:center;">
	<h2 style="color:green; margin:60px auto 0 auto;">Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2>
	</div>
	';
} else {
	echo '
	<div style="width:400px; margin:60px auto 0 auto; text-align:center;">
	<h2 style="color:red;">Probl&egrave;me &agrave; l\'envoi du mail... D&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2>
	<br /><a href="mailto:'.$mail_to.'">Contactez-nous</a> plus classiquement.
	</div>
	';
}
?>
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 15h13   #6
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci pour ta réponse, mais, malgré une menue modif (il faut écrire ".=" car il n'aime pas ". ="), ça continue à marcher sur un compte de 1&1 et pas là où j'essaye de le faire marcher (et les spams étaient déjà vides).
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/08/2011, 16h40   #7
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Citation:
Envoyé par laurentSc Voir le message
...et pas là où j'essaye de le faire marcher (et les spams étaient déjà vides).
Rensigne-toi sur l'hébergeur.
- Il est possible que le contrat d'hébergement ne permette pas l'envoi de mail avec mail(),
- ou n'ait pas la fonction mail() par défaut,
- ou bloque simplement tout mail dont le $mail_to n'est pas un email inscrit pour le nom de domaine (ok pour contact@mondomaine.com, pas pour les autres...)...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 22h27   #8
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
L'hébergeur, c'est o2 switch.
Pour avancer, j'ai utilisé phpmailer :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form method="post" action="testmail2.php">
  <table>
    <tbody>
      <tr>
        <td><font face="Arial">Votre Email</font></td>
        <td><input name="monemail" value="" maxlength="50" type="text"></td>
      </tr>
      <tr>
        <td></td>
        <td><input value="Envoyer" type="submit"><input value="Effacer" type="reset"></td>
      </tr>
    </tbody>
  </table>
</form>
et testmail2.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
	require "phpmailer/class.phpmailer.php";
	$mail = new PHPmailer();
	$adr=$_POST['monemail'];
 
	$mail->From=$adr;
	$mail->AddAddress($adr);
	$mail->AddReplyTo($adr);	
	$mail->Subject='Exemple trouvé sur DVP';
	$mail->Body='Voici un exemple d\'e-mail au format Texte';
	if(!$mail->Send()){ //Teste le return code de la fonction
	  echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
	}
	else{	  
	  echo 'Mail envoyé avec succès';
	}
 
	unset($mail);
?>
et là, le mail arrive sur une adresse en aol.com (ce qui n'était pas le cas avec juste un apel à la fonction php mail), mais le nom de l'émetteur est : "Root User", (et pareil si je mets le code chez 1&1) alors que si j'utilise mon mail pro (serveur dédié), pas de problème : peut-on résoudre ça ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2011, 23h50   #9
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Dans le post ci-dessus, le format du mail était texte ; j'ai essayé d'envoyer un mail au format html ; comme je n'y arrivais pas, j'ai recopié l'exemple ; extrait :
Code :
1
2
3
4
	$mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}';
	$mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>';
	$mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>';
	$mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>';
mais il ne marche pas :
Citation:
<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid
3px;font-size:25px}.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head><center><table><tr><td
class="entete">Voici un exemple d'e-mail au format HTML</td></tr><tr><td
class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>

Comment faire ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 00h00   #10
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 304
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 304
Points : 4 482
Points : 4 482
est ce que tu as préciser dans le header de ton mail que le format est html ?

Code :
$mail_headers 	.= "Content-type: text/html; charset=UTF-8\r\n";
comme indiqué dans un des exemples plus haut dessus ?
Vil'Coyote est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/08/2011, 00h27   #11
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
D'abord, ce n'est pas dans l'exemple :
Code :
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
<?
	require "répertoire_phpmailer/class.phpmailer.php";
	$mail = new PHPmailer();
	$mail->IsSMTP();
	$mail->IsHTML(true);
	$mail->Host='hote_smtp';
	$mail->From='votre@adresse';
	$mail->AddAddress('adresse@destinataire');
	$mail->AddReplyTo('votre@adresse');	
	$mail->Subject='Exemple trouvé sur DVP';
	$mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}';
	$mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>';
	$mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>';
	$mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>';
 
	if(!$mail->Send()){ //Teste si le return code est ok.
	  echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
	}
	else{	  
	  echo 'Mail envoyé avec succès';
	}
	$mail->SmtpClose();
	unset($mail);
 
?>
Mais j'ai quand même rajouté dans mon code une ligne
Code :
$mail->headers = "Content-type: text/html; charset=UTF-8\r\n";
et c'est pareil...
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 09h14   #12
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Comme je voudrais y arriver, que je n'ai pas réussi avec phpmailer, et que une simple utilisation de la fonction PHP mail ne marche pas avec une adresse du type "aol.com" chez cet hébergeur (o2 switch), quel autre moyen pourrais-je utiliser pour envoyer un mail ?
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 12h11   #13
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
-> "Bougez avec La Poste" ?
-> ou changer d'adresse email ?
-> ou changer d'hébergeur ?
-> sinon, ... le mieux est encore de contacter directement l'hébergeur pour lui poser la question.
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2011, 13h34   #14
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
le mieux est encore de contacter directement l'hébergeur pour lui poser la question
Je l'ai déjà fait et attends leur réponse, mais comme l'autre jour, j'étais tombé sur un gars qui disait ne pas connaître le PHP, j'essayais de me débrouiller sans eux...
__________________
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h43.


 
 
 
 
Partenaires

Hébergement Web