PHPMailer alternative textuelle à mail HTML

Résolu/Fermé
corentin.bc Messages postés 383 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - Modifié le 3 août 2017 à 07:24
corentin.bc Messages postés 383 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 - 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.
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
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 383 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 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 383 Date d'inscription dimanche 8 février 2015 Statut Membre Dernière intervention 4 novembre 2022 8
3 août 2017 à 18:46
bon, en cherchant sur le net j'ai trouvé la solution c'est htmlentities :)
0