IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi email au format Html avec smtpMailer


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Points : 43
    Points
    43
    Par défaut Envoi email au format Html avec smtpMailer
    Bonjour,
    J’essaie d'adapter ce tuto :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://stephaneey.developpez.com/tutoriel/php/phpmailer/
    Mais le destinataire reçoit tout le code compris dans le body (message):
    Nom : mail-received.PNG
Affichages : 314
Taille : 31,4 Ko
    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
    	$to     = $email;
    	$sujet  = "Activation de votre inscription à la newsletter";
    	$entete = "MIME-Version: 1.0\r\n";
    	$entete .= "Content-type: text/html; charset=UTF-8\r\n";
    	$entete .= "From: root@localhost" . "\r\n".
    			"Replay-To: root@localhost" . "\r\n".
    			"X-Mailer: PHP/".phpversion();
     
    	$body  ='<html><body><head><style>';
    	$body .='.ligne{color:#003376;font-size:16px}';
    	$body .='.foo{font-weight:bold;color:#033f9a;}';
    	$body .='</style></head><center><table>';
    	$body .='<tr><td class="ligne">
    			Madame, Monsieur,<br/>	
    			Vous venez de créer un compte sur le site xxxxxx.fr.<br/>	
    			Pour activer ce compte, merci de cliquer sur le lien ci-dessous :<br/>
    			<a href="$path/validate.php?email=$email&string=$string">
    				Je valide mon inscription
    			</a>	</td></tr>'; 
    	$body .='<tr><td class="ligne">
    			Vous disposez de 48h pour activer votre compte.<br/>
    			Si vous n\'êtes pas à l\'origine de cette demande, veuillez ne pas tenir compte de 
    			ce message, le compte sera automatiquement supprimé.<br/><br/>
    			Bonne lecture,<br/></td></tr>'; 
    	$body .='<tr><td class="foo">Votre équipe xxxxxx.fr</td></tr>';
    	$body .='</table></center></body></html>'; 
     
    	function smtpmailer($to,$sujet,$body,$entete){
    		global $error;
    		$mail = new PHPMailer();    		
    		$mail->IsSMTP();           			
    		$mail->SMTPDebug = 1;				
    		$mail->SMTPAuth = true;    			
    		$mail->SMTPSecure = 'ssl'; 			
    		$mail->Host = 'smtp.gmail.com';	
    		$mail->Port = 465;		
    		$mail->Username = 'monemailgmail@gmail.com';
    		$mail->Password ='monpasswordgmail';
    		$mail->Subject = $sujet;
    		$mail->Body = $body;
    		$mail->AddAddress($to);
    		if(!$mail->Send()){
    			$error = 'Mail error'.$mail->ErrorInfo;
    			return false;
    		}else{
    			$error='Mail envoyé avec succès';
    			return true;
    		}
    		$mail->SmtpClose(); 
    		unset($mail); 
    	}			
    	smtpmailer($to,$sujet,$body,$entete);
    	echo "Pour valider votre inscription à la newsletter, un lien d'activation vous a été envoyé à votre adresse mail.";
    Par contre si je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $body   = "Bonjour, veuillez activer votre compte en cliquant ici -> $path/validate.php?email=$email&string=$string";
    ,le destinataire reçoit bien le texte du body (message):
    Nom : received-text.PNG
Affichages : 206
Taille : 18,6 Ko
    Où est l'erreur? Merci.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 232
    Points : 15 525
    Points
    15 525
    Par défaut
    tu dois indiquer que l'e-mail est en HTML avec cette ligne par exemple

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Points : 43
    Points
    43
    Par défaut
    Salut @mathieu:
    Ça marche .Merci beaucoup

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur web amateur
    Inscrit en
    Août 2012
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur web amateur
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2012
    Messages : 84
    Points : 43
    Points
    43
    Par défaut
    Un problème d'encodage persiste et je ne sais comment y remèdier.
    Ma page d'envoi de mails est codée en utf-8 sans BOM et mon header est tel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $entete .= 'Content-type: text/html; charset=UTF-8'."\r\n";
    Une idée?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoie d'un Email au format HTML
    Par tonymx15 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 15/06/2010, 09h27
  2. Réponses: 1
    Dernier message: 09/05/2007, 21h36
  3. envoi de mail format HTML
    Par heteroclite dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/10/2006, 11h54
  4. [VBS & CDO] Envois de mail format HTML
    Par nonotoubo dans le forum VBScript
    Réponses: 2
    Dernier message: 23/08/2006, 16h34
  5. [HTML]Email au format html
    Par willowII dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/03/2005, 21h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo