- Messages : 7
Sujets mail mal encodés
- podz
- Auteur du sujet
- Nouveau membre
Moins
Plus d'informations
il y a 5 ans 5 mois - il y a 5 ans 5 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
}
}
}
?>
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 5 ans 5 mois par podz.
Connexion ou Créer un compte pour participer à la conversation.
- Yan
- Developpeur GRR
Moins
Plus d'informations
- Messages : 2115
il y a 5 ans 4 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
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
Moins
Plus d'informations
- Messages : 2115
il y a 5 ans 4 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 :
Sur quelle version de GRR avez-vous fait vos modifications ?
Cordialement,
YN
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
Cordialement,
YN
Connexion ou Créer un compte pour participer à la conversation.
- podz
- Auteur du sujet
- Nouveau membre
Moins
Plus d'informations
- Messages : 7
il y a 5 ans 4 mois #2073
par podz
Réponse de podz sur le sujet Sujets mail mal encodés
Bonjour,
Sur la 3.4.0.
Sur la 3.4.0.
Connexion ou Créer un compte pour participer à la conversation.
- christin
- Nouveau membre
Moins
Plus d'informations
- Messages : 14
il y a 5 ans 4 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.
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
Moins
Plus d'informations
- Messages : 7
il y a 5 ans 4 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
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
Moins
Plus d'informations
- Messages : 7
il y a 5 ans 3 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
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
Moins
Plus d'informations
- Messages : 7
il y a 5 ans 3 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
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