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 :

[Mail] envoi de mail php


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut [Mail] envoi de mail php
    Bonjour à tous

    je souhaite envoyer un mail en php qui genere une newsletter. Le truc c'est que c'est newsletter est dynamique.

    en gros j'utilise une structure PHP du genre

    $to = $mail;
    $sujet = 'Newsletter';

    $from = "From:ff@.fr\n";
    $from .= "MIME-version: 1.0\n";
    $from .= "Content-type: text/html; charset= iso-8859-1\n";


    $message='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 ...
    ';

    //--- on envoie l'email ---//
    mail($to,$sujet,$message,$from);
    mais le truc c'est que dans message je dois integrer un fichier php.

    Comment faire??

    Merci d'avance pour vos reponse

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Tu fais un include de ce fichier. Dans ce fichier, tu complètes la variable $message. Puis tu l'utilises dans ton mail.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    tu veux donc dire que dans la balise message je n'ai qu'a faire un include de mon fichier php et le tour est joué.

    C'est ca??

    Si oui alors je vais essayer de ce pas.

    Si non , pourraisq tu m'expliquer plus en details ce que tu voulais faire excatement

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    j'ai essayer de faire:

    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
    <?
    //--- les variables ---// 
    $to = '....'; 
    $sujet = 'Newsletter Scootmania'; 
     
    //--- la structure du mail ----// 
     
    $from = "From:...\n"; 
    $from .= "MIME-version: 1.0\n"; 
    $from .= "Content-type: text/html; charset= iso-8859-1\n"; 
     
    //--- un exemple de message avec corps en html ---// 
    $message=include ('newsletter.php'); 
     
    //--- on envoie l'email ---// 
    mail($to,$sujet,$message,$from); 
    	?>
    mais ca ne marche pas.

    Je recois bien un mail mais il n'y a juste dans le corps du message le chiffre 1

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par nicordi
    tu veux donc dire que dans la balise message je n'ai qu'a faire un include de mon fichier php et le tour est joué.
    Non.
    1) Dans ton fichier inclus, tu rédiges le message en complétant une variable $message.
    2) Tu inclus ton fichier.
    3) Tu récupères ta variable $message, et tu l'utilises dans ta fonction mail.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Citation Envoyé par nicordi
    Je recois bien un mail mais il n'y a juste dans le corps du message le chiffre 1
    En effet, include te renvoie true (=1) car l'inclusion a réussi.

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    Je suis desolé mais je n'ai pas compris ta resolution du message notamment avec la variable $message.

    Peut tu m'en dire un peu plus voir me donner un debut d'exemple car la je vois pas trop ce que tu veux que je fasse.

    Merci encore pour ton aide

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Pour cela, précise ton problème : donne le code (ou l'action) de ton fichier inclus.

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    ok

    le fichier pour le mail

    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
    <?
    //--- les variables ---// 
    $to = '....'; 
    $sujet = 'Newsletter Scootmania'; 
     
    //--- la structure du mail ----// 
     
    $from = "From:....\n"; 
    $from .= "MIME-version: 1.0\n"; 
    $from .= "Content-type: text/html; charset= iso-8859-1\n"; 
     
    //--- un exemple de message avec corps en html ---// 
    $message=include ('envoinewsletter.php'); 
     
    //--- on envoie l'email ---// 
    mail($to,$sujet,$message,$from); 
    	?>
    et le fichier source

    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
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    <html>
    	<head>
    		<title>ScootMania - Nancy</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
     
    		<script language="JavaScript">
    			function doBlink() 
    			{
      				var blink = document.all.tags("blink")
      				for (var i=0; i < blink.length; i++)
        			blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : "" 
    			}
    			function startBlink() 
    			{
      				if (document.all)
        			setInterval("doBlink()",800)
    			}
    			window.onload = startBlink;
    			//-->
    		</script>
     
    		<STYLE TYPE='text/css'>
    			BODY
    			{
    				scrollbar-face-color:#BB3333;
    				scrollbar-track-color:#999999;
    				scrollbar-arrow-color:#FFFFFF;
    				scrollbar-shadow-color:#993333;
    				scrollbar-highlight-color:#DD3333;
    			}
            	.Style3 {
    				color: #3300CC;
    				font-size: x-large;
    				font-family: "Brush Script MT";
    			}
    			.titrenews {
    				color: #999999;
    				font-family: "Copperplate Gothic Bold";
    				font-size:30px;
    			}
    			.titrepromo {
    				color: #999999;
    				font-family: "Copperplate Gothic Bold";
    				font-size:30px;
    			}
    			.remise {
    				color: #990033;
    				font-family: Verdana, Arial, Helvetica, sans-serif;
    				font-size:20px;
    			}
    			a img /* Toutes les images contenues dans un lien */
    			{
       				border: none; /* Pas de bordure */
    			}
    			.general
    			{
    				overflow:auto;
    				border-color:red;
    				border-style:solid;
    				border-width:3px;
    			}
            </STYLE>
    	</head>
     
    	<body bgcolor="#000000">
    		<table width="60%" align="center" class="general" background="images/Fond.jpg">
    		<tr>
    			<td align="right" valign="top" colspan="2"><? $afficletter=donneeNewsletter($numnews);
    			//Ci-dessous affichage de la date de creation de la newsletter
    			?>
    			<font color="#000099" size="2"><? echo $afficletter[3];?></font></td>
    		</tr>
    		<tr>
    			<!-- Affichage du logo scoot mania -->
    			<td colspan="2" align="center"><a href="http://www.scootmania.fr/accueil.php">
    				<img src="images/logo.gif"></a>
    			</td>	
    		</tr>
    		<tr><br>
    			<td colspan="2" align="center"> <br><br>
          			<?
    				/*********************  Affichage dynamique de la gestion de la newsletter *************************************/		
    				$afficnews=donneeNews($numnews);
    				?>
            		<font color="#990000" style=" font-size:60px; font:bold" face="Chiller">
    					<? echo $afficletter[1]?>
    				</font><br><br>
            		<table align="center" width="90%">
    				<? 
    				if ($afficnews[0][0] > 0)
    				{
    					// Affichage des news 
    					for ($i=1;$i<=$afficnews[0][0];$i++)
    					{
    						if ($i==1)
    						{
    							?><tr><td colspan="3" align="center"><span class="Style3">LES NEWS</span><br></td>
    							</tr><?
    						}
    						?>
    						<tr><td align="center" colspan="3" class="titrenews"><br><br><? echo $afficnews[$i][4]?> <br><br></td></tr>
    						<tr>
    							<? if ($afficnews[$i][1] != "")
    							{
    								?><td><img align="left" hspace="40" src="<? echo $afficnews[$i][1]?>" width="250"></td>
    								<td><? echo $afficnews[$i][2]?></td><?
    							}
    							else
    							{
    								?><td colspan="3" align="center"><? echo $afficnews[$i][2]?></td><?
    							}?>
    						</tr><?
    					}
    				}
    				?><tr><td colspan="3"> <br><br></td></tr> <?
    				//fonction qui recupere les données des promos de la newsletter
    				$afficpromo=donneePromo($numnews);
    				//Affichage des Promos si il y en a
    				if ($afficpromo[0][0] > 0)
    				{
    					for ($pr=1;$pr<=$afficpromo[0][0];$pr++)
    					{
    						if ($pr==1)
    						{
    							?><tr><td colspan="3" align="center"><hr color="#000000"><br>
    							<span class="Style3">LES PROMOS</span><br><br></td></tr><?
    						}
    						?>
    						<tr>
    						<tr><td align="center" colspan="3" class="titrepromo"><br><? echo $afficpromo[$pr][7]?><br> </td></tr><?
    						if ($afficpromo[$pr][1] != "")
    						{
    							?><td align="center">
    							<img align="left" hspace="40" src="<? echo $afficpromo[$pr][1]?>" width="250"></td><td>
    							<strike><font style="font-size:30px"><? echo $afficpromo[$pr][2]?> € </font></strike><br>
    							<blink>
    								<font color="#FF0000" style="text-decoration:blink; font-size:60px"><? echo $afficpromo[$pr][3]?> €
    								</font>	
    							</blink><br>
    							<font class="remise"><? echo $afficpromo[$pr][4]?><br></font><br>
    							<? echo $afficpromo[$pr][5]?><br><br>
    							</td><?
    						}
    						else
    						{
    							?><td colspan="3" align="center">
    							<strike><font style="font-size:30px"><? echo $afficpromo[$pr][2]?> € </font></strike><br>
    							<blink>
    								<font color="#FF0000" style="text-decoration:blink; font-size:60px"><? echo $afficpromo[$pr][3]?> € 
    								</font>							
    							</blink><br>
    							<font class="remise"><? echo $afficpromo[$pr][4]?><br></font><br>
    							<? echo $afficpromo[$pr][5]?><br><br>
    							</td><?
    						}?>
    						</tr>
    						<?
    					}
    				}?>
    				<tr><td colspan="3"><br><br></td></tr>
    				</table>
    			</td>
    		</tr>
    		</table>
    	</body> 
    </html>
    voila tu as mes sources

    Encore une fois merci de ton aide

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Te sers-tu de ce fichier source pour autre chose que pour envoyer ton mail ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    OUi mais si ca au pire je peux m'arranger, je peux en creer unautre.

    Pourquoi??

    Merci

  12. #12
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Une solution. Dans ton fichier source, plutôt que d'envoyer directement au navigateur le html, tu concatènes une variable avec tout le contenu de la page.
    A la fin du script, tu fais un test : si le script est le script principal, tu envoies le contenu de la variable au navigateur (echo). Sinon, tu ne fais rien. Et dans ton script de mail, tu récupères le contenu de ta variable que tu envoies dans ton mail.
    Exemple :
    Ton fichier inclus :
    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
    <?php
    $output='<html>
    	<head>
    		<title>ScootMania - Nancy</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';
    $output.='		
    		<script language="JavaScript">
    			function doBlink() 
    			{
      				var blink = document.all.tags("blink")
      				for (var i=0; i < blink.length; i++)
        			blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : "" 
    			}';
     
    // etc, etc..
     
    // En fin de script
    if (!defined("MAIL")) {
      echo $output;
    }
    Ton fichier de mail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    define("MAIL", true);
     
    // etc...
     
    //--- on envoie l'email ---// 
    mail($to,$sujet,$output,$from); 
    	?>
    Tu peux aussi utiliser ob_start(), ob_get_contents()... mais là je ne connais pas bien (vois le manuel).

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    Pourquoi tu fais plusieurs output??

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Pour montrer le principe de la concaténation. Si tu as une page en pur html, un seul $output suffit (pense à bien échapper tes '). Si tu as du php, il faut remplacer tous tes echo() par $output.=

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    OK d'accord

    Mais est ce ques c'est valable egalement pour des appels de fonctions.

    Car dans mon fichier php, j'ai des appel de fonctions,des boucles, des if, etc.. alors tu mets ca ou entre chaque output genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    output=' html blalblal'
    $truc= monappel de focntion
    for ...
     output.= 'suite html + mon echo
    C'est ca que tu ferais??

    En tout cas grand merci pour ton aide

  16. #16
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Par défaut
    Ca commence à devenir compliqué
    Je te conseille alors de te pencher sur ob_start() et ob_get_contents().
    Il existe aussi des bibliothèques d'envoi de mail, dont HTML Mime Mail.

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2005
    Messages : 63
    Par défaut
    OK c'est bon je suis en train d'y arriver etape par etape comme tu me l'as montre avec tes outputs ainsi qu'avec la comprehension que j'en avais eu.

    Merci pour tout

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/07/2010, 21h52
  2. [Mail] Envoi de mails en php
    Par Djillian dans le forum Langage
    Réponses: 28
    Dernier message: 05/06/2008, 10h36
  3. Réponses: 4
    Dernier message: 30/03/2007, 10h37
  4. [Mail] Envoi email avec php
    Par laymounos dans le forum Langage
    Réponses: 8
    Dernier message: 01/06/2006, 14h31
  5. Réponses: 4
    Dernier message: 07/05/2006, 01h36

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