mirror of
https://framagit.org/framasoft/framadate/framadate
synced 2026-07-18 00:55:03 +00:00
Merge pull request #46 from fevrier/fix_email_encoding
Fix email encoding
This commit is contained in:
commit
9ac3da3c03
5 changed files with 61 additions and 44 deletions
|
|
@ -103,13 +103,6 @@ $dsondage=$sondage->FetchObject(false);
|
|||
|
||||
//si la valeur du nouveau titre est valide et que le bouton est activé
|
||||
$adresseadmin = $dsondage->mail_admin;
|
||||
$headers_str = <<<EOF
|
||||
From: %s <%s>
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
EOF;
|
||||
$headers = sprintf($headers_str, NOMAPPLICATION, ADRESSEMAILADMIN);
|
||||
|
||||
|
||||
if (isset($_POST["boutonnouveautitre"]) || isset($_POST["boutonnouveautitre_x"])) {
|
||||
if(issetAndNoEmpty('nouveautitre') === false) {
|
||||
|
|
@ -122,12 +115,11 @@ if (isset($_POST["boutonnouveautitre"]) || isset($_POST["boutonnouveautitre_x"])
|
|||
|
||||
//envoi du mail pour prevenir l'admin de sondage
|
||||
if ($connect->Execute($sql, array($nouveautitre, $numsondage))) {
|
||||
mail ($adresseadmin,
|
||||
sendEmail( $adresseadmin,
|
||||
_("[ADMINISTRATOR] New title for your poll") . ' ' . NOMAPPLICATION,
|
||||
_("You have changed the title of your poll. \nYou can modify this poll with this link") .
|
||||
" :\n\n".getUrlSondage($numsondageadmin, true)."\n\n" .
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION,
|
||||
$headers);
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -145,12 +137,11 @@ if (isset($_POST["boutonnouveauxcommentaires"]) || isset($_POST["boutonnouveauxc
|
|||
|
||||
if ($connect->Execute($sql, array($commentaires, $numsondage))) {
|
||||
//envoi du mail pour prevenir l'admin de sondage
|
||||
mail ($adresseadmin,
|
||||
sendEmail( $adresseadmin,
|
||||
_("[ADMINISTRATOR] New comments for your poll") . ' ' . NOMAPPLICATION,
|
||||
_("You have changed the comments of your poll. \nYou can modify this poll with this link") .
|
||||
" :\n\n".getUrlSondage($numsondageadmin, true)." \n\n" .
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION,
|
||||
$headers);
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -168,12 +159,11 @@ if (isset($_POST["boutonnouvelleadresse"]) || isset($_POST["boutonnouvelleadress
|
|||
|
||||
if ($connect->Execute($sql, array($nouvelleadresse, $numsondage))) {
|
||||
//envoi du mail pour prevenir l'admin de sondage
|
||||
mail ($_POST['nouvelleadresse'],
|
||||
sendEmail( $_POST['nouvelleadresse'],
|
||||
_("[ADMINISTRATOR] New email address for your poll") . ' ' . NOMAPPLICATION,
|
||||
_("You have changed your email address in your poll. \nYou can modify this poll with this link") .
|
||||
" :\n\n".getUrlSondage($numsondageadmin, true)."\n\n" .
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION,
|
||||
$headers);
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -318,12 +308,11 @@ if (isset($_POST["confirmesuppression"]) || isset($_POST["confirmesuppression_x"
|
|||
error_log($date . " SUPPRESSION: $dsondage->id_sondage\t$dsondage->format\t$dsondage->nom_admin\t$dsondage->mail_admin\n", 3, 'admin/logs_studs.txt');
|
||||
|
||||
//envoi du mail a l'administrateur du sondage
|
||||
mail ($adresseadmin,
|
||||
sendEmail( $adresseadmin,
|
||||
_("[ADMINISTRATOR] Removing of your poll") . ' ' . NOMAPPLICATION,
|
||||
_("You have removed your poll. \nYou can make new polls with this link") .
|
||||
" :\n\n".get_server_name()."index.php \n\n" .
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION,
|
||||
$headers);
|
||||
_("Thanks for your confidence.") . "\n" . NOMAPPLICATION );
|
||||
|
||||
//affichage de l'ecran de confirmation de suppression de sondage
|
||||
print_header();
|
||||
|
|
@ -466,11 +455,10 @@ if (isset($_POST["ajoutercolonne_x"]) && issetAndNoEmpty('nouvellecolonne') && (
|
|||
$sql = $connect->Prepare($sql);
|
||||
if ($connect->Execute($sql, array($nouveauxsujets, $numsondage))) {
|
||||
//envoi d'un mail pour prévenir l'administrateur du changement
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit";
|
||||
mail ("$adresseadmin", "" . _("[ADMINISTRATOR] New column for your poll").NOMAPPLICATION, "" .
|
||||
|
||||
sendEmail( "$adresseadmin", "" . _("[ADMINISTRATOR] New column for your poll").NOMAPPLICATION, "" .
|
||||
_("You have added a new column in your poll. \nYou can inform the voters of this change with this link") .
|
||||
" : \n\n".getUrlSondage($numsondage)." \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION,
|
||||
$headers);
|
||||
" : \n\n".getUrlSondage($numsondage)." \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -581,11 +569,10 @@ if (isset($_POST["ajoutercolonne_x"]) && ($dsondage->format == "D" || $dsondage-
|
|||
//envoi d'un mail pour prévenir l'administrateur du changement
|
||||
$adresseadmin = $dsondage->mail_admin;
|
||||
|
||||
mail ($adresseadmin,
|
||||
sendEmail( $adresseadmin,
|
||||
_("[ADMINISTRATOR] New column for your poll"),
|
||||
_("You have added a new column in your poll. \nYou can inform the voters of this change with this link").
|
||||
" : \n\n".getUrlSondage($numsondage)." \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION,
|
||||
$headers);
|
||||
" : \n\n".getUrlSondage($numsondage)." \n\n " . _("Thanks for your confidence.") . "\n".NOMAPPLICATION );
|
||||
} else {
|
||||
$erreur_ajout_date="yes";
|
||||
}
|
||||
|
|
|
|||
14
contacts.php
14
contacts.php
|
|
@ -52,14 +52,16 @@ if ((isset($_POST['envoiquestion']) || isset($_POST['envoiquestion_x'])) && isse
|
|||
$message=str_replace("\\","",$_POST["question"]);
|
||||
|
||||
//envoi des mails
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\r\nContent-Transfer-Encoding: 8bit";
|
||||
|
||||
if (isset($_POST['adresse_mail']) && !empty($_POST['adresse_mail']) && validateEmail($_POST['adresse_mail'])) {
|
||||
$headers .= "\r\n".'Reply-To: '.$_POST['adresse_mail'];
|
||||
$headers = 'Reply-To: '.$_POST['adresse_mail'];
|
||||
} else {
|
||||
$headers = '' ;
|
||||
}
|
||||
mail (ADRESSEMAILADMIN, "" . _("[CONTACT] You have sent a question ") . "".NOMAPPLICATION, "" . _("You have a question from a user ") . " ".NOMAPPLICATION."\n\n" . _("User") . " : ".$_POST["nom"]."\n\n" . _("User's email address") . " : $_POST[adresse_mail]\n\n" . _("Message") . " :".$message,$headers);
|
||||
|
||||
sendEmail( ADRESSEMAILADMIN, "" . _("[CONTACT] You have sent a question ") . "".NOMAPPLICATION, "" . _("You have a question from a user ") . " ".NOMAPPLICATION."\n\n" . _("User") . " : ".$_POST["nom"]."\n\n" . _("User's email address") . " : $_POST[adresse_mail]\n\n" . _("Message") . " :".$message,$headers );
|
||||
if (isset($_POST['adresse_mail']) && !empty($_POST['adresse_mail']) && validateEmail($_POST['adresse_mail'])) {
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit";
|
||||
mail ("$_POST[adresse_mail]", "" . _("[COPY] Someone has sent a question ") . "".NOMAPPLICATION, "" . _("Here is a copy of your question") . " :\n\n".$message." \n\n" . _("We're going to answer your question shortly.") . "\n\n" . _("Thanks for your confidence.") . "\n".NOMAPPLICATION,$headers);
|
||||
sendEmail( "$_POST[adresse_mail]", "" . _("[COPY] Someone has sent a question ") . "".NOMAPPLICATION, "" . _("Here is a copy of your question") . " :\n\n".$message." \n\n" . _("We're going to answer your question shortly.") . "\n\n" . _("Thanks for your confidence.") . "\n".NOMAPPLICATION );
|
||||
}
|
||||
|
||||
//affichage de la page de confirmation d'envoi
|
||||
|
|
@ -148,4 +150,4 @@ framanav();
|
|||
bandeau_pied();
|
||||
echo '</body>'."\n";
|
||||
echo '</html>'."\n";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -82,8 +82,6 @@ function ajouter_sondage()
|
|||
$date_fin = time()+15552000;
|
||||
}
|
||||
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit";
|
||||
|
||||
global $connect;
|
||||
|
||||
$sql = 'INSERT INTO sondage
|
||||
|
|
@ -108,7 +106,7 @@ function ajouter_sondage()
|
|||
|
||||
$message = _("This is the message you have to send to the people you want to poll. \nNow, you have to send this message to everyone you want to poll.");
|
||||
$message .= "\n\n";
|
||||
$message .= stripslashes(htmlspecialchars_decode($_SESSION["nom"],ENT_QUOTES))." " . _("hast just created a poll called") . " : \"".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES))."\".\n";
|
||||
$message .= stripslashes(html_entity_decode($_SESSION["nom"],ENT_QUOTES,"UTF-8"))." " . _("hast just created a poll called") . " : \"".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES))."\".\n";
|
||||
$message .= _("Thanks for filling the poll at the link above") . " :\n\n%s\n\n" . _("Thanks for your confidence") . ",\n".NOMAPPLICATION;
|
||||
|
||||
$message_admin = _("This message should NOT be sended to the polled people. It is private for the poll's creator.\n\nYou can now modify it at the link above");
|
||||
|
|
@ -118,8 +116,8 @@ function ajouter_sondage()
|
|||
$message_admin = sprintf($message_admin, getUrlSondage($sondage_admin, true));
|
||||
|
||||
if (validateEmail($_SESSION['adresse'])) {
|
||||
mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("Author's message") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message_admin, $headers);
|
||||
mail ("$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("For sending to the polled users") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message, $headers);
|
||||
sendEmail( "$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("Author's message") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message_admin );
|
||||
sendEmail( "$_SESSION[adresse]", "[".NOMAPPLICATION."][" . _("For sending to the polled users") . "] " . _("Poll") . " : ".stripslashes(htmlspecialchars_decode($_SESSION["titre"],ENT_QUOTES)), $message );
|
||||
}
|
||||
|
||||
$date=date('H:i:s d/m/Y:');
|
||||
|
|
@ -127,4 +125,4 @@ function ajouter_sondage()
|
|||
header("Location:".getUrlSondage($sondage));
|
||||
exit();
|
||||
session_unset();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -161,6 +161,39 @@ function validateEmail($email)
|
|||
return (bool)preg_match($pattern, $email);
|
||||
}
|
||||
|
||||
# Envoi un courrier avec un codage correct de To et Subject
|
||||
# Les en-têtes complémentaires ne sont pas gérés
|
||||
|
||||
function sendEmail( $to, $subject, $body, $headers, $param)
|
||||
{
|
||||
|
||||
mb_internal_encoding("UTF-8");
|
||||
|
||||
$subject = mb_encode_mimeheader( html_entity_decode( $subject, ENT_QUOTES, 'UTF-8' ), "UTF-8", "B", "\n", 9 ) ;
|
||||
|
||||
$encoded_app = mb_encode_mimeheader( NOMAPPLICATION, "UTF-8", "B", "\n", 6 ) ;
|
||||
$size_encoded_app = ( 6 + strlen( $encoded_app ) ) % 75 ;
|
||||
$size_admin_email = strlen( ADRESSEMAILADMIN ) ;
|
||||
|
||||
if ( ( $size_encoded_app + $size_admin_email + 9 ) > 74 ) {
|
||||
$folding = "\n" ;
|
||||
} else {
|
||||
$folding = "" ;
|
||||
} ;
|
||||
$from = sprintf( "From: %s%s <%s>\n", $encoded_app, $folding, ADRESSEMAILADMIN ) ;
|
||||
|
||||
if ( $headers ) $headers .= "\n" ;
|
||||
$headers .= $from ;
|
||||
$headers .= "MIME-Version: 1.0\n" ;
|
||||
$headers .= "Content-Type: text/plain; charset=UTF-8\n" ;
|
||||
$headers .= "Content-Transfer-Encoding: 8bit" ;
|
||||
|
||||
$body = html_entity_decode( $body, ENT_QUOTES, 'UTF-8' ) ;
|
||||
|
||||
mail( $to, $subject, $body, $headers, $param ) ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fonction vérifiant l'existance et la valeur non vide d'une clé d'un tableau
|
||||
|
|
|
|||
|
|
@ -171,14 +171,12 @@ if (!is_error(NO_POLL) && (isset($_POST["boutonp"]) || isset($_POST["boutonp_x"]
|
|||
$connect->Execute($sql, array($nom, $numsondage, $nouveauchoix));
|
||||
|
||||
if ($dsondage->mailsonde || /* compatibility for non boolean DB */ $dsondage->mailsonde=="yes" || $dsondage->mailsonde=="true") {
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit";
|
||||
mail ("$dsondage->mail_admin",
|
||||
sendEmail( "$dsondage->mail_admin",
|
||||
"[".NOMAPPLICATION."] "._("Poll's participation")." : ".html_entity_decode($dsondage->titre, ENT_QUOTES, 'UTF-8')."",
|
||||
html_entity_decode("\"$nom\" ", ENT_QUOTES, 'UTF-8').
|
||||
_("has filled a line.\nYou can find your poll at the link") . " :\n\n".
|
||||
getUrlSondage($numsondage)." \n\n" .
|
||||
_("Thanks for your confidence.") . "\n". NOMAPPLICATION,
|
||||
$headers);
|
||||
_("Thanks for your confidence.") . "\n". NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
@ -307,8 +305,7 @@ if ($testmodifier) {
|
|||
$connect->Execute($sql, array($nouveauchoix, $data->nom, $data->id_users));
|
||||
|
||||
if ($dsondage->mailsonde=="yes") {
|
||||
$headers="From: ".NOMAPPLICATION." <".ADRESSEMAILADMIN.">\r\nContent-Type: text/plain; charset=\"UTF-8\"\nContent-Transfer-Encoding: 8bit";
|
||||
mail ("$dsondage->mail_admin", "[".NOMAPPLICATION."] " . _("Poll's participation") . " : ".html_entity_decode($dsondage->titre, ENT_QUOTES, 'UTF-8'), "\"".html_entity_decode($data->nom, ENT_QUOTES, 'UTF-8')."\""."" . _("has filled a line.\nYou can find your poll at the link") . " :\n\n".getUrlSondage($numsondage)." \n\n" . _("Thanks for your confidence.") . "\n".NOMAPPLICATION,$headers);
|
||||
sendEmail( "$dsondage->mail_admin", "[".NOMAPPLICATION."] " . _("Poll's participation") . " : ".html_entity_decode($dsondage->titre, ENT_QUOTES, 'UTF-8'), "\"".html_entity_decode($data->nom, ENT_QUOTES, 'UTF-8')."\""."" . _("has filled a line.\nYou can find your poll at the link") . " :\n\n".getUrlSondage($numsondage)." \n\n" . _("Thanks for your confidence.") . "\n".NOMAPPLICATION );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue