PHPMailer alternative textuelle à mail HTML

Résolu/Fermé
corentin.bc
Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
- Modifié le 3 août 2017 à 07:24
corentin.bc
Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
- 3 août 2017 à 18:46
Bonjour,
pour le formulaire de contact de mon site j'utilise PHPMailer.
Ce formulaire je suis en train de le revoir pour que mes mails n'est plus aucune chance d'arriver en spam aux destinataires.
Pour cela, il me reste une étape à faire, ajouter une alternative en text plain à mon mail HTML.
COmment faire svp ?
Merci.

PS: voici le code de la page qui envoi :


<?php
$stats_page='contacter_verif';
set_include_path($_SERVER['DOCUMENT_ROOT']);
require('PHPMailer-master/PHPMailerAutoload.php');
require_once "inclus/consts.php";
session_start();
$_SESSION['identite'] = $_POST['identite'];
$_SESSION['mail'] = $_POST['email'];
$_SESSION['tel'] = $_POST['tel'];
$_SESSION['sujet'] = $_POST['sujet'];
$_SESSION['msg'] = $_POST['msg'];
$frommail="no_reply@progaccess33.net";
$fromtexte="formulaire ProgAccess33";
if(isset($_POST['identite']) and isset($_POST['email']) and isset($_POST['tel']) and isset($_POST['sujet']) and isset($_POST['msg']) and isset($_POST['attchar_code']) and isset($_POST['attchar_auto'])) {
include($_SERVER['DOCUMENT_ROOT'].'/attchar/attchar_get.php');
if($attchar_ok) {

$msg = "<!doctype html>
<html lang=\"fr\">
<head>
<meta charset=\"utf-8\" />
<title>".($_POST['sujet'])."</title>
</head>
<body>
<h1>Ce message a été envoyé depuis le formulaire de contact de ".($nomdusite)." par ".($_POST['identite']).", ".($_POST['email']).", ".($_POST['tel'])."</h1>
<p>".($_POST['msg'])."</p>
</body>
</html>";

if (isset($_POST['sujet']) && !empty($_POST['sujet'])) {
switch ($_POST['sujet']) {
case "10":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Participation au concours de ProgAccess33";
break;
case "1":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Proposition d'un logiciel pour ProgAccess33";
break;
case "2":
$strDestin="miklhcos@progaccess33.net";
$str2="dev.patrick@progaccess33.net";
$str3=($_POST['email']);
$sujet="Bug détecté sur ProgAccess33";
break;
case "3":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Suggestion de tutoriel pour ProgAccess33";
break;
case "4":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Demande d'une modification pour la prochaine version de ProgAccess33";
break;
case "5":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Bug avec l'AccessiKey";
break;
case "6":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Bug avec MaintenanceKey";
break;
case "7":
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="Demander concernant la politique de confidentialité de ProgAccess33";
break;
case "8":
$strDestin="admin@progaccess33.net";
$str2=($_POST['email']);
$sujet="Problème graphique sur ProgAccess33";
break;
case "9":
$strDestin="miklhcos@progaccess33.net";
$str2="admin@progaccess33.net";
$str3="dev.patrick@progaccess33.net";
$str4="coadmin@progaccess33.net";
$str5=($_POST['email']);
$sujet="Mail envoyé à toute l'équipe ProgAccess33";
break;
default:
$strDestin="miklhcos@progaccess33.net";
$str2=($_POST['email']);
$sujet="ProgAccess33, contact";
}
}
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'mail.zajda.fr';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'no_reply@progaccess33.net';
$mail->Password = 'xxjfdq5sqreza2684456';
$mail->setFrom($frommail, $fromtexte);
$mail->addReplyTo($_POST['email'], $_POST['identite']);
$mail->AddAddress($strDestin);
$mail->AddCC($str2);
$mail->AddCC($str3);
$mail->AddCC($str4);
$mail->AddCC($str5);
$mail->Subject = $sujet;
$mail->CharSet = 'UTF-8';
$mail->IsHTML(TRUE);
$mail->Body = $msg;
if($mail->send())
header('location: /');
session_destroy();
} else
$log = 'Code attchar invalide, vilain robot maléfique !!!';
} else
$log = 'Une erreur a empêchée l\'envoi du message';
$titre=("Résultats du formulaire de contact de "."$nomdusite");
$cheminaudio="/audio/sons_des_pages/harp_notif.mp3"; ?>
<!doctype html>
<html lang="fr">
<?php require_once "inclus/header.php"; ?>
<body>
<div id="hautpage" role="banner">
<?php
date_default_timezone_set('Europe/Paris');
setlocale(LC_TIME,'fr_FR.UTF8');
print('<h1>'.$nomdusite.'</h1>'); ?>
<div id="searchtool" role="search">
<form action="/search/" method="get">
<label for="searchtool_text">Rechercher</label>
<input id="searchtool_text" type="search" name="q" /><br />
<select id="searchtool_cat" title="catégorie" name="c"><option value="" selected>Tout</option><?php include('cache/menu_search.html'); ?></select>
<input id="searchtool_go" type="submit" value="Rechercher" />
</form>
</div>
</div>
<?php include('inclus/son.php');
include "inclus/menu.php"; ?>
<div id="container" role="main">
<h1 id="contenu"><?php print $titre; ?></h1>
<?php print $log; ?><br />
<a href="/contacter.php" rel="nofollow noopener noreferrer" target="_blank">Retour au formulaire</a>
</div>
<?php require_once "inclus/footer.php"; ?>
</body>
</html>


Amicalement! Corentin.

3 réponses

Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
543
3 août 2017 à 15:33
Salut,

Il semble que tu doives utiliser la variable AltBody de PhpMailer pour définir le contenu alternatif du mail au format texte.

https://phpmailer.github.io/PHPMailer/classes/PHPMailer.html#property_AltBody

Bonne journée,
0
corentin.bc
Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
8
3 août 2017 à 17:36
Ok, nikel, ça fonctionne
maintenant, mon autre question :
aurait-il un moyen d'empêcher l'exécution de code si il est donné par le visiteur, je m'explique :
si dans le corps du mail je rentre :
<a href="https://www.progaccess33.net/" rel="nofollow noopener noreferrer" target="_blank">il est ici</a>

ça me créé un lien vers mon site, est-ce possible d'empêcher ça, tout en gardant par contre le code que moi je défini dans le fichier php du code ?
0
corentin.bc
Messages postés
388
Date d'inscription
dimanche 8 février 2015
Statut
Membre
Dernière intervention
10 avril 2021
8
3 août 2017 à 18:46
bon, en cherchant sur le net j'ai trouvé la solution c'est htmlentities :)
0