Healiste
Messages postés11Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 9 mai 2013
-
14 juin 2012 à 11:18
Healiste
Messages postés11Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 9 mai 2013
-
14 juin 2012 à 15:21
Bonjour, voilà, j'ai un soucis. Je dois effectuer une newsletter pour les médiathèques de communes.
<!DOCTYPE HTML>
<html>
<head>
<title>Envoie d'une newsletter</title>
<meta http-equiv= "Content-Type" content="text/html;charset=iso-8859-1" />
</head>
<section>
<form method="post" id="form1" action="envoi.php" enctype="multipart/form-data">
<label for="media1">livres/audios/DVD</label>
<label for="ce1">conf/expo</label>
<textarea id="premierCorps" name="corps1" onfocus="if (value=='Corps du texte') {value=''}" onblur="if (value == '') {value = 'Corps du texte'}" rows="30" cols="120">Corps du texte</textarea>
<!-- Second bulletin si y en a -->
<label for="null2">Aucun</label>
<label for="media2">livres/audios/DVD</label>
<label for="ce2">conf/expo</label>
<textarea id="deuxiemeCorps" name="corps2" onfocus="if (value=='Corps du texte') {value=''}" onblur="if (value == '') {value = 'Corps du texte'}" rows="30" cols="120">Corps du texte</textarea>
<!-- Troisième bulletin si y en a -->
<label for="null3">Aucun</label>
<label for="media3">livres/audios/DVD</label>
<label for="ce3">conf/expo</label>
<textarea id="troisiemeCorps" name="corps3" onfocus="if (value=='Corps du texte') {value=''}" onblur="if (value == '') {value = 'Corps du texte'}" rows="30" cols="120">Corps du texte</textarea>
previsualisation
</form>
</section>
</html>
Et voici le code PHP:
<?php
/* Connexion à la base de donnée ! */
$cnx = odbc_connect("basededonnee", "", "");
/* Test de la connexion
if ($cnx)
echo 'Connexion valide !
'; */
/* Création de la requête pour avoir le jeu des mails */
$requete "SELECT mail FROM adherent WHERE newsletter true";
$jeu = odbc_exec($cnx,$requete);
/* Initialisation des variables */
$choix1 = $_POST["choix1"];
$choix2 = $_POST["choix2"];
$choix3 = $_POST["choix3"];
$sizeFirst = '2097152'; // Correspond à 2 Mo !
$sizeAnother = '900000'; // Correspond à 900Kb!
if ($_FILES['image1'] && $_FILES['image1']['size'] < $sizeFirst) {
$image1 = ''; // Chemin à changer !
$corps1 = $image1.$_POST['corps1'];
} else
$corps1 = $_POST["corps1"];
if ($_FILES['image2'] && $_FILES['image2']['size'] < $sizeAnother) {
$image2 = ''; // Chemin à changer !
$corps2 = $image2.$_POST['corps2'];
} else
$corps2 = $_POST["corps2"];
if ($_FILES['image3'] && $_FILES['image3']['size'] < $sizeAnother) {
$image3 = ''; // Chemin à changer !
$corps3 = $image3.$_POST['corps3'];
} else
$corps1 = $_POST["corps1"];
$boundary = "-----=".md5(rand());
$compteur = '0';
/* Prends l'email dans la table */
while (odbc_fetch_into($jeu,$champ)) {
$email = $champ[0];
/* Filtrage au niveau des adresses mail */
if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $email))
$passage_ligne = "\r\n";
else
$passage_ligne = "\n";
/* Contenu du mail */
if ($choix1 == "media"){
/* Bannière à faire */
$banniere = '
'; // Nom à revoir !
} else {
$banniere = '
'; // Nom à revoir !
}
/* Entête du mail */
$titre = '[Lettre d\'information] Réseau Médiathèques Pays de La Gacilly';
/* Police du message */
$contenu = '<!DOCTYPE html>
<head><meta /></head>';
/* Message d'entrée */
$bonjour = 'Réseau des Médiathèques du Pays de La Gacilly
';
/* Formule de politesse à améliorer */
$form_polit = '
Pour ce désinscrire, [deleteregister.php?mail='.$email.' cliquez ici]
Au revoir
';
/* On fait passer notre texte à la moulinette des Regex */
$corps1 = preg_replace('#\[b\](.+)\/b\#isU', ' $1 ', $corps1);
$corps1 = preg_replace('#\[i\](.+)\/i\#isU', '$1', $corps1);
$corps1 = preg_replace('#\[color=(red|green|blue|yellow|purple|olive|aqua|maroon)\](.+)\/color\#isU', '$2', $corps1);
$corps1 = preg_replace('#http://[a-z0-9._/-]+#i', '[$0 $0]', $corps1);
$contenu .= $bonjour;
$contenu .= $banniere;
$contenu .= '
'.$corps1.'
';
/* S'il y a un second texte */
if($corps2 != '' || $corps2 != 'Corps du texte') {
$contenu .= '
';
if ($choix2 == "media") {
/* Bannière à faire */
$banniere = '
';
} elseif ($choix2 == "confexpo") {
$banniere = '
';
} else {
$banniere = '';
}
if ($banniere != '')
$contenu.=$banniere;
/* On fait passer notre second texte à la moulinette des Regex */
$corps2 = preg_replace('#\[b\](.+)\/b\#isU', ' $1 ', $corps2);
$corps2 = preg_replace('#\[i\](.+)\/i\#isU', '$1', $corps2);
$corps2 = preg_replace('#\[color=(red|green|blue|yellow|purple|olive|aqua|maroon)\](.+)\/color\#isU', '$2', $corps2);
$corps2 = preg_replace('#http://[a-z0-9._/-]+#i', '[$0 $0]', $corps2);
if ($corps2 != 'Corps du texte')
$contenu .= '
'.$corps2.'
';
if ($corps3 != '' || $corps3 != 'Corps du texte') {
$contenu .= '
';
if ($choix3 == "media") {
$banniere = '
';
} elseif($choix3 == "confexpo") {
$banniere = '
';
} else {
$banniere = '';
}
if ($banniere != '')
$contenu .= $banniere;
/* On fait passer le troisième et dernier texte au Regex */
$corps3 = preg_replace('#\[b\](.+)\/b\#isU', ' $1 ', $corps3);
$corps3 = preg_replace('#\[i\](.+)\/i\#isU', '$1', $corps3);
$corps3 = preg_replace('#\[color=(red|green|blue|yellow|purple|olive|aqua|maroon)\](.+)\/color\#isU', '$2', $corps3);
$corps3 = preg_replace('#http://[a-z0-9._/-]+#i', '[$0 $0]', $corps3);
if ($corps3 != 'Corps du texte')
$contenu .= '
'.$corps3.'
';
}
}
$contenu .= $form_polit;
$contenu .= '</html>';
$TOUT = $titre.'
'.$contenu.'
';
/* Envoie du mail */
if(mail($email,$titre,$contenu)) {
echo 'Message envoyé !
';
$compteur++;
}
}
echo 'Nombre de mail envoyé: '.$compteur.'
';
echo $TOUT;
odbc_close($cnx);
?>
Lorsque j'exécute le formulaire, il me mette un message d'erreur:
Warning: mail() [function.mail]: SMTP server response: 530 5.7.0 Must issue a STARTTLS command first. ez4sm17585059wid.3 in C:\wamp\www\Mediatheques\envoi.php on line 151
J'aimerais savoir si quelqu'un peut m'aider. Dois-je configurer quelque chose ?
Healiste
Messages postés11Date d'inscriptionjeudi 31 mars 2011StatutMembreDernière intervention 9 mai 2013 14 juin 2012 à 14:38
Bonjour L0ci,
Je te remercie pour ce lien, c'est vrai que sans, je ne serais sûrement pas aller plus loin. Malheureusement, même après avoir effectuer le changement de port, je me retrouve toujours dans la même impasse, le même message d'erreur.
J'aimerais en même temps en profiter pour préciser que je n'ai rien fait de plus. Je suis un peu perdu par rapport à cette fonction qu'est la fonction "mail()" de PHP.
Par exemple, je me pose la question: Comment ne pas faire croire qu'on est un autre compte, étant donné qu'à aucun moment, je n'ai entré le mot de passe de mon adresse de messagerie où que ce soit sur la page PHP.
J'ai vraiment besoin d'aide, j'espère avoir des réponses ! Sur ce, je remercie ce qui m'aideront en avance !
Lyle56
Messages postés240Date d'inscriptionjeudi 1 mai 2008StatutMembreDernière intervention19 juillet 20122 14 juin 2012 à 14:52
Bonjour,
Comme le dit L0ci, il faut utiliser un port spécifique.
Mais aussi démarré une transaction sécurisé (TLS). D’ailleurs c'est exactement ce que tu dit l'erreur.
Utilise plutôt phpMailer et une initialisation qui ressemble à celle ci