PHPMailer alternative textuelle à mail HTML [Résolu]

corentin.bc 362 Messages postés dimanche 8 février 2015Date d'inscription 3 décembre 2017 Dernière intervention - 3 août 2017 à 06:27 - Dernière réponse : corentin.bc 362 Messages postés dimanche 8 février 2015Date d'inscription 3 décembre 2017 Dernière intervention
- 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.
Afficher la suite 

3 réponses

Répondre au sujet
Pitet 2366 Messages postés lundi 11 février 2013Date d'inscription 13 décembre 2017 Dernière intervention - 3 août 2017 à 15:33
0
Utile
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,
Commenter la réponse de Pitet
corentin.bc 362 Messages postés dimanche 8 février 2015Date d'inscription 3 décembre 2017 Dernière intervention - 3 août 2017 à 17:36
0
Utile
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 ?
Commenter la réponse de corentin.bc
corentin.bc 362 Messages postés dimanche 8 février 2015Date d'inscription 3 décembre 2017 Dernière intervention - 3 août 2017 à 18:46
0
Utile
bon, en cherchant sur le net j'ai trouvé la solution c'est htmlentities :)
Commenter la réponse de corentin.bc