Compare commits

...

11 Commits

Author SHA1 Message Date
RealET 85f4929b18 [Salvatore] [source:lang/ facteur] Export depuis https://trad.spip.net de la langue fr_tu 6 months ago
Alberto 25c716a0d4 [Salvatore] [source:lang/ paquet-facteur] Export depuis https://trad.spip.net de la langue it 7 months ago
Alberto 21d15c1aa3 [Salvatore] [source:lang/ facteur] Export depuis https://trad.spip.net de la langue it 7 months ago
Alberto 2b2e8185e6 [Salvatore] [source:lang/ paquet-facteur] Export depuis https://trad.spip.net de la langue it 7 months ago
Cerdic fb4875fc6b Deseveriser le typage sur headers, car le core lui meme appelle la fonction avec une valeur nulle lors de l'inscription. On traite proprement le cas null pour ne pas le propager 8 months ago
Cerdic 2651310985 Version 5.0.3 9 months ago
Cerdic 9c1f3daa8c variable inutile (JLuc) 9 months ago
Cerdic 05d1cdc1ff @see pour les ide (JLuc) 9 months ago
Cerdic 59eb0c3fd9 Charger directement inc_facteur_mail_html2text() plutot que passer par facteur_mail_html2text() cela evite en plus une fatale eventuelle #19 9 months ago
Cerdic 5e40dbc3b8 Relacher un peu la contrainte sur le typage de from qui est parfois null pour passer des headers #19 9 months ago
b_b daf42982b9 prise en charge correcte de Message-ID dans l'ajout de headers 9 months ago
  1. 2
      facteur_fonctions.php
  2. 11
      inc/envoyer_mail.php
  3. 13
      inc/facteur.php
  4. 1
      inc/facteur_mail_wrap_to_html.php
  5. 5
      lang/facteur.xml
  6. 1
      lang/facteur_fr_tu.php
  7. 66
      lang/facteur_it.php
  8. 4
      lang/paquet-facteur_it.php
  9. 2
      paquet.xml

2
facteur_fonctions.php

@ -63,7 +63,7 @@ function facteur_nl2br_si_pas_autobr($texte){
/**
* voir inc/facteur_mail_wrap_to_html
* @see inc_facteur_mail_wrap_to_html_dist
*
* @param string $texte_ou_html
* @return string

11
inc/envoyer_mail.php

@ -52,17 +52,18 @@ include_spip('inc/facteur');
* array headers : tableau d'en-tetes personalises, une entree par ligne d'en-tete
* bool exceptions : lancer une exception en cas d'erreur (false par defaut)
* bool important : un flag pour signaler les messages important qui necessitent un feedback en cas d'erreur
* @param string $from (deprecie, utiliser l'entree from de $message)
* @param string|null $from (deprecie, utiliser l'entree from de $message)
* @param string $headers (deprecie, utiliser l'entree headers de $message)
* @return bool
* @throws Exception
*/
function inc_envoyer_mail($destinataire, string $sujet, $message, string $from = '', string $headers = '') {
function inc_envoyer_mail($destinataire, string $sujet, $message, ?string $from = '', ?string $headers = '') {
if (!is_array($message)) {
$message_string = $message;
$message = [];
if (preg_match(',Content-Type:\s*text/html,ims', $headers)) {
$headers = $headers ?? '';
if ($headers and preg_match(',Content-Type:\s*text/html,ims', $headers)) {
$message['html'] = $message_string;
} else {
// Autodetection : tester si le mail est en HTML
@ -82,7 +83,7 @@ function inc_envoyer_mail($destinataire, string $sujet, $message, string $from =
}
}
if (strlen($headers) and empty($message['headers'])) {
if (!is_null($headers) and strlen($headers) and empty($message['headers'])) {
$headers = array_map('trim', explode("\n", $headers));
$headers = array_filter($headers);
if (!empty($headers)) {
@ -90,7 +91,7 @@ function inc_envoyer_mail($destinataire, string $sujet, $message, string $from =
}
}
if (strlen($from) and empty($message['from'])) {
if (!is_null($from) and strlen($from) and empty($message['from'])) {
$message['from'] = trim($from);
}

13
inc/facteur.php

@ -79,7 +79,8 @@ function facteur_envoyer_mail($destinataires, string $sujet, array $message, int
// si le mail est en HTML sans alternative, la generer
if ($message_html and !$message_texte) {
$message_texte = facteur_mail_html2text($message_html);
$facteur_mail_html2text = charger_fonction('facteur_mail_html2text', 'inc');
$message_texte = $facteur_mail_html2text($message_html);
}
$exceptions = false;
@ -209,7 +210,11 @@ function facteur_envoyer_mail($destinataires, string $sujet, array $message, int
strpos($h, ':') !== false
and strncmp($h, 'Content-Type:', 13) !== 0
) {
$facteur->AddCustomHeader($h);
if (strpos($h, 'Message-ID:') === 0) {
$facteur->MessageID = trim(explode(':', $h, 2)[1]);
} else {
$facteur->AddCustomHeader($h);
}
}
}
}
@ -508,8 +513,8 @@ function facteur_config($options = []) {
$config = array_merge($config, $options);
}
if (!isset($config['adresse_envoi'])
or $config['adresse_envoi'] !== 'oui'
if (!isset($config['adresse_envoi'])
or $config['adresse_envoi'] !== 'oui'
or !$config['adresse_envoi_email']) {
$config = array_merge($config, facteur_config_envoyeur_par_defaut());
}

1
inc/facteur_mail_wrap_to_html.php

@ -38,7 +38,6 @@ function inc_facteur_mail_wrap_to_html_dist($texte_ou_html) {
and stripos($texte_ou_html, '</body>') !== false
) {
// dans ce cas on ruse un peu : extraire le sujet du title
$sujet = '';
if (preg_match(',<title>(.*)</title>,Uims', $texte_ou_html, $m)) {
$contexte['sujet'] = $m[1];
$texte_ou_html = preg_replace(',<title>(.*)</title>,Uims', '', $texte_ou_html, 1);

5
lang/facteur.xml

@ -29,11 +29,12 @@
<traducteur nom="Davood Hossein" lien="https://trad.spip.net/auteur/davood-hossein" />
</langue>
<langue code="fr" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=fr" total="65" traduits="65" relire="0" modifs="0" nouveaux="0" pourcent="100.00" />
<langue code="fr_tu" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=fr_tu" total="65" traduits="64" relire="0" modifs="0" nouveaux="1" pourcent="98.46">
<langue code="fr_tu" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=fr_tu" total="65" traduits="65" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Cerf" lien="https://trad.spip.net/auteur/cerf" />
<traducteur nom="RealET" lien="https://trad.spip.net/auteur/realet" />
</langue>
<langue code="it" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=it" total="65" traduits="38" relire="0" modifs="11" nouveaux="16" pourcent="58.46">
<langue code="it" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=it" total="65" traduits="65" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
<traducteur nom="Alberto" lien="https://trad.spip.net/auteur/alberto" />
<traducteur nom="kent1" lien="https://trad.spip.net/auteur/kent1" />
</langue>
<langue code="ja" url="https://trad.spip.net/tradlang_module/facteur?lang_cible=ja" total="65" traduits="64" relire="0" modifs="0" nouveaux="1" pourcent="98.46">

1
lang/facteur_fr_tu.php

@ -65,6 +65,7 @@ Vérifie ton fichier <tt>mes_options.php</tt>',
'info_envois_forces_vers_email' => 'Tous les envois sont forcés vers l’adresse <b>@email@</b> par la constante <tt>_TEST_EMAIL_DEST</tt>',
// L
'label_email_test_avec_piece_jointe' => 'Avec une pièce jointe',
'label_email_test_from' => 'Expéditeur',
'label_email_test_from_placeholder' => 'from@example.org (optionnel)',
'label_email_test_important' => 'Cet email est important',

66
lang/facteur_it.php

@ -10,29 +10,33 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// C
'config_info_enregistree' => 'La configurazione di Facteur è stata registrata',
'configuration_adresse_envoi' => 'Configurazione dell’indirizzo emittente', # MODIF
'configuration_mailer' => 'Configurazione del mailer', # MODIF
'configuration_smtp' => 'Scelta del metodo d’invio di mail',
'configuration_smtp_descriptif' => 'Se no siete sicuri, scegliete la funzione mail di PHP.',
'corps_email_de_test' => 'Questo è un mail di prova con accento',
'config_info_enregistree' => 'La configurazione di Postino è stata registrata',
'configuration_adresse_envoi' => 'Indirizzo mittente predefinito',
'configuration_facteur' => 'Postino',
'configuration_facteur_smtp_tls_allow_self_signed' => 'Convalida del certificato SSL',
'configuration_mailer' => 'Metodo di invio',
'configuration_smtp' => 'Scelta del metodo di invio delle email',
'configuration_smtp_descriptif' => 'Se non siete sicuri, scegliete la funzione mail di PHP.',
'corps_email_de_test' => 'Questa è un mail di prova con accento',
// E
'email_envoye_par' => 'Inviato da @site@',
'email_test_envoye' => 'La mail di prova è stata correttamente inviata. Se non la ricevete correttamente, verficate la configurazione del server o contattate un amministratore del server.',
'erreur' => 'Errorr',
'erreur' => 'Errore',
'erreur_dans_log' => ': consultate il file log per maggiori dettagli',
'erreur_envoi_bloque_constante' => 'Invio bloccato dalla costante <tt>_TEST_EMAIL_DEST</tt>. Verifica il file <tt>mes_options.php</tt>',
'erreur_generale' => 'Ci sono uno o più errori di configurazione. Verificate il contenuto del formulario.',
'erreur_invalid_host' => 'Questo nome di host non è corretto',
'erreur_invalid_port' => 'Questu numero di porta non è corretto',
'erreur_invalid_port' => 'QuestO numero di porta non è corretto',
// F
'facteur_adresse_envoi_email' => 'Email:',
'facteur_adresse_envoi_nom' => 'Cognome:',
'facteur_adresse_envoi_nom' => 'Nome:',
'facteur_bcc' => 'Copia nascosta (CCN):',
'facteur_cc' => 'Copia (CC):',
'facteur_copies' => 'Copie:', # MODIF
'facteur_copies' => 'Copie',
'facteur_copies_descriptif' => 'Una mail sarà mandata in copia agli indirizzi definiti. Un solo indirizzo in copia e/o un solo indirizzo in copia nascosta.',
'facteur_email_test' => 'Invia email di prova a:',
'facteur_filtre_accents' => 'Trasformate gli accenti nella loro entity html (utile sopratutto per Hotmail).',
'facteur_filtre_css' => 'Trasformare gli stili contenuti tra <head> e </head> negli stili "in linea", utile per le webmail perché gli stili in linea hanno la precedenza sugli stili estermi.',
'facteur_filtre_images' => 'Integrate le immagini citate nelle mail',
@ -47,29 +51,47 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'facteur_smtp_port' => 'Porta:',
'facteur_smtp_secure' => 'Connessione sicura:',
'facteur_smtp_secure_non' => 'no',
'facteur_smtp_secure_ssl' => 'SSL', # MODIF
'facteur_smtp_secure_tls' => 'TLS', # MODIF
'facteur_smtp_sender' => 'Resoconto degli errori (opzionale)', # MODIF
'facteur_smtp_sender_descriptif' => 'Definisce nella testata della mail l’indirizzo mail di resoconto degli errori (o Return-Path), e durante l’invio tramite il metodo SMTP definisce anche l’indirizzo del mittente.', # MODIF
'facteur_smtp_secure_ssl' => 'SSL (obsoleto)',
'facteur_smtp_secure_tls' => 'TLS (consigliato)',
'facteur_smtp_sender' => 'Indirizzo di ritorno per gli errori (opzionale)',
'facteur_smtp_sender_descriptif' => 'Definisce nell’intestazione dell’e-mail l’indirizzo e-mail di ritorno dell’errore (o Return-Path)',
'facteur_smtp_tls_allow_self_signed_non' => 'il certificato SSL del server SMTP è emesso da un’Autorità di Certificazione (consigliato).',
'facteur_smtp_tls_allow_self_signed_oui' => 'il certificato SSL del server SMTP è autofirmato.',
'facteur_smtp_username' => 'Nome dell’utente:',
// I
'info_envois_bloques_constante' => 'Tutti gli invii sono bloccati dalla costante <tt>_TEST_EMAIL_DEST</tt>.',
'info_envois_forces_vers_email' => 'Tutti gli invii sono forzati all’indirizzo <b>@email@</b> dalla constante <tt>_TEST_EMAIL_DEST</tt>',
// L
'label_email_test_avec_piece_jointe' => 'Con un allegato',
'label_email_test_from' => 'Mittente',
'label_email_test_from_placeholder' => 'from@example.org (opzionale)',
'label_email_test_important' => 'Questa email è importante',
'label_facteur_forcer_from' => 'Forza questo indirizzo mittente quando <tt>DA</tt> non si trova sullo stesso dominio',
'label_message_envoye' => 'Messaggio inviato:',
// M
'message_identite_email' => 'La configurazione del plugin "facteur" sovraccarica questo indirizzo mail per l’invio della posta.', # MODIF
'message_identite_email' => 'La <a href="@url@">configurazione del plugin <i>Postino</i></a sostituisce questo indirizzo e-mail con <b>@email@</b> per l’invio di e-mail.',
// N
'note_test_configuration' => 'Una mail sarà inviata all’indirizzo definito (o all’indirizzo del webmaster).', # MODIF
'note_test_configuration' => 'Una mail verrà inviata a questo indirizzo (o all’indirizzo del webmaster).',
// P
'personnaliser' => 'Personnalizzate questi impostazioni',
'personnaliser' => 'Personalizza queste impostazioni',
// S
'sujet_alerte_mail_fail' => '[MAIL] FAIL inviato a @dest@ (era: @sujet@)',
// T
'tester' => 'Provare',
'tester_la_configuration' => 'Provare la configurazione',
'tester' => 'Esegui test',
'tester_la_configuration' => 'Test di configurazione',
'titre_configurer_facteur' => 'Configurazione di Postino',
// U
'utiliser_mail' => 'Usare la funzione mail di PHP', # MODIF
'utiliser_reglages_site' => 'Usare le impostazioni del sito SPIP: il nome visualizzato sarà il nome del sito SPIP e l’indirizzo mail sarà quello del webmaster', # MODIF
'utiliser_smtp' => 'Utilisare SMTP',
'utiliser_mail' => 'Usa la funzione <tt>mail()</tt> di PHP',
'utiliser_reglages_site' => 'Utilizzare le impostazioni del sito SPIP: il nome visualizzato sarà il nome del sito e l’indirizzo mail sarà quello del webmaster',
'utiliser_smtp' => 'Utilizzare SMTP',
// V
'valider' => 'Confermare',

4
lang/paquet-facteur_it.php

@ -10,7 +10,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
$GLOBALS[$GLOBALS['idx_lang']] = array(
// F
'facteur_description' => 'Facteur si occupa della consegna delle e-mail (usando SMTP o meno) in formato HTML, formato testo o misto',
'facteur_nom' => 'Facteur',
'facteur_description' => 'Postino si occupa della consegna delle e-mail (usando SMTP o meno) in formato HTML, formato testo o misto',
'facteur_nom' => 'Postino',
'facteur_slogan' => 'Consegna la tua posta'
);

2
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="facteur"
categorie="communication"
version="5.0.2"
version="5.0.4"
etat="test"
compatibilite="[4.0.0;4.1.*]"
logo="facteur-64.svg"

Loading…
Cancel
Save