Signaler

PHPMailer alternative textuelle à mail HTML [Résolu]

Posez votre question corentin.bc 357Messages postés dimanche 8 février 2015Date d'inscription 7 octobre 2017 Dernière intervention - Dernière réponse le 3 août 2017 à 18:46 par corentin.bc
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>


Utile
+0
plus moins
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,
Donnez votre avis
Utile
+0
plus moins
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 ?
Donnez votre avis
Utile
+0
plus moins
bon, en cherchant sur le net j'ai trouvé la solution c'est htmlentities :)
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !