Sujets mail mal encodés

  • podz
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 10 mois - il y a 4 ans 10 mois #1996 par podz
Sujets mail mal encodés a été créé par podz
Bonjour,
nous avons rencontrés un soucis d'interprétation de l'encodage des sujets des mails automatiques sur un webmail.
Dès qu'un accent était présent le tout devenait illisible. J'ai modifié le fichier include/mail.class.php pour corriger cette erreur. Voici la nouvelle version:

<?php
/**
* include/functions.inc.php
* fichier Bibliothèque de fonctions de GRR
* Dernière modification : $Date: 2018-02-23 18:00$
* @author JeromeB & Laurent Delineau & Marc-Henri PAMISEUX
* @copyright Copyright 2003-2018 Team DEVOME - JeromeB
* @link www.gnu.org/licenses/licenses.html
*
* This file is part of GRR.
*
* GRR is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/

class Email{

public static function Envois ($A, $sujet, $message, $DE, $cc1='', $cc2='') {

if (Settings::get('grr_mail_method') == 'smtp') {

$smtp1 = Settings::get('grr_mail_smtp');
$username = Settings::get('grr_mail_Username');
$password = Settings::get('grr_mail_Password');
$smtpsecure = Settings::get('smtp_secure');
$port = Settings::get('smtp_port');

//encodage du sujet pour affichage des accents 1/3
$sujet = utf8_decode($sujet);
$sujet = mb_encode_mimeheader($sujet,"utf-8", "B", "\n");
$sujet->CharSet = 'utf-8';

$mail = new PHPMailer;
$mail->CharSet = 'utf-8';

$mail->SMTPDebug = 0;

$mail->isSMTP();
//$mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );
$mail->Host = $smtp1;
$mail->Username = $username;
$mail->Password = $password;
$mail->SMTPSecure = $smtpsecure; // Enable TLS encryption, `ssl` also accepted
$mail->Port = $port;

if (Settings::get('grr_mail_Username') != "") {
$mail->SMTPAuth = true;
} else {
$mail->SMTPAuth = false;
}

$mail->setFrom($DE, 'GRR');

$lesDestinataires = explode(";", $A);
for($i=0;$i<count($lesDestinataires);$i++){
if (Settings::get("grr_mail_Bcc") == "y"){
$mail->addCC($lesDestinataires[$i]);
} else{
$mail->AddAddress($lesDestinataires[$i]);
}
}

$mail->addReplyTo($DE, 'GRR');


$mail->isHTML(true);

$mail->Subject = $sujet;
$mail->Body = nl2br($message);
$mail->AltBody = 'Ce message ne peut-être affiché.';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
//echo 'Message has been sent';
}

} else{
$headers = "From: {$DE}" . "\r\n" .
"Reply-To: {$DE}" . "\r\n" .
'Content-Type: text/plain; charset="utf-8"'." " .

//encodage du sujet pour affichage des accents 2/3
'MIME-Version:1.0'.
'Content-Transfer-Encoding:8bit'.

'X-Mailer: PHP/' . phpversion();

// mail($A, $sujet, utf8_decode(utf8_encode($message)), $headers);
//encodage du sujet pour affichage des accents 3/3
mail(str_replace(";",",",$A), '=?utf-8?B?'.base64_encode($sujet).'?=', utf8_decode(utf8_encode(str_replace("<br>","",$message))), $headers); //YN selon Rapace sur le forum
}

}

}
?>
Dernière édition: il y a 4 ans 10 mois par podz.

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 4 ans 9 mois #2006 par Yan
Réponse de Yan sur le sujet Sujets mail mal encodés
Bonjour,
merci pour votre proposition.
Je la teste dès que possible avant intégration.
Sur quelle version de GRR avez-vous travaillé ?
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • Yan
  • Developpeur GRR
  • Developpeur GRR
Plus d'informations
il y a 4 ans 9 mois #2017 par Yan
Réponse de Yan sur le sujet Sujets mail mal encodés
Bonjour,
je viens de tester votre proposition, mais il y a une erreur lors de l'envoi de mail :
Code:
Warning: Attempt to assign property 'CharSet' of non-object in C:\xampp\htdocs\GRR341\include\mail.class.php on line 34
Sur quelle version de GRR avez-vous fait vos modifications ?
Cordialement,
YN

Connexion ou Créer un compte pour participer à la conversation.

  • podz
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 9 mois #2073 par podz
Réponse de podz sur le sujet Sujets mail mal encodés
Bonjour,
Sur la 3.4.0.

Connexion ou Créer un compte pour participer à la conversation.

  • christin
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 9 mois #2077 par christin
Réponse de christin sur le sujet Sujets mail mal encodés
Bonjour,
je viens de tester la proposition de modif de podz. Apparemment ça règle les problèmes d'accents (que j'avais signalés dans un autre sujet) et ça n'engendre pas de message d'erreur.
Bref, le GRR3.4.0b que j'ai installé fonctionne maintenant correctement, mais bon, je ne suis pas du tout un spécialiste...
Merci beaucoup pour votre aide efficace.
Bien cordialement.

Connexion ou Créer un compte pour participer à la conversation.

  • podz
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 9 mois #2078 par podz
Réponse de podz sur le sujet Sujets mail mal encodés
Bonjour,
Heureux que ma correction vous ai été utile.
A noté que la version 3.4.1 n'a plus ce problème visiblement.

Cordialement

Connexion ou Créer un compte pour participer à la conversation.

  • VAcnav
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 8 mois #2170 par VAcnav
Réponse de VAcnav sur le sujet Sujets mail mal encodés
Je viens de tester avec succès le code proposé plus haut.
J'avais les entêtes mal encodés pourtant je suis en version 3.4.1 ....

Merci

Connexion ou Créer un compte pour participer à la conversation.

  • podz
  • Auteur du sujet
  • Nouveau membre
  • Nouveau membre
Plus d'informations
il y a 4 ans 8 mois #2171 par podz
Réponse de podz sur le sujet Sujets mail mal encodés
Bonjour,
C'est étrange j'avais testé après une réinstallation en 3.4.1 et je n'avais pas eu de modification à faire...
L'essentiel est que vous ayez trouvé ma modification d'encodage, au moins vous n'êtes pas bloqué.
Cordialement

Connexion ou Créer un compte pour participer à la conversation.

Modérateurs: Yan