Question Sujets mail mal encodés

  • podz
  • podz's Avatar Topic Author
More
2 months 5 days ago - 2 months 5 days ago #1996 by podz
Sujets mail mal encodés was created by 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
}

}

}
?>
Last edit: 2 months 5 days ago by podz.

Please Log in or Create an account to join the conversation.

  • Yan
  • Yan's Avatar
More
1 month 4 weeks ago #2006 by Yan
Replied by Yan on topic 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

Please Log in or Create an account to join the conversation.

  • Yan
  • Yan's Avatar
More
1 month 3 weeks ago #2017 by Yan
Replied by Yan on topic Sujets mail mal encodés
Bonjour,
je viens de tester votre proposition, mais il y a une erreur lors de l'envoi de mail :
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

Please Log in or Create an account to join the conversation.

  • podz
  • podz's Avatar Topic Author
More
1 month 2 weeks ago #2073 by podz
Replied by podz on topic Sujets mail mal encodés
Bonjour,
Sur la 3.4.0.

Please Log in or Create an account to join the conversation.

  • christin
  • christin's Avatar
More
1 month 2 weeks ago #2077 by christin
Replied by christin on topic 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.

Please Log in or Create an account to join the conversation.

  • podz
  • podz's Avatar Topic Author
More
1 month 2 weeks ago #2078 by podz
Replied by podz on topic 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

Please Log in or Create an account to join the conversation.

  • VAcnav
  • VAcnav's Avatar
More
3 days 21 hours ago #2170 by VAcnav
Replied by VAcnav on topic 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

Please Log in or Create an account to join the conversation.

  • podz
  • podz's Avatar Topic Author
More
3 days 21 hours ago #2171 by podz
Replied by podz on topic 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

Please Log in or Create an account to join the conversation.

Moderators: Yan