PHPMailer alternative textuelle à mail HTML

Résolu
corentin.bc Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -  
corentin.bc Messages postés 385 Date d'inscription   Statut Membre Dernière intervention   -
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="[email protected]";
$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="[email protected]";
$str2=($_POST['email']);
$sujet="Participation au concours de ProgAccess33";
break;
case "1":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Proposition d'un logiciel pour ProgAccess33";
break;
case "2":
$strDestin="[email protected]";
$str2="[email protected]";
$str3=($_POST['email']);
$sujet="Bug détecté sur ProgAccess33";
break;
case "3":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Suggestion de tutoriel pour ProgAccess33";
break;
case "4":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Demande d'une modification pour la prochaine version de ProgAccess33";
break;
case "5":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Bug avec l'AccessiKey";
break;
case "6":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Bug avec MaintenanceKey";
break;
case "7":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Demander concernant la politique de confidentialité de ProgAccess33";
break;
case "8":
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="Problème graphique sur ProgAccess33";
break;
case "9":
$strDestin="[email protected]";
$str2="[email protected]";
$str3="[email protected]";
$str4="[email protected]";
$str5=($_POST['email']);
$sujet="Mail envoyé à toute l'équipe ProgAccess33";
break;
default:
$strDestin="[email protected]";
$str2=($_POST['email']);
$sujet="ProgAccess33, contact";
}
}
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'mail.zajda.fr';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$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 2845 Statut Membre 528
 
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 385 Date d'inscription   Statut Membre Dernière intervention   8
 
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 385 Date d'inscription   Statut Membre Dernière intervention   8
 
bon, en cherchant sur le net j'ai trouvé la solution c'est htmlentities :)
0