From 5e06b9ff2ecc0d2a074026f72b68355fe892f77d Mon Sep 17 00:00:00 2001 From: "jluc@no-log.org" <> Date: Sun, 11 Jul 2010 17:10:27 +0000 Subject: [PATCH] =?UTF-8?q?Oups=20!=20effacement=20de=202=20plugins=20copi?= =?UTF-8?q?=C3=A9s=20par=20m=C3=A9garde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 99 - facteur/base/facteur.php | 82 - facteur/classes/facteur.php | 476 ---- facteur/emails/css.html | 63 - facteur/emails/inc-bas.html | 22 - facteur/emails/inc-haut.html | 31 - facteur/emails/test_email_html.html | 28 - facteur/emails/test_email_texte.html | 12 - facteur/exec/facteur.php | 49 - facteur/facteur_fonctions.php | 62 - facteur/formulaires/configurer_facteur.html | 177 -- facteur/formulaires/configurer_facteur.php | 150 -- facteur/inc/envoyer_mail.php | 62 - facteur/inc/facteur_autorisations.php | 26 - facteur/inc/facteur_classes.php | 15 - facteur/lang/facteur_en.php | 52 - facteur/lang/facteur_fr.php | 52 - facteur/phpmailer-php4/LICENSE | 504 ---- facteur/phpmailer-php4/README | 102 - facteur/phpmailer-php4/class.phpmailer.php | 1909 -------------- facteur/phpmailer-php4/class.pop3.php | 436 ---- facteur/phpmailer-php4/class.smtp.php | 1062 -------- .../language/phpmailer.lang-ar.php | 26 - .../language/phpmailer.lang-br.php | 23 - .../language/phpmailer.lang-ca.php | 24 - .../language/phpmailer.lang-ch.php | 24 - .../language/phpmailer.lang-cz.php | 23 - .../language/phpmailer.lang-de.php | 24 - .../language/phpmailer.lang-dk.php | 23 - .../language/phpmailer.lang-en.php | 23 - .../language/phpmailer.lang-es.php | 23 - .../language/phpmailer.lang-et.php | 24 - .../language/phpmailer.lang-fi.php | 24 - .../language/phpmailer.lang-fo.php | 25 - .../language/phpmailer.lang-fr.php | 23 - .../language/phpmailer.lang-hu.php | 23 - .../language/phpmailer.lang-it.php | 26 - .../language/phpmailer.lang-ja.php | 24 - .../language/phpmailer.lang-nl.php | 23 - .../language/phpmailer.lang-no.php | 23 - .../language/phpmailer.lang-pl.php | 23 - .../language/phpmailer.lang-ro.php | 24 - .../language/phpmailer.lang-ru.php | 23 - .../language/phpmailer.lang-se.php | 23 - .../language/phpmailer.lang-tr.php | 24 - .../language/phpmailer.lang-zh.php | 23 - .../language/phpmailer.lang-zh_cn.php | 24 - facteur/phpmailer-php5/LICENSE | 504 ---- facteur/phpmailer-php5/README | 178 -- facteur/phpmailer-php5/class.phpmailer.php | 2320 ----------------- facteur/phpmailer-php5/class.pop3.php | 407 --- facteur/phpmailer-php5/class.smtp.php | 814 ------ .../language/phpmailer.lang-ar.php | 27 - .../language/phpmailer.lang-br.php | 26 - .../language/phpmailer.lang-ca.php | 26 - .../language/phpmailer.lang-ch.php | 26 - .../language/phpmailer.lang-cz.php | 25 - .../language/phpmailer.lang-de.php | 25 - .../language/phpmailer.lang-dk.php | 26 - .../language/phpmailer.lang-en.php | 25 - .../language/phpmailer.lang-es.php | 26 - .../language/phpmailer.lang-et.php | 26 - .../language/phpmailer.lang-fi.php | 27 - .../language/phpmailer.lang-fo.php | 27 - .../language/phpmailer.lang-fr.php | 25 - .../language/phpmailer.lang-hu.php | 25 - .../language/phpmailer.lang-it.php | 27 - .../language/phpmailer.lang-ja.php | 26 - .../language/phpmailer.lang-nl.php | 25 - .../language/phpmailer.lang-no.php | 25 - .../language/phpmailer.lang-pl.php | 25 - .../language/phpmailer.lang-ro.php | 27 - .../language/phpmailer.lang-ru.php | 25 - .../language/phpmailer.lang-se.php | 26 - .../language/phpmailer.lang-tr.php | 27 - .../language/phpmailer.lang-zh.php | 26 - .../language/phpmailer.lang-zh_cn.php | 26 - facteur/plugin.xml | 30 - facteur/prive/configurer_facteur.html | 10 - facteur/prive/images/facteur-24.png | Bin 2445 -> 0 bytes facteur/prive/images/facteur-48.png | Bin 2328 -> 0 bytes .../prive/themes/spip/images/facteur-16.png | Bin 848 -> 0 bytes microblog/fonds/cfg_microblog.html | 16 - .../formulaires/configurer_microblog.html | 134 - microblog/formulaires/microbloguer.html | 45 - microblog/formulaires/microbloguer.php | 52 - microblog/genie/microblog.php | 59 - microblog/images/microblog-24.png | Bin 1095 -> 0 bytes microblog/images/microblog-64.png | Bin 4309 -> 0 bytes microblog/images/microblog.png | Bin 10000 -> 0 bytes microblog/inc/micro_notifications.php | 88 - microblog/inc/microblog.php | 96 - microblog/lang/microblog_fr.php | 55 - microblog/microblog_fonctions.php | 24 - microblog/modeles/microblog_forumposte.html | 12 - .../modeles/microblog_instituerarticle.html | 12 - microblog/modeles/microblog_update.html | 8 - microblog/plugin.xml | 30 - .../prive/exec/configurer_microblog.html | 6 - .../prive/style_prive_plugin_microblog.html | 24 - 100 files changed, 11634 deletions(-) delete mode 100644 facteur/base/facteur.php delete mode 100644 facteur/classes/facteur.php delete mode 100644 facteur/emails/css.html delete mode 100644 facteur/emails/inc-bas.html delete mode 100644 facteur/emails/inc-haut.html delete mode 100644 facteur/emails/test_email_html.html delete mode 100644 facteur/emails/test_email_texte.html delete mode 100644 facteur/exec/facteur.php delete mode 100644 facteur/facteur_fonctions.php delete mode 100644 facteur/formulaires/configurer_facteur.html delete mode 100644 facteur/formulaires/configurer_facteur.php delete mode 100644 facteur/inc/envoyer_mail.php delete mode 100644 facteur/inc/facteur_autorisations.php delete mode 100644 facteur/inc/facteur_classes.php delete mode 100644 facteur/lang/facteur_en.php delete mode 100644 facteur/lang/facteur_fr.php delete mode 100644 facteur/phpmailer-php4/LICENSE delete mode 100644 facteur/phpmailer-php4/README delete mode 100644 facteur/phpmailer-php4/class.phpmailer.php delete mode 100644 facteur/phpmailer-php4/class.pop3.php delete mode 100644 facteur/phpmailer-php4/class.smtp.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ar.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-br.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ca.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ch.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-cz.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-de.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-dk.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-en.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-es.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-et.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-fi.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-fo.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-fr.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-hu.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-it.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ja.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-nl.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-no.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-pl.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ro.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-ru.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-se.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-tr.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-zh.php delete mode 100644 facteur/phpmailer-php4/language/phpmailer.lang-zh_cn.php delete mode 100644 facteur/phpmailer-php5/LICENSE delete mode 100644 facteur/phpmailer-php5/README delete mode 100644 facteur/phpmailer-php5/class.phpmailer.php delete mode 100644 facteur/phpmailer-php5/class.pop3.php delete mode 100644 facteur/phpmailer-php5/class.smtp.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ar.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-br.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ca.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ch.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-cz.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-de.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-dk.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-en.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-es.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-et.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-fi.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-fo.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-fr.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-hu.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-it.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ja.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-nl.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-no.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-pl.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ro.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-ru.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-se.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-tr.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-zh.php delete mode 100644 facteur/phpmailer-php5/language/phpmailer.lang-zh_cn.php delete mode 100644 facteur/plugin.xml delete mode 100644 facteur/prive/configurer_facteur.html delete mode 100644 facteur/prive/images/facteur-24.png delete mode 100644 facteur/prive/images/facteur-48.png delete mode 100644 facteur/prive/themes/spip/images/facteur-16.png delete mode 100644 microblog/fonds/cfg_microblog.html delete mode 100644 microblog/formulaires/configurer_microblog.html delete mode 100644 microblog/formulaires/microbloguer.html delete mode 100644 microblog/formulaires/microbloguer.php delete mode 100644 microblog/genie/microblog.php delete mode 100644 microblog/images/microblog-24.png delete mode 100644 microblog/images/microblog-64.png delete mode 100644 microblog/images/microblog.png delete mode 100644 microblog/inc/micro_notifications.php delete mode 100644 microblog/inc/microblog.php delete mode 100644 microblog/lang/microblog_fr.php delete mode 100644 microblog/microblog_fonctions.php delete mode 100644 microblog/modeles/microblog_forumposte.html delete mode 100644 microblog/modeles/microblog_instituerarticle.html delete mode 100644 microblog/modeles/microblog_update.html delete mode 100644 microblog/plugin.xml delete mode 100644 microblog/prive/exec/configurer_microblog.html delete mode 100644 microblog/prive/style_prive_plugin_microblog.html diff --git a/.gitattributes b/.gitattributes index 166ef2f..fc4d388 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,108 +1,9 @@ * text=auto !eol -facteur/base/facteur.php -text -facteur/classes/facteur.php -text -facteur/emails/css.html -text -facteur/emails/inc-bas.html -text -facteur/emails/inc-haut.html -text -facteur/emails/test_email_html.html -text -facteur/emails/test_email_texte.html -text -facteur/exec/facteur.php -text -facteur/facteur_fonctions.php -text -facteur/formulaires/configurer_facteur.html -text -facteur/formulaires/configurer_facteur.php -text -facteur/inc/envoyer_mail.php -text -facteur/inc/facteur_autorisations.php -text -facteur/inc/facteur_classes.php -text -facteur/lang/facteur_en.php -text -facteur/lang/facteur_fr.php -text -facteur/phpmailer-php4/LICENSE -text -facteur/phpmailer-php4/README -text -facteur/phpmailer-php4/class.phpmailer.php -text -facteur/phpmailer-php4/class.pop3.php -text -facteur/phpmailer-php4/class.smtp.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ar.php -text -facteur/phpmailer-php4/language/phpmailer.lang-br.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ca.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ch.php -text -facteur/phpmailer-php4/language/phpmailer.lang-cz.php -text -facteur/phpmailer-php4/language/phpmailer.lang-de.php -text -facteur/phpmailer-php4/language/phpmailer.lang-dk.php -text -facteur/phpmailer-php4/language/phpmailer.lang-en.php -text -facteur/phpmailer-php4/language/phpmailer.lang-es.php -text -facteur/phpmailer-php4/language/phpmailer.lang-et.php -text -facteur/phpmailer-php4/language/phpmailer.lang-fi.php -text -facteur/phpmailer-php4/language/phpmailer.lang-fo.php -text -facteur/phpmailer-php4/language/phpmailer.lang-fr.php -text -facteur/phpmailer-php4/language/phpmailer.lang-hu.php -text -facteur/phpmailer-php4/language/phpmailer.lang-it.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ja.php -text -facteur/phpmailer-php4/language/phpmailer.lang-nl.php -text -facteur/phpmailer-php4/language/phpmailer.lang-no.php -text -facteur/phpmailer-php4/language/phpmailer.lang-pl.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ro.php -text -facteur/phpmailer-php4/language/phpmailer.lang-ru.php -text -facteur/phpmailer-php4/language/phpmailer.lang-se.php -text -facteur/phpmailer-php4/language/phpmailer.lang-tr.php -text -facteur/phpmailer-php4/language/phpmailer.lang-zh.php -text -facteur/phpmailer-php4/language/phpmailer.lang-zh_cn.php -text -facteur/phpmailer-php5/LICENSE -text -facteur/phpmailer-php5/README -text -facteur/phpmailer-php5/class.phpmailer.php -text -facteur/phpmailer-php5/class.pop3.php -text -facteur/phpmailer-php5/class.smtp.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ar.php -text -facteur/phpmailer-php5/language/phpmailer.lang-br.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ca.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ch.php -text -facteur/phpmailer-php5/language/phpmailer.lang-cz.php -text -facteur/phpmailer-php5/language/phpmailer.lang-de.php -text -facteur/phpmailer-php5/language/phpmailer.lang-dk.php -text -facteur/phpmailer-php5/language/phpmailer.lang-en.php -text -facteur/phpmailer-php5/language/phpmailer.lang-es.php -text -facteur/phpmailer-php5/language/phpmailer.lang-et.php -text -facteur/phpmailer-php5/language/phpmailer.lang-fi.php -text -facteur/phpmailer-php5/language/phpmailer.lang-fo.php -text -facteur/phpmailer-php5/language/phpmailer.lang-fr.php -text -facteur/phpmailer-php5/language/phpmailer.lang-hu.php -text -facteur/phpmailer-php5/language/phpmailer.lang-it.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ja.php -text -facteur/phpmailer-php5/language/phpmailer.lang-nl.php -text -facteur/phpmailer-php5/language/phpmailer.lang-no.php -text -facteur/phpmailer-php5/language/phpmailer.lang-pl.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ro.php -text -facteur/phpmailer-php5/language/phpmailer.lang-ru.php -text -facteur/phpmailer-php5/language/phpmailer.lang-se.php -text -facteur/phpmailer-php5/language/phpmailer.lang-tr.php -text -facteur/phpmailer-php5/language/phpmailer.lang-zh.php -text -facteur/phpmailer-php5/language/phpmailer.lang-zh_cn.php -text -facteur/plugin.xml -text -facteur/prive/configurer_facteur.html -text -facteur/prive/images/facteur-24.png -text -facteur/prive/images/facteur-48.png -text -facteur/prive/themes/spip/images/facteur-16.png -text inc/is_email.php -text inc/verifier.php -text lang/verifier_ca.php -text lang/verifier_de.php -text lang/verifier_fr.php -text -microblog/fonds/cfg_microblog.html -text -microblog/formulaires/configurer_microblog.html -text -microblog/formulaires/microbloguer.html -text -microblog/formulaires/microbloguer.php -text -microblog/genie/microblog.php -text -microblog/images/microblog-24.png -text -microblog/images/microblog-64.png -text -microblog/images/microblog.png -text -microblog/inc/micro_notifications.php -text -microblog/inc/microblog.php -text -microblog/lang/microblog_fr.php -text -microblog/microblog_fonctions.php -text -microblog/modeles/microblog_forumposte.html -text -microblog/modeles/microblog_instituerarticle.html -text -microblog/modeles/microblog_update.html -text -microblog/plugin.xml -text -microblog/prive/exec/configurer_microblog.html -text -microblog/prive/style_prive_plugin_microblog.html -text /plugin.xml -text test/verifier.html -text verifier/date.php -text diff --git a/facteur/base/facteur.php b/facteur/base/facteur.php deleted file mode 100644 index 8ae4ccc..0000000 --- a/facteur/base/facteur.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - -function facteur_upgrade($nom_meta_base_version, $version_cible){ - $current_version = "0.0"; - - if (isset($GLOBALS['meta'][$nom_meta_base_version])) { - $current_version = $GLOBALS['meta'][$nom_meta_base_version]; - } - - if ($current_version=="0.0" OR isset($GLOBALS['meta']['spip_notifications_version']) ) { - // reprendre la config de l'ancien nommage - if (isset($GLOBALS['meta']['spip_notifications_version'])) { - ecrire_meta('facteur_smtp', $GLOBALS['meta']['spip_notifications_smtp']); - ecrire_meta('facteur_smtp_auth', $GLOBALS['meta']['spip_notifications_smtp_auth']); - ecrire_meta('facteur_smtp_secure', $GLOBALS['meta']['spip_notifications_smtp_secure']); - ecrire_meta('facteur_smtp_sender', $GLOBALS['meta']['spip_notifications_smtp_sender']); - ecrire_meta('facteur_filtre_images', $GLOBALS['meta']['spip_notifications_filtre_images']); - ecrire_meta('facteur_filtre_css', $GLOBALS['meta']['spip_notifications_filtre_css']); - ecrire_meta('facteur_filtre_iso_8859', $GLOBALS['meta']['spip_notifications_filtre_iso_8859']); - ecrire_meta('facteur_adresse_envoi', $GLOBALS['meta']['spip_notifications_adresse_envoi']); - ecrire_meta('facteur_adresse_envoi_nom', $GLOBALS['meta']['spip_notifications_adresse_envoi_nom']); - ecrire_meta('facteur_adresse_envoi_email', $GLOBALS['meta']['spip_notifications_adresse_envoi_email']); - // supprimer l'ancien nommage - effacer_meta('spip_notifications_smtp'); - effacer_meta('spip_notifications_smtp_auth'); - effacer_meta('spip_notifications_smtp_secure'); - effacer_meta('spip_notifications_smtp_sender'); - effacer_meta('spip_notifications_filtre_images'); - effacer_meta('spip_notifications_filtre_css'); - effacer_meta('spip_notifications_filtre_iso_8859'); - effacer_meta('spip_notifications_adresse_envoi'); - effacer_meta('spip_notifications_adresse_envoi_nom'); - effacer_meta('spip_notifications_adresse_envoi_email'); - effacer_meta('spip_notifications_version'); - // KEZAKO ? - include_spip('base/abstract_sql'); - sql_drop_table('spip_notifications', true); - } else { - ecrire_meta('facteur_smtp', 'non'); - ecrire_meta('facteur_smtp_auth', 'non'); - ecrire_meta('facteur_smtp_secure', 'non'); - ecrire_meta('facteur_smtp_sender', ''); - ecrire_meta('facteur_filtre_images', 1); - ecrire_meta('facteur_filtre_css', 1); - ecrire_meta('facteur_filtre_iso_8859', 1); - ecrire_meta('facteur_adresse_envoi', 'non'); - } - ecrire_meta($nom_meta_base_version, $current_version=$version_cible); - } - - if (version_compare($current_version,"1.1","<")){ - // version compatible php4 - ecrire_meta($nom_meta_base_version,$current_version="1.1"); - } -} - - -function facteur_vider_tables($nom_meta_base_version) { - // cfg la dessus, ca serait mieux ! - effacer_meta('facteur_version'); - effacer_meta('facteur_smtp'); - effacer_meta('facteur_smtp_auth'); - effacer_meta('facteur_smtp_secure'); - effacer_meta('facteur_smtp_sender'); - effacer_meta('facteur_filtre_images'); - effacer_meta('facteur_filtre_css'); - effacer_meta('facteur_filtre_iso_8859'); - effacer_meta('facteur_adresse_envoi'); - effacer_meta('facteur_adresse_envoi_nom'); - effacer_meta('facteur_adresse_envoi_email'); - effacer_meta($nom_meta_base_version); -} - - - -?> diff --git a/facteur/classes/facteur.php b/facteur/classes/facteur.php deleted file mode 100644 index 694269b..0000000 --- a/facteur/classes/facteur.php +++ /dev/null @@ -1,476 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - -include_spip('inc/charsets'); -include_spip('inc/filtres'); - -if (intval(phpversion()) == 5) { - include_spip('phpmailer-php5/class.phpmailer'); - include_spip('phpmailer-php5/class.smtp'); -} else { - include_spip('phpmailer-php4/class.phpmailer'); - include_spip('phpmailer-php4/class.smtp'); -} -include_spip('facteur_fonctions'); - -class Facteur extends PHPMailer { - - function Facteur($email, $objet, $message_html, $message_texte) { - - if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui' - AND $GLOBALS['meta']['facteur_adresse_envoi_email']) - $this->From = $GLOBALS['meta']['facteur_adresse_envoi_email']; - else - $this->From = $GLOBALS['meta']['email_webmaster']; - - if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui' - AND $GLOBALS['meta']['facteur_adresse_envoi_nom']) - $this->FromName = $GLOBALS['meta']['facteur_adresse_envoi_nom']; - else - $this->FromName = strip_tags(extraire_multi($GLOBALS['meta']['nom_site'])); - - $this->CharSet = "utf-8"; - $this->Mailer = 'mail'; - $this->Subject = unicode_to_utf_8(charset2unicode($objet,$GLOBALS['meta']['charset'])); - - //Pour un envoi multiple de mail, $email doit être un tableau avec les adresses. - if (is_array($email)) { - foreach ($email as $cle => $adresseMail) { - $this->AddAddress($adresseMail); - } - } - else - $this->AddAddress($email); - - if (isset($GLOBALS['meta']['facteur_smtp_sender'])) { - $this->Sender = $GLOBALS['meta']['facteur_smtp_sender']; - $this->AddCustomHeader("Errors-To: ".$this->Sender); - } - - if (isset($GLOBALS['meta']['facteur_smtp']) AND $GLOBALS['meta']['facteur_smtp'] == 'oui') { - $this->Mailer = 'smtp'; - $this->Host = $GLOBALS['meta']['facteur_smtp_host']; - $this->Port = $GLOBALS['meta']['facteur_smtp_port']; - if ($GLOBALS['meta']['facteur_smtp_auth'] == 'oui') { - $this->SMTPAuth = true; - $this->Username = $GLOBALS['meta']['facteur_smtp_username']; - $this->Password = $GLOBALS['meta']['facteur_smtp_password']; - } - else { - $this->SMTPAuth = false; - } - if (intval(phpversion()) == 5) { - if ($GLOBALS['meta']['facteur_smtp_secure'] == 'ssl') - $this->SMTPSecure = 'ssl'; - if ($GLOBALS['meta']['facteur_smtp_secure'] == 'tls') - $this->SMTPSecure = 'tls'; - } - } - - if (!empty($message_html)) { - $message_html = unicode_to_utf_8(charset2unicode($message_html,$GLOBALS['meta']['charset'])); - $this->Body = $message_html; - $this->IsHTML(true); - if ($GLOBALS['meta']['facteur_filtre_css']) - $this->ConvertirStylesEnligne(); - if ($GLOBALS['meta']['facteur_filtre_images']) - $this->JoindreImagesHTML(); - $this->UrlsAbsolues(); - } - if (!empty($message_texte)) { - $message_texte = unicode_to_utf_8(charset2unicode($message_texte,$GLOBALS['meta']['charset'])); - if (!$this->Body) { - $this->IsHTML(false); - $this->Body = $message_texte; - } - else { - $this->AltBody = $message_texte; - } - } - - if ($GLOBALS['meta']['facteur_filtre_iso_8859']) - $this->ConvertirUtf8VersIso8859(); - - } - - /* - * Transforme du HTML en texte brut, mais proprement, c'est-à -dire en essayant - * de garder les titrages, les listes, etc - * - * @param string $html Le HTML à transformer - * @return string Retourne un texte brut formaté correctement - */ - function html2text($html){ - // On remplace tous les sauts de lignes par un espace - $html = str_replace("\n", ' ', $html); - - // Supprimer tous les liens internes - $texte = preg_replace("/\<a href=['\"]#(.*?)['\"][^>]*>(.*?)<\/a>/ims", "\\2", $html); - - // Supprime feuille style - $texte = preg_replace(";<style[^>]*>[^<]*</style>;i", "", $texte); - - // Remplace tous les liens - $texte = preg_replace("/\<a[^>]*href=['\"](.*?)['\"][^>]*>(.*?)<\/a>/ims", "\\2 (\\1)", $texte); - - // Les titres - $texte = preg_replace(";<h1[^>]*>;i", "\n= ", $texte); - $texte = str_replace("</h1>", " =\n\n", $texte); - $texte = preg_replace(";<h2[^>]*>;i", "\n== ", $texte); - $texte = str_replace("</h2>", " ==\n\n", $texte); - $texte = preg_replace(";<h3[^>]*>;i", "\n=== ", $texte); - $texte = str_replace("</h3>", " ===\n\n", $texte); - - // Une fin de liste - $texte = preg_replace(";</(u|o)l>;i", "\n\n", $texte); - - // Une saut de ligne *après* le paragraphe - $texte = preg_replace(";<p[^>]*>;i", "\n", $texte); - $texte = preg_replace(";</p>;i", "\n\n", $texte); - // Les sauts de ligne interne - $texte = preg_replace(";<br[^>]*>;i", "\n", $texte); - - //$texte = str_replace('<br /><img class=\'spip_puce\' src=\'puce.gif\' alt=\'-\' border=\'0\'>', "\n".'-', $texte); - $texte = preg_replace (';<li[^>]*>;i', "\n".'- ', $texte); - - - // accentuation du gras - // <b>texte</b> -> **texte** - $texte = preg_replace (';<b[^>]*>;i','**' ,$texte); - $texte = str_replace ('</b>','**' ,$texte); - - // accentuation du gras - // <strong>texte</strong> -> **texte** - $texte = preg_replace (';<strong[^>]*>;i','**' ,$texte); - $texte = str_replace ('</strong>','**' ,$texte); - - - // accentuation de l'italique - // <em>texte</em> -> *texte* - $texte = preg_replace (';<em[^>]*>;i','/' ,$texte); - $texte = str_replace ('</em>','*' ,$texte); - - // accentuation de l'italique - // <i>texte</i> -> *texte* - $texte = preg_replace (';<i[^>]*>;i','/' ,$texte); - $texte = str_replace ('</i>','*' ,$texte); - - $texte = str_replace('œ', 'oe', $texte); - $texte = str_replace(" ", " ", $texte); - $texte = filtrer_entites($texte); - - // On supprime toutes les balises restantes - $texte = supprimer_tags($texte); - - $texte = str_replace("\x0B", "", $texte); - $texte = str_replace("\t", "", $texte) ; - $texte = preg_replace(";[ ]{3,};", "", $texte); - - // espace en debut de ligne - $texte = preg_replace("/(\r\n|\n|\r)[ ]+/", "\n", $texte); - - //marche po - // Bring down number of empty lines to 4 max - $texte = preg_replace("/(\r\n|\n|\r){3,}/m", "\n\n", $texte); - - //saut de lignes en debut de texte - $texte = preg_replace("/^(\r\n|\n|\r)*/", "\n\n", $texte); - //saut de lignes en debut ou fin de texte - $texte = preg_replace("/(\r\n|\n|\r)*$/", "\n\n", $texte); - - // Faire des lignes de 75 caracteres maximum - //$texte = wordwrap($texte); - - return $texte; - } - - /** - * Transformer les urls des liens et des images en url absolues - * sans toucher aux images embarquees de la forme "cid:..." - */ - function UrlsAbsolues(){ - include_spip('inc/filtres_mini'); - if (preg_match_all(',(<(a|link)[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),imsS', - $this->Body, $liens, PREG_SET_ORDER)) { - foreach ($liens as $lien) { - if (strncmp($lien[3],"cid:",4)!==0){ - $abs = url_absolue($lien[3], $base); - if ($abs <> $lien[3] and !preg_match('/^#/',$lien[3])) - $this->Body = str_replace($lien[0], $lien[1].$abs.$lien[4], $this->Body); - } - } - } - if (preg_match_all(',(<(img|script)[[:space:]]+[^<>]*src=["\']?)([^"\' ><[:space:]]+)([^<>]*>),imsS', - $this->Body, $liens, PREG_SET_ORDER)) { - foreach ($liens as $lien) { - if (strncmp($lien[3],"cid:",4)!==0){ - $abs = url_absolue($lien[3], $base); - if ($abs <> $lien[3]) - $this->Body = str_replace($lien[0], $lien[1].$abs.$lien[4], $this->Body); - } - } - } - } - - function JoindreImagesHTML() { - $image_types = array( - 'gif' => 'image/gif', - 'jpg' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'bmp' => 'image/bmp', - 'png' => 'image/png', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'swf' => 'application/x-shockwave-flash' - ); - while (list($key,) = each($image_types)) - $extensions[] = $key; - - preg_match_all('/["\'](([^"\']+)\.('.implode('|', $extensions).'))([?][^"\']+)?["\']/Ui', $this->Body, $images, PREG_SET_ORDER); - - $html_images = array(); - foreach($images as $im){ - if (!preg_match(",^[a-z0-9]+://,i",$im[1]) - AND ($src = $im[1].$im[4]) - AND ( - file_exists($f=$im[1]) // l'image a ete generee depuis le meme cote que l'envoi - OR (_DIR_RACINE AND file_exists($f=_DIR_RACINE.$im[1])) // l'image a ete generee dans le public et on est dans le prive - OR (!_DIR_RACINE AND strncmp($im[1],"../",3)==0 AND file_exists($f=substr($im[1],3))) // l'image a ete generee dans le prive et on est dans le public - ) - AND !isset($html_images[$src])){ - - $extension = strtolower($im[3]); - $header_extension = $image_types[$extension]; - $cid = md5($f); // un id unique pour un meme fichier - // l'ajouter si pas deja present (avec un autre ?...) - if (!in_array($cid,$html_images)) - $this->AddEmbeddedImage($f, $cid, basename($f),'base64',$header_extension); - $this->Body = str_replace($src, "cid:$cid", $this->Body); - $html_images[$src] = $cid; // marquer l'image comme traitee, inutile d'y revenir - } - } - } - - - function ConvertirStylesEnligne() { - /* - - Written by Eric Dols - edols@auditavenue.com - - You may freely use or modify this, provided - you leave credits to the original coder. - Feedback about (un)successfull uses, bugs and improvements done - are much appreciated, but don't expect actual support. - - PURPOSE OF THIS FUNCTION - It is designed to process html emails relying - on a css stylesheet placed in the <head> for layout in - order to enhance compatibility with email clients, - including webmail services. - Provided you use minimal css, you can keep styling separate - from the content in your email template, and let this function - "inject" those styles inline in your email html tags on-the-fly, - just before sending. - Technically, it grabs the style declarations found in the - <head> section and inserts each declaration inline, - inside the corresponding html tags in the email message. - - Supports both HTML and XHTML markup seamlessly. Thus - tolerant to email message writers using non-xhtml tag, - even when template is xhtml compliant (e.g. they would - add <img ...> instead of a xhtml compliant <img ... />). - - NEW 10 dec. 2003: - - code revised, including a few regexp bugs fixed. - - multiple class for a tag are now allowed <p class="firstclass secondclass"> - - all unsupported css styles are now moved to the body section (not just a:hover etc...) - - USE - Add this function to a function library include, like "inline.inc" - and include it near the beginning of your php page: - require ("inline.inc"); - - load the html source of message into a variable - like $html_source and process it using: - $html_source = sheet2inline($html_source) - - - STYLE DEFINITIONS SUPPORTED - TAG { ... } - TAG1, TAG2, ... { ... } - TAG.class { ... } - .class { ...) - TAG:pseudo { ... } - - - CSS definitions may be freely formatted (spaces, tabs, linefeeds...), - they are converted to oneliners before inserting them inline in the html tags. - - .class definitions are processed AFTER tag definitions, - thus appended inline after any existing tag styling to - preserve the normal css priority behavior. - - Existing style="..." attributes in tags are NOT stripped. However they MUST - be with double quotes. If not, an addtional style="..." attribute will be added - - - KNOWN LIMITATIONS - - style info should be placed in <head> section. I believe - it shouldnt be too hard to modify to point to an external - stylesheet instead. - - no support (yet?): - * chains like P UL LI { .... } or P UL LI.class { .... } - * #divname p { ... } and <tag id="..."> - * a:hover, a:visited {...} multiple class:pseudo - They require a significantly more complicated processing likely - based on stylesheet and document trees parsing. - Many email clients don't handle more than what is supported - by this script anyway. - - pseudo-classes like a:hover {...} can't be inserted inline - in the html tags: they are moved to a <style> declaration in - the <body> instead. This is a limitation from html, not this script. - - It is still up to you to check if target email clients render - your css styled templates correctly, especially webmail services - like Hotmail, in which the email becomes a sub-part of an html page, - with styles already in place. - */ - - // variables to be accessed in the callback sub-function too - global $styledefinition, $styletag, $styleclass; - - // Let's first load the stylesheet information in a $styles array using a regexp - preg_match_all ( "/^[ \t]*([.]?)([\w, #]+)([.:])?(\S*)\s+{([^}]+)}/mi", $this->Body , $styles); - /* - $styles[1] = . or '' => .class or tag (empty) - $styles[2] = name of class or tag(s) - $styles[3] = : . or '' => followed by pseudo-element, class separator or nothing (empty) - $styles[4] = name of pseudo-element after a tag, if any - $styles[5] = the style definition itself, i.e. what's between the { } - */ - - // Now loop through the styles found and act accordingly; - - // process TAG {...} & TAG1, TAG2,... {...} definitions only first by order of appearance - foreach ($styles[1] as $i => $type) { - if ($type=="" && $styles[3][$i]=="") { - $styledefinition = trim($styles[5][$i]); - $styletag = preg_replace("/ *, */", "|", trim($styles[2][$i])); //echo $styletag."<br />"; - $styleclass = ""; - // process TAG {...} and TAG1, TAG2 {...} but not TAG1 TAG2 {...} or #divname styles - if (!preg_match("/ /", $styletag) && !preg_match("/#/", $styletag)) { - $pattern = "!<(".$styletag.")([^>]*(?= /)|[^>]*)( /)?>!mi"; - $this->Body = preg_replace_callback ($pattern, 'facteur_addstyle' , $this->Body); - $styles[6][$i]=1; // mark as injected inline - } - } - } - - // append additional .CLASS {...} and TAG.CLASS {...} styling by order of appearance - // important to do so after TAG {...} definitions, so that class attributes override TAG styles when needed - foreach ($styles[1] as $i => $type) { - if ($type!="." && $styles[3][$i]=="." ) { // class definition for a specific tag - $styledefinition = trim($styles[5][$i]); - $styletag = trim($styles[2][$i]); - $styleclass = trim($styles[4][$i]); - $pattern = "!<(".$styletag.")([^>]* class\=['\"][^'\"]*".$styleclass."[^'\"]*['\"][^>]*(?= /)|[^>]* class\=['\"][^'\"]*".$styleclass."[^'\"]*['\"][^>]*)( />)?>!mi"; - $this->Body = preg_replace_callback ($pattern, 'facteur_addstyle' , $this->Body); - $styles[6][$i]=1; // mark as injected inline - - } - elseif ($type=="." && $styles[3][$i]=="" ) { // general class definition for any tag - $styledefinition = trim($styles[5][$i]); - $styletag = ""; - $styleclass = trim($styles[2][$i]); - $pattern = "!<(\w+)([^>]* class\=['\"]".$styleclass."['\"][^>]*(?= /)|[^>]* class\=['\"]".$styleclass."['\"][^>]*)( />)?>!mi"; - $this->Body = preg_replace_callback ($pattern, 'facteur_addstyle' , $this->Body); - $styles[6][$i]=1; // mark as injected inline - } - } - - - /* move all style declarations that weren't injected from <head> to a <body> <style> section, - including but not limited to: - - pseudo-classes like a:hover {...} as they can't be set inline - - declaration chains like UL LI {...} - - #divname {...}. These are not supported by email clients like Mac/Entourage anyway, it seems. */ - foreach ($styles[1] as $i => $type) { - if ($styles[6][$i]=="") { - // add a <style type="text/css"> section after <body> if there's isn't one yet - if (preg_match ("!<body[^>]*>\s*<style!mi", $this->Body)==0) { - $this->Body = preg_replace ("/(<body[^>]*>)/i", "\n\$1\n".'<style type="text/css">'."\n<!--\n-->\n</style>\n", $this->Body); - } - // append a copy of the pseudo-element declaration to that body style section - $styledefinition = trim($styles[5][$i]); - $styledefinition = preg_replace ("!\s+!mi", " ", $styledefinition ); // convert style definition to a one-liner (optional) - $declaration = $styles[1][$i].trim($styles[2][$i]).$styles[3][$i].trim($styles[4][$i])." { ".$styledefinition." }"; - $this->Body = preg_replace ("!(<body[^>]*>\s*<style[^>]*>\s*<\!\-\-[^>]*)"."(\s*\-\->\s*</style>)!si", "\$1".$declaration."\n\$2", $this->Body); - $styles[6][$i]= 2; // mark as moved to <style> section in <body> - } - } - - // remove stylesheet declaration(s) from <head> section (comment following line out if not wanted) - //$this->Body = preg_replace ("!(<head>.*)<style type.*</style>(.*</head>)!si", "\$1\$2" , $this->Body); - - // check what styles have been injected -# print_r($styles); - - } - - - function safe_utf8_decode($text,$mode='texte_brut') { - if (!is_utf8($text)) - return ($text); - - if (function_exists('iconv') && $mode == 'texte_brut') { - return iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text); - } - else { - if ($mode == 'texte_brut') - $text = str_replace('’',"'",$text); - return unicode2charset(utf_8_to_unicode($text),'iso-8859-1'); - } - } - - function ConvertirUtf8VersIso8859() { - $this->CharSet = 'iso-8859-1'; - $this->Body = str_replace('charset=utf-8', 'charset=iso-8859-1', $this->Body); - $this->Body = $this->safe_utf8_decode($this->Body,'html'); - $this->AltBody = $this->safe_utf8_decode($this->AltBody); - $this->Subject = $this->safe_utf8_decode($this->Subject); - $this->FromName = $this->safe_utf8_decode($this->FromName); - } - - function ConvertirAccents() { - // tableau à compléter au fur et à mesure - $cor = array( - 'à ' => 'à', - 'â' => 'â', - 'ä' => 'ä', - 'ç' => 'ç', - 'é' => 'é', - 'è' => 'è', - 'ê' => 'ê', - 'ë' => 'ë', - 'î' => 'î', - 'ï' => 'ï', - 'ò' => 'ò', - 'ô' => 'ô', - 'ö' => 'ö', - 'ù' => 'ù', - 'û' => 'û', - 'Å“' => 'œ', - '€' => '€' - ); - - $this->Body = strtr($this->Body, $cor); - } - -} - -?> diff --git a/facteur/emails/css.html b/facteur/emails/css.html deleted file mode 100644 index ace3aa9..0000000 --- a/facteur/emails/css.html +++ /dev/null @@ -1,63 +0,0 @@ -<style type="text/css" media="screen"> -.faux_body { - background-color: #fff; - font-size: 12px; - font-family: verdana, sans-serif; -} - -.titre { - text-align: center; - color: #000; - font-size: 24px; -} - -h2 { - font-size: 18px; -} - -h3 { - font-size: 16px; - clear: both; -} - -a { - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -a:visited { -} - -.spip_documents_left { - float: left; - margin-right: 10px; -} - -.spip_documents_center { - display: block; - text-align: center; - margin: 10px 0; -} - -.spip_documents_right { - float: right; - margin-left: 10px; -} - -.petit { - padding-top: 20px; - text-align: center; - font-size: 10px; -} - -ul { - clear: both; -} - -.invisible { - color: #eee; -} -</style> \ No newline at end of file diff --git a/facteur/emails/inc-bas.html b/facteur/emails/inc-bas.html deleted file mode 100644 index b8a8c19..0000000 --- a/facteur/emails/inc-bas.html +++ /dev/null @@ -1,22 +0,0 @@ -</td> -<td width="20" style="background-color: #fff;"> </td> -</tr> -[<tr> -<td colspan="3" width="580" style="background-color: #fff;"><a href="#URL_SITE_SPIP" title="[(#DESCRIPTIF_SITE_SPIP|textebrut)]"><img src="(#LOGO_NOTIFICATION_SURVOL||extraire_attribut{src})" alt="[(#NOM_SITE_SPIP|textebrut)]" border="0" width="[(#LOGO_NOTIFICATION_SURVOL||extraire_attribut{width})]" height="[(#LOGO_NOTIFICATION_SURVOL||extraire_attribut{height})]" /></a></td> -</tr> -]<tr> -<td colspan="3" width="580" height="20"> </td> -</tr> -</table> - - -</center> - - -</div><!-- fin faux_body --> - - -</body> - - -</html> \ No newline at end of file diff --git a/facteur/emails/inc-haut.html b/facteur/emails/inc-haut.html deleted file mode 100644 index 21f4ee1..0000000 --- a/facteur/emails/inc-haut.html +++ /dev/null @@ -1,31 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" dir="#LANG_DIR" xml:lang="#LANG" lang="#LANG"> - - -<head> -<meta http-equiv="content-type" content="text/html; charset=#CHARSET" /> -<meta name="language" content="#LANG" /> -<INCLURE {fond=emails/css}> -</head> - - -<body> - - -<div class="faux_body"> - - -<center> - - -<table border="0" cellspacing="0" cellpadding="0"> -<tr> -<td colspan="3" width="580" height="10"> </td> -</tr> -[<tr> -<td colspan="3" width="580" style="background-color: #fff; text-align: center;"><a class="titre" href="#URL_SITE_SPIP" title="[(#DESCRIPTIF_SITE_SPIP|textebrut)]"><img class="titre" src="(#LOGO_NOTIFICATION_NORMAL||extraire_attribut{src})" alt="[(#NOM_SITE_SPIP|textebrut)]" border="0" width="[(#LOGO_NOTIFICATION_NORMAL||extraire_attribut{width})]" height="[(#LOGO_NOTIFICATION_NORMAL||extraire_attribut{height})]" /></a></td> -</tr> -]<tr> -<td width="20" style="background-color: #fff;"> </td> -<td width="540" style="background-color: #fff;"> diff --git a/facteur/emails/test_email_html.html b/facteur/emails/test_email_html.html deleted file mode 100644 index 3b5bbf1..0000000 --- a/facteur/emails/test_email_html.html +++ /dev/null @@ -1,28 +0,0 @@ -#HTTP_HEADER{Content-Type:text/html} -#INCLURE{fond=emails/inc-haut} - -<h2><:facteur:corps_email_de_test:></h2> - -<p><:facteur:version_html:></p> - -<BOUCLE_art(ARTICLES){texte==<img}{0,1}> - #TEXTE - <hr /> - #NOTES -</BOUCLE_art> - <BOUCLE_art2(ARTICLES){0,1}> - #TEXTE - <hr /> - #NOTES - </BOUCLE_art2> -<//B_art> - -<BOUCLE_image(DOCUMENTS){extension IN jpg,png,gif}{0,1}> - #MODELE{img} -</BOUCLE_image> - -<BOUCLE_pdf(DOCUMENTS){extension=pdf}{0,1}> - #MODELE{doc} -</BOUCLE_pdf> - -#INCLURE{fond=emails/inc-bas} \ No newline at end of file diff --git a/facteur/emails/test_email_texte.html b/facteur/emails/test_email_texte.html deleted file mode 100644 index e8953af..0000000 --- a/facteur/emails/test_email_texte.html +++ /dev/null @@ -1,12 +0,0 @@ -<:facteur:corps_email_de_test:> --------------------------------- - -<:facteur:version_texte:> - -<BOUCLE_art(ARTICLES){texte==<img}{0,1}> - [(#TEXTE|textebrut)] -</BOUCLE_art> - <BOUCLE_art2(ARTICLES){0,1}> - [(#TEXTE|textebrut)] - </BOUCLE_art2> -<//B_art> diff --git a/facteur/exec/facteur.php b/facteur/exec/facteur.php deleted file mode 100644 index ce1bbf9..0000000 --- a/facteur/exec/facteur.php +++ /dev/null @@ -1,49 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - -if (!defined("_ECRIRE_INC_VERSION")) return; -include_spip('inc/presentation'); -include_spip('inc/config'); -include_spip('inc/meta'); -include_spip('classes/facteur'); - - -function exec_facteur() { - - if (!autoriser('configurer', 'facteur')) { - include_spip('inc/minipres'); - echo minipres(); - exit; - } - - pipeline('exec_init',array('args'=>array('exec'=>'facteur'),'data'=>'')); - - $commencer_page = charger_fonction('commencer_page', 'inc'); - echo $commencer_page(_T('titre_configuration'), "configuration", "configuration"); - - echo "<br /><br /><br />\n"; - echo gros_titre(_T('titre_configuration'),'',false); - echo barre_onglets("configuration", "facteur"); - - echo debut_gauche('', true); - - echo pipeline('affiche_gauche',array('args'=>array('exec'=>'facteur'),'data'=>'')); - - echo debut_droite('', true); - - echo pipeline('affiche_milieu', array('args'=>array('exec'=>'facteur'), - 'data'=>recuperer_fond("prive/configurer_facteur", $_GET))); - - echo fin_gauche(); - - echo fin_page(); - -} - - -?> \ No newline at end of file diff --git a/facteur/facteur_fonctions.php b/facteur/facteur_fonctions.php deleted file mode 100644 index b6b731e..0000000 --- a/facteur/facteur_fonctions.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - - -include_spip('inc/texte'); -include_spip('classes/facteur'); - - -/** - * facteur_addstyle - * - * @author Eric Dols - **/ -function facteur_addstyle($matches) { - - // $matches[1]=tag, $matches[2]=tag attributes (if any), $matches[3]=xhtml closing (if any) - - // variables values set in calling function - global $styledefinition, $styletag, $styleclass; - - // convert the style definition to a one-liner - $styledefinition = preg_replace ("!\s+!mi", " ", $styledefinition ); - // convert all double-quotes to single-quotes - $styledefinition = preg_replace ('/"/','\'', $styledefinition ); - - if (preg_match ("/style\=/i", $matches[2])) { - // add styles to existing style attribute if any already in the tag - $pattern = "!(.* style\=)[\"]([^\"]*)[\"](.*)!mi"; - $replacement = "\$1".'"'."\$2 ".$styledefinition.'"'."\$3"; - $attributes = preg_replace ($pattern, $replacement , $matches[2]); - } else { - // otherwise add new style attribute to tag (none was present) - $attributes = $matches[2].' style="'.$styledefinition.'"'; - } - - if ($styleclass!="") { - // if we were injecting a class style, remove the now useless class attribute from the html tag - - // Single class in tag case (class="classname"): remove class attribute altogether - $pattern = "!(.*) class\=['\"]".$styleclass."['\"](.*)!mi"; - $replacement = "\$1\$2"; - $attributes = preg_replace ( $pattern, $replacement, $attributes); - - // Multiple classes in tag case (class="classname anotherclass..."): remove class name from class attribute. - // classes are injected inline and removed by order of appearance in <head> stylesheet - // exact same behavior as where last declared class attributes in <style> take over (IE6 tested only) - $pattern = "!(.* class\=['\"][^\"]*)(".$styleclass." | ".$styleclass.")([^\"]*['\"].*)!mi"; - $replacement = "\$1\$3"; - $attributes = preg_replace ( $pattern, $replacement, $attributes); - - } - - return "<".$matches[1].$attributes.$matches[3].">"; -} - - -?> diff --git a/facteur/formulaires/configurer_facteur.html b/facteur/formulaires/configurer_facteur.html deleted file mode 100644 index d914d8f..0000000 --- a/facteur/formulaires/configurer_facteur.html +++ /dev/null @@ -1,177 +0,0 @@ -<div class="formulaire_spip formulaire_configurer formulaire_#FORM"> - <h3 class="titrem"><:facteur:configuration_facteur:></h3> - [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] - [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] - - [(#ENV{tester,''}|oui) - <iframe style='width:95%;height:500px;margin:10px;' src='#URL_PAGE{emails/test_email_html,var_mode=calcul}'></iframe> - ] - <form method="post" action="#ENV{action}"><div> - #ACTION_FORMULAIRE{#ENV{action}} - <ul> - <li class="fieldset"> - <fieldset> - <legend><:facteur:configuration_adresse_envoi:></legend> - <ul> - <li class="editer_facteur_adresse_envoi [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi}|oui)erreur]"> - [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi})</span>] - <div class="choix"> - <input type="radio" name="facteur_adresse_envoi" class="radio" value="non" id="facteur_adresse_envoi_non"[(#ENV{facteur_adresse_envoi,'non'}|=={non}|oui)checked="checked"]/> - <label for="facteur_adresse_envoi_non"><:facteur:utiliser_reglages_site:></label> - </div> - <div class="choix"> - <input type="radio" name="facteur_adresse_envoi" class="radio" value="oui" id="facteur_adresse_envoi_oui"[(#ENV{facteur_adresse_envoi,'non'}|=={oui}|oui)checked="checked"]/> - <label for="facteur_adresse_envoi_oui"><:facteur:personnaliser:></label> - </div> - </li> - <li class="editer_facteur_adresse_envoi_perso editer_facteur_adresse_envoi_nom [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_nom}|oui)erreur]"[(#ENV{facteur_adresse_envoi,'non'}|=={non}|oui)style='display:none;']> - <label for="facteur_adresse_envoi_nom"><:facteur:facteur_adresse_envoi_nom:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_nom})</span>] - <input type="text" name="facteur_adresse_envoi_nom" class="text" value="#ENV**{facteur_adresse_envoi_nom}" id="facteur_adresse_envoi_nom" /> - </li> - <li class="editer_facteur_adresse_envoi_perso editer_facteur_adresse_envoi_email [ (#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_email}|oui)erreur]"[(#ENV{facteur_adresse_envoi,'non'}|=={non}|oui)style='display:none;']> - <label for="facteur_adresse_envoi_email"><:facteur:facteur_adresse_envoi_email:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_adresse_envoi_email})</span>] - <input type="text" name="facteur_adresse_envoi_email" class="text" value="#ENV**{facteur_adresse_envoi_email}" id="facteur_adresse_envoi_email" /> - </li> - </ul> - </fieldset> - </li> - <li class="fieldset"> - <fieldset> - <legend><:facteur:configuration_mailer:></legend> - <ul> - <li class="editer_facteur_smtp [ (#ENV**{erreurs}|table_valeur{facteur_smtp}|oui)erreur]"> - <label><:facteur:configuration_smtp:></label> - <p class="explication"><:facteur:configuration_smtp_descriptif:></p> - [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp})</span>] - <div class="choix"> - <input type="radio" name="facteur_smtp" class="radio" value="non" id="facteur_smtp_non"[(#ENV{facteur_smtp,'non'}|=={non}|oui)checked="checked"]/> - <label for="facteur_smtp_non"><:facteur:utiliser_mail:></label> - </div> - <div class="choix"> - <input type="radio" name="facteur_smtp" class="radio" value="oui" id="facteur_smtp_oui"[(#ENV{facteur_smtp,'non'}|=={oui}|oui)checked="checked"]/> - <label for="facteur_smtp_oui"><:facteur:utiliser_smtp:></label> - </div> - </li> - <li class="editer_facteur_smtp_param editer_facteur_smtp_host [ (#ENV**{erreurs}|table_valeur{facteur_smtp_host}|oui)erreur]"[(#ENV{facteur_smtp,'non'}|=={non}|oui)style='display:none;']> - <label for="facteur_smtp_host"><:facteur:facteur_smtp_host:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_host})</span>] - <input type="text" name="facteur_smtp_host" class="text" value="#ENV**{facteur_smtp_host}" id="facteur_smtp_host" /> - </li> - <li class="editer_facteur_smtp_param editer_facteur_smtp_port [ (#ENV**{erreurs}|table_valeur{facteur_smtp_port}|oui)erreur]"[(#ENV{facteur_smtp,'non'}|=={non}|oui)style='display:none;']> - <label for="facteur_smtp_port"><:facteur:facteur_smtp_port:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_port})</span>] - <input type="text" name="facteur_smtp_port" class="text" value="#ENV**{facteur_smtp_port}" id="facteur_smtp_port" /> - </li> - <li class="editer_facteur_smtp_param editer_facteur_smtp_auth [ (#ENV**{erreurs}|table_valeur{facteur_smtp_auth}|oui)erreur]"[(#ENV{facteur_smtp,'non'}|=={non}|oui)style='display:none;']> - <label><:facteur:facteur_smtp_auth:></label> - [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_auth})</span>] - <div class="choix"> - <input type="radio" name="facteur_smtp_auth" class="radio" value="non" id="facteur_smtp_auth_non"[(#ENV{facteur_smtp_auth,'non'}|=={non}|oui)checked="checked"]/> - <label for="facteur_smtp_auth_non"><:facteur:facteur_smtp_auth_non:></label> - </div> - <div class="choix"> - <input type="radio" name="facteur_smtp_auth" class="radio" value="oui" id="facteur_smtp_auth_oui"[(#ENV{facteur_smtp_auth,'non'}|=={oui}|oui)checked="checked"]/> - <label for="facteur_smtp_auth_oui"><:facteur:facteur_smtp_auth_oui:></label> - </div> - <ul id="smtp-auth"[(#ENV{facteur_smtp_auth,'non'}|=={non}|oui)style='display:none;']> - <li class="editer_facteur_smtp_username [ (#ENV**{erreurs}|table_valeur{facteur_smtp_username}|oui)erreur]"> - <label for="facteur_smtp_username"><:facteur:facteur_smtp_username:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_username})</span>] - <input type="text" name="facteur_smtp_username" class="text" value="#ENV**{facteur_smtp_username}" id="facteur_smtp_username" /> - </li> - <li class="editer_facteur_smtp_password [ (#ENV**{erreurs}|table_valeur{facteur_smtp_password}|oui)erreur]"> - <label for="facteur_smtp_password"><:facteur:facteur_smtp_password:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_password})</span>] - <input type="password" name="facteur_smtp_password" class="text" value="#ENV**{facteur_smtp_password}" id="facteur_smtp_password" /> - </li> - </ul> - </li> - [(#ENV{_enable_smtp_secure}|oui) - <li class="editer_facteur_smtp_param editer_facteur_smtp_secure [ (#ENV**{erreurs}|table_valeur{facteur_smtp_secure}|oui)erreur]"[(#ENV{facteur_smtp,'non'}|=={non}|oui)style='display:none;']> - <label><:facteur:facteur_smtp_secure:></label> - [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_secure})</span>] - <div class="choix"> - <input type="radio" name="facteur_smtp_secure" class="radio" value="non" id="facteur_smtp_secure_non"[(#ENV{facteur_smtp_secure,'non'}|=={non}|oui)checked="checked"]/> - <label for="facteur_smtp_secure_non"><:facteur:facteur_smtp_secure_non:></label> - </div> - <div class="choix"> - <input type="radio" name="facteur_smtp_secure" class="radio" value="ssl" id="facteur_smtp_secure_ssl"[(#ENV{facteur_smtp_secure,'non'}|=={ssl}|oui)checked="checked"]/> - <label for="facteur_smtp_secure_ssl"><:facteur:facteur_smtp_secure_ssl:></label> - </div> - <div class="choix"> - <input type="radio" name="facteur_smtp_secure" class="radio" value="tls" id="facteur_smtp_secure_tls"[(#ENV{facteur_smtp_secure,'non'}|=={tls}|oui)checked="checked"]/> - <label for="facteur_smtp_secure_tls"><:facteur:facteur_smtp_secure_tls:></label> - </div> - </li>] - <li class="editer_facteur_smtp_sender [ (#ENV**{erreurs}|table_valeur{facteur_smtp_sender}|oui)erreur]"> - <label for="facteur_smtp_sender"><:facteur:facteur_smtp_sender:></label>[ - <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_sender})</span>] - <p class="explication"><:facteur:facteur_smtp_sender_descriptif:></p> - <input type="text" name="facteur_smtp_sender" class="text" value="#ENV**{facteur_smtp_sender}" id="facteur_smtp_sender" /> - </li> - </ul> - </fieldset> - </li> - <li class="fieldset"> - <fieldset> - <legend><:facteur:facteur_filtres:></legend> - <ul> - <li class="editer_facteur_filtres[ (#ENV**{erreurs}|table_valeur{facteur_filtres}|oui)erreur]"> - <label><:facteur:facteur_smtp_secure:></label> - [<span class='erreur_message'>(#ENV**{erreurs}|table_valeur{facteur_smtp_secure})</span>] - <p class="explication"><:facteur:facteur_filtres_descriptif:></p> - <div class="choix"> - <input type="checkbox" name="facteur_filtre_images" class="checkbox" value="1" id="facteur_filtre_images"[(#ENV{facteur_filtre_images,''}|=={1}|oui)checked="checked"]/> - <label for="facteur_filtre_images"><:facteur:facteur_filtre_images:></label> - </div> - <div class="choix"> - <input type="checkbox" name="facteur_filtre_css" class="checkbox" value="1" id="facteur_filtre_css"[(#ENV{facteur_filtre_css,''}|=={1}|oui)checked="checked"]/> - <label for="facteur_filtre_css"><:facteur:facteur_filtre_css:></label> - </div> - <div class="choix"> - <input type="checkbox" name="facteur_filtre_iso_8859" class="checkbox" value="1" id="facteur_filtre_iso_8859"[(#ENV{facteur_filtre_iso_8859,''}|=={1}|oui)checked="checked"]/> - <label for="facteur_filtre_iso_8859"><:facteur:facteur_filtre_iso_8859:></label> - </div> - </li> - </ul> - </fieldset> - </li> - </ul> - <p class="boutons"> - <input type="submit" name="valider" class="submit" value="<:valider:>" /> - </p> - <h3 class="titrem"><:facteur:tester_la_configuration:></h3> - <p class="explication"><:facteur:note_test_configuration:></p> - <p class="boutons"> - <input type="submit" name="tester" class="submit" value="<:facteur:tester:>" /> - </p> - - </div></form> -</div> -<script type="text/javascript"> -jQuery(function(){ - jQuery('input[name=facteur_adresse_envoi]').change(function(){ - if (jQuery(this).attr('value')=='oui') - jQuery('.editer_facteur_adresse_envoi_perso').show('fast'); - else - jQuery('.editer_facteur_adresse_envoi_perso').hide('fast'); - }); - jQuery('input[name=facteur_smtp]').change(function(){ - if (jQuery(this).attr('value')=='oui') - jQuery('.editer_facteur_smtp_param').show('fast'); - else - jQuery('.editer_facteur_smtp_param').hide('fast'); - }); - jQuery('input[name=facteur_smtp_auth]').change(function(){ - if (jQuery(this).attr('value')=='oui') - jQuery('#smtp-auth').show('fast'); - else - jQuery('#smtp-auth').hide('fast'); - }); - - - -}) -</script> diff --git a/facteur/formulaires/configurer_facteur.php b/facteur/formulaires/configurer_facteur.php deleted file mode 100644 index d092120..0000000 --- a/facteur/formulaires/configurer_facteur.php +++ /dev/null @@ -1,150 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - - -function formulaires_configurer_facteur_charger_dist(){ - $valeurs = array( - 'facteur_adresse_envoi' => $GLOBALS['meta']['facteur_adresse_envoi'], - 'facteur_adresse_envoi_nom' => $GLOBALS['meta']['facteur_adresse_envoi_nom'], - 'facteur_adresse_envoi_email' => $GLOBALS['meta']['facteur_adresse_envoi_email'], - 'facteur_smtp' => $GLOBALS['meta']['facteur_smtp'], - 'facteur_smtp_host' => $GLOBALS['meta']['facteur_smtp_host'], - 'facteur_smtp_port' => $GLOBALS['meta']['facteur_smtp_port']?$GLOBALS['meta']['facteur_smtp_port']:'25', - 'facteur_smtp_auth' => $GLOBALS['meta']['facteur_smtp_auth'], - 'facteur_smtp_username' => $GLOBALS['meta']['facteur_smtp_username'], - 'facteur_smtp_password' => $GLOBALS['meta']['facteur_smtp_password'], - 'facteur_smtp_secure' => $GLOBALS['meta']['facteur_smtp_secure'], - 'facteur_smtp_sender' => $GLOBALS['meta']['facteur_smtp_sender'], - 'facteur_filtre_images' => $GLOBALS['meta']['facteur_filtre_images'], - 'facteur_filtre_css' => $GLOBALS['meta']['facteur_filtre_css'], - 'facteur_filtre_iso_8859' => $GLOBALS['meta']['facteur_filtre_iso_8859'], - '_enable_smtp_secure' => (intval(phpversion()) == 5)?' ':'', - 'tester' => '', - ); - - return $valeurs; -} - -function formulaires_configurer_facteur_verifier_dist(){ - $erreurs = array(); - if ($email = _request('facteur_adresse_envoi_email') - AND !email_valide($email)) { - $erreurs['facteur_adresse_envoi_email'] = _T('form_email_non_valide'); - set_request('facteur_adresse_envoi','oui'); - } - if (_request('facteur_smtp')=='oui'){ - if (!($h=_request('facteur_smtp_host'))) - $erreurs['facteur_smtp_host'] = _T('info_obligatoire'); - else { - $long = ip2long($h); // cas ou on a rentre une ip directe - if ($long == false OR $long == -1){ // ce n'est pas une IP - if(!preg_match(';^([^.\s/?:]+[.]){0,2}[^.\s/?:]+$;',$h) - OR gethostbyname($h)==$h) - $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host'); - } - else { - if (gethostbyaddr($h)==$h) - $erreurs['facteur_smtp_host'] = _T('facteur:erreur_invalid_host'); - } - } - if (!($p=_request('facteur_smtp_port'))) - $erreurs['facteur_smtp_port'] = _T('info_obligatoire'); - elseif(!preg_match(';^[0-9]+$;',$p) OR !intval($p)) - $erreurs['facteur_smtp_port'] = _T('facteur:erreur_invalid_port'); - - if (!_request('facteur_smtp_auth')) - $erreurs['facteur_smtp_auth'] = _T('info_obligatoire'); - - if (_request('facteur_smtp_auth')=='oui'){ - if (!_request('facteur_smtp_username')) - $erreurs['facteur_smtp_username'] = _T('info_obligatoire'); - if (!_request('facteur_smtp_password')) - $erreurs['facteur_smtp_password'] = _T('info_obligatoire'); - } - } - return $erreurs; -} - -function formulaires_configurer_facteur_traiter_dist(){ - include_spip('inc/meta'); - - $facteur_adresse_envoi = _request('facteur_adresse_envoi'); - ecrire_meta('facteur_adresse_envoi', ($facteur_adresse_envoi=='oui')?'oui':'non'); - - $facteur_adresse_envoi_nom = _request('facteur_adresse_envoi_nom'); - ecrire_meta('facteur_adresse_envoi_nom', $facteur_adresse_envoi_nom?$facteur_adresse_envoi_nom:''); - - $facteur_adresse_envoi_email = _request('facteur_adresse_envoi_email'); - ecrire_meta('facteur_adresse_envoi_email', $facteur_adresse_envoi_email?$facteur_adresse_envoi_email:''); - - $facteur_smtp = _request('facteur_smtp'); - ecrire_meta('facteur_smtp', ($facteur_smtp=='oui')?'oui':'non'); - - $facteur_smtp_host = _request('facteur_smtp_host'); - ecrire_meta('facteur_smtp_host', $facteur_smtp_host?$facteur_smtp_host:''); - - $facteur_smtp_port = _request('facteur_smtp_port'); - ecrire_meta('facteur_smtp_port', strlen($facteur_smtp_port)?intval($facteur_smtp_port):''); - - $facteur_smtp_auth = _request('facteur_smtp_auth'); - ecrire_meta('facteur_smtp_auth', ($facteur_smtp_auth=='oui')?'oui':'non'); - - $facteur_smtp_username = _request('facteur_smtp_username'); - ecrire_meta('facteur_smtp_username', $facteur_smtp_username); - - $facteur_smtp_password = _request('facteur_smtp_password'); - ecrire_meta('facteur_smtp_password', $facteur_smtp_password); - - if (intval(phpversion()) == 5) { - $facteur_smtp_secure = _request('facteur_smtp_secure'); - ecrire_meta('facteur_smtp_secure', in_array($facteur_smtp_secure,array('non','ssl','tls'))?$facteur_smtp_secure:'non'); - } - - $facteur_smtp_sender = _request('facteur_smtp_sender'); - ecrire_meta('facteur_smtp_sender', $facteur_smtp_sender); - - ecrire_meta('facteur_filtre_images', intval(_request('facteur_filtre_images'))); - ecrire_meta('facteur_filtre_css', intval(_request('facteur_filtre_css'))); - ecrire_meta('facteur_filtre_iso_8859', intval(_request('facteur_filtre_iso_8859'))); - - $res = array('message_ok'=>_T('facteur:config_info_enregistree')); - - // faut-il envoyer un message de test ? - if (_request('tester')){ - - if ($GLOBALS['meta']['facteur_adresse_envoi'] == 'oui' - AND $GLOBALS['meta']['facteur_adresse_envoi_email']) - $destinataire = $GLOBALS['meta']['facteur_adresse_envoi_email']; - else - $destinataire = $GLOBALS['meta']['email_webmaster']; - - if (($e=facteur_envoyer_mail_test($destinataire,_T('facteur:corps_email_de_test')))===true){ - // OK - $res = array('message_ok'=>_T('facteur:email_test_envoye')); - } - else { - // erreur - $res = array('message_erreur'=>_T('facteur:erreur')." $e"); - } - } - - return $res; -} - -function facteur_envoyer_mail_test($destinataire,$titre){ - include_spip('classes/facteur'); - $message_html = recuperer_fond('emails/test_email_html', array()); - $message_texte = recuperer_fond('emails/test_email_texte', array()); - - $facteur = new Facteur($destinataire, $titre, $message_html, $message_texte); - if (!$facteur->Send()) - return $test->ErrorInfo; - else - return true; -} -?> \ No newline at end of file diff --git a/facteur/inc/envoyer_mail.php b/facteur/inc/envoyer_mail.php deleted file mode 100644 index af4ab1a..0000000 --- a/facteur/inc/envoyer_mail.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - - -include_spip('classes/facteur'); -// inclure le fichier natif de SPIP, pour les fonctions annexes -include_once _DIR_RESTREINT."inc/envoyer_mail.php"; - -function inc_envoyer_mail($destinataire, $sujet, $corps, $from = "", $headers = "") { - $message_html = ''; - $message_texte = ''; - - // si $corps est un tableau -> fonctionnalites etendues - // avec entrees possible : html, texte, pieces_jointes, nom_envoyeur - if (is_array($corps)) { - $message_html = $corps['html']; - $message_texte = nettoyer_caracteres_mail($corps['texte']); - $pieces_jointes = $corps['pieces_jointes']; - $nom_envoyeur = $corps['nom_envoyeur']; - } - // si $corps est une chaine -> compat avec la fonction native SPIP - // gerer le cas ou le corps est du html avec un Content-Type: text/html dans les headers - else { - if (preg_match(',Content-Type:\s*text/html,ims',$headers)){ - $message_html = $corps; - } - else { - $message_texte = nettoyer_caracteres_mail($corps); - } - } - $sujet = nettoyer_titre_email($sujet); - // mode TEST : forcer l'email - if (defined('_TEST_EMAIL_DEST')) { - if (!_TEST_EMAIL_DEST) - return false; - else - $destinataire = _TEST_EMAIL_DEST; - } - - $facteur = new Facteur($destinataire, $sujet, $message_html, $message_texte); - if (!empty($from)) - $facteur->From = $from; - if ($nom_envoyeur) - $facteur->FromName = $nom_envoyeur; - if (count($pieces_jointes)) { - foreach ($pieces_jointes as $piece) { - $facteur->AddAttachment($piece['chemin'], $piece['nom'], $piece['encodage'], $piece['mime']); - } - } - $head = $facteur->CreateHeader(); - spip_log("mail via facteur\n$head\n",'mail'); - spip_log("mail\n$head\n",'facteur'); - return $facteur->Send(); -} - - -?> diff --git a/facteur/inc/facteur_autorisations.php b/facteur/inc/facteur_autorisations.php deleted file mode 100644 index 19ef082..0000000 --- a/facteur/inc/facteur_autorisations.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - - -function facteur_autoriser() {} - - -function autoriser_facteur_dist($faire, $type, $id, $qui, $opt) { - switch ($faire) { - case 'onglet': - case 'configurer': - case 'editer': - return ($qui['statut'] == '0minirezo'); - break; - default: - return false; - break; - } -} - -?> \ No newline at end of file diff --git a/facteur/inc/facteur_classes.php b/facteur/inc/facteur_classes.php deleted file mode 100644 index 5ebee4d..0000000 --- a/facteur/inc/facteur_classes.php +++ /dev/null @@ -1,15 +0,0 @@ -<?php -/* - * Plugin Facteur - * (c) 2009-2010 Collectif SPIP - * Distribue sous licence GPL - * - */ - -/* - * Compatibilite avec plugins faisant un appel direct a ce fichier - */ -include_spip('classes/facteur'); - - -?> \ No newline at end of file diff --git a/facteur/lang/facteur_en.php b/facteur/lang/facteur_en.php deleted file mode 100644 index cc50302..0000000 --- a/facteur/lang/facteur_en.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -$GLOBALS[$GLOBALS['idx_lang']] = array( - -'configuration_facteur' => 'Postman', -'configuration_adresse_envoi' => "Sender's address", -'utiliser_reglages_site' => "Use the site's settings : the email address is the webmaster's one and the name of the website is the name of the sender", -'personnaliser' => "Customize", -'facteur_adresse_envoi_nom' => "Name :", -'facteur_adresse_envoi_email' => "Email :", -'configuration_mailer' => 'Mailer\'s configuration', -'configuration_smtp' => 'Choose your mailer', -'configuration_smtp_descriptif' => 'If you\'re not sure about the settings, leave them set to "PHP mail".', -'config_info_enregistree' => 'Postman\'s configuration is now saved', -'utiliser_mail' => 'Use mail function from PHP', -'utiliser_smtp' => 'Use SMTP', -'erreur_invalid_host' => 'This host name is not valid', -'erreur_invalid_port' => 'This port number is not valid', -'facteur_smtp_host' => 'Host :', -'facteur_smtp_port' => 'Port :', -'facteur_smtp_auth' => 'Requires authentication :', -'facteur_smtp_auth_oui' => 'yes', -'facteur_smtp_auth_non' => 'no', -'facteur_smtp_username' => 'Username :', -'facteur_smtp_password' => 'Paswword :', -'facteur_smtp_secure' => 'Secure :', -'facteur_smtp_secure_non' => 'no', -'facteur_smtp_secure_ssl' => 'SSL', -'facteur_smtp_secure_tls' => 'TLS', -'facteur_smtp_sender' => 'Return-Path (optional)', -'facteur_smtp_sender_descriptif' => 'Define the Return-Path in the mail header, useful for error feedback, also in SMTP mode it defines the sender\'s email.', -'facteur_filtres' => "Filters", -'facteur_filtres_descriptif' => "Some filters can be applied before sending an email.", -'facteur_filtre_images' => "Embed images referenced in emails", -'facteur_filtre_css' => "Transform styles present between <head> and </head> into inline styles, useful for webmails because inline styles overwrite external styles.", -'facteur_filtre_accents' => "Transform accents into their html entities (useful for Hotmail).", -'facteur_filtre_iso_8859' => "Convert to ISO-8859-1", -'valider' => "Submit", -'tester_la_configuration' => "Test the config", -'note_test_configuration' => "A test email will be sent to the \"sender\".", -'corps_email_de_test' => "This is a test email", -'version_html' => "HTML version.", -'version_texte' => "Text version.", -'tester' => "Test", -'erreur' => "Error", -'email_test_envoye' => "The test email has been sent without error!", - -'Z' => 'ZZzZZzzz' - -); - -?> \ No newline at end of file diff --git a/facteur/lang/facteur_fr.php b/facteur/lang/facteur_fr.php deleted file mode 100644 index 6922e16..0000000 --- a/facteur/lang/facteur_fr.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php - -$GLOBALS[$GLOBALS['idx_lang']] = array( - -'configuration_facteur' => 'Facteur', -'configuration_adresse_envoi' => "Configuration de l'adresse d'envoi", -'utiliser_reglages_site' => "Utiliser les réglages du site SPIP : le nom affiché sera le nom du site SPIP et l'adresse email sera celle du webmaster", -'personnaliser' => "Personnaliser ces réglages", -'facteur_adresse_envoi_nom' => "Nom :", -'facteur_adresse_envoi_email' => "Email :", -'configuration_mailer' => 'Configuration du mailer', -'configuration_smtp' => 'Choix du mailer', -'configuration_smtp_descriptif' => 'Si vous n\'êtes pas sûrs, choisissez la fonction mail de PHP.', -'config_info_enregistree' => 'La configuration du facteur a bien été enregistrée', -'utiliser_mail' => 'Utiliser la fonction mail de PHP', -'utiliser_smtp' => 'Utiliser SMTP', -'erreur_invalid_host' => 'Ce nom d\'hôte n\'est pas correct', -'erreur_invalid_port' => 'Ce numéro de port n\'est pas correct', -'facteur_smtp_host' => 'Hôte :', -'facteur_smtp_port' => 'Port :', -'facteur_smtp_auth' => 'Requiert une authentification :', -'facteur_smtp_auth_oui' => 'oui', -'facteur_smtp_auth_non' => 'non', -'facteur_smtp_username' => 'Nom d\'utilisateur :', -'facteur_smtp_password' => 'Mot de passe :', -'facteur_smtp_secure' => 'Connexion sécurisée :', -'facteur_smtp_secure_non' => 'non', -'facteur_smtp_secure_ssl' => 'SSL', -'facteur_smtp_secure_tls' => 'TLS', -'facteur_smtp_sender' => 'Retour des erreurs (optionnel)', -'facteur_smtp_sender_descriptif' => 'Définit dans l\'entête du mail l\'adresse email de retour des erreurs (ou Return-Path), et lors d\'un envoi via la méthode SMTP cela définit aussi l\'adresse de l\'envoyeur.', -'facteur_filtres' => "Filtres", -'facteur_filtres_descriptif' => "Des filtres peuvent être appliqués aux emails au moment de l'envoi.", -'facteur_filtre_images' => "Embarquer les images référencées dans les emails", -'facteur_filtre_css' => "Transformer les styles contenus entre <head> et </head> en des styles \"en ligne\", utile pour les webmails car les styles en ligne ont la priorité sur les styles externes.", -'facteur_filtre_accents' => "Transformer les accents en leur entités html (utile pour Hotmail notamment).", -'facteur_filtre_iso_8859' => "Convertir en ISO-8859-1", -'valider' => "Valider", -'tester_la_configuration' => "Tester la configuration", -'note_test_configuration' => "Un email sera envoyée à l'adresse d'envoi définie (ou celle du webmaster).", -'corps_email_de_test' => "Ceci est un email de test accentué", // Laisser tel quel, car -'version_html' => "Version HTML.", -'version_texte' => "Version texte.", -'tester' => "Tester", -'erreur' => "Erreur", -'email_test_envoye' => "L'email de test a bien été envoyé !", - -'Z' => 'ZZzZZzzz' - -); - -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/LICENSE b/facteur/phpmailer-php4/LICENSE deleted file mode 100644 index 03851a3..0000000 --- a/facteur/phpmailer-php4/LICENSE +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/facteur/phpmailer-php4/README b/facteur/phpmailer-php4/README deleted file mode 100644 index 5c8d658..0000000 --- a/facteur/phpmailer-php4/README +++ /dev/null @@ -1,102 +0,0 @@ -PHPMailer -Full Featured Email Transfer Class for PHP -========================================== - -http://phpmailer.sourceforge.net/ - -This software is licenced under the LGPL. Please read LICENSE for information on the -software availability and distribution. - -Class Features: -- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs -- Redundant SMTP servers -- Multipart/alternative emails for mail clients that do not read HTML email -- Support for 8bit, base64, binary, and quoted-printable encoding -- Uses the same methods as the very popular AspEmail active server (COM) component -- SMTP authentication -- Native language support -- Word wrap, and more! - -Why you might need it: - -Many PHP developers utilize email in their code. The only PHP function -that supports this is the mail() function. However, it does not expose -any of the popular features that many email clients use nowadays like -HTML-based emails and attachments. There are two proprietary -development tools out there that have all the functionality built into -easy to use classes: AspEmail(tm) and AspMail. Both of these -programs are COM components only available on Windows. They are also a -little pricey for smaller projects. - -Since I do Linux development I’ve missed these tools for my PHP coding. -So I built a version myself that implements the same methods (object -calls) that the Windows-based components do. It is open source and the -LGPL license allows you to place the class in your proprietary PHP -projects. - - -Installation: - -Copy class.phpmailer.php into your php.ini include_path. If you are -using the SMTP mailer then place class.smtp.php in your path as well. -In the language directory you will find several files like -phpmailer.lang-en.php. If you look right before the .php extension -that there are two letters. These represent the language type of the -translation file. For instance "en" is the English file and "br" is -the Portuguese file. Chose the file that best fits with your language -and place it in the PHP include path. If your language is English -then you have nothing more to do. If it is a different language then -you must point PHPMailer to the correct translation. To do this, call -the PHPMailer SetLanguage method like so: - -// To load the Portuguese version -$mail->SetLanguage("br", "/optional/path/to/language/directory/"); - -That's it. You should now be ready to use PHPMailer! - - -A Simple Example: - -<?php -require("class.phpmailer.php"); - -$mail = new PHPMailer(); - -$mail->IsSMTP(); // set mailer to use SMTP -$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server -$mail->SMTPAuth = true; // turn on SMTP authentication -$mail->Username = "jswan"; // SMTP username -$mail->Password = "secret"; // SMTP password - -$mail->From = "from@example.com"; -$mail->FromName = "Mailer"; -$mail->AddAddress("josh@example.net", "Josh Adams"); -$mail->AddAddress("ellen@example.com"); // name is optional -$mail->AddReplyTo("info@example.com", "Information"); - -$mail->WordWrap = 50; // set word wrap to 50 characters -$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments -$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name -$mail->IsHTML(true); // set email format to HTML - -$mail->Subject = "Here is the subject"; -$mail->Body = "This is the HTML message body <b>in bold!</b>"; -$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; - -if(!$mail->Send()) -{ - echo "Message could not be sent. <p>"; - echo "Mailer Error: " . $mail->ErrorInfo; - exit; -} - -echo "Message has been sent"; -?> - -CHANGELOG - -See ChangeLog.txt - -Download: http://sourceforge.net/project/showfiles.php?group_id=26031 - -Brent R. Matzelle diff --git a/facteur/phpmailer-php4/class.phpmailer.php b/facteur/phpmailer-php4/class.phpmailer.php deleted file mode 100644 index afb71b2..0000000 --- a/facteur/phpmailer-php4/class.phpmailer.php +++ /dev/null @@ -1,1909 +0,0 @@ -<?php -/*~ class.phpmailer.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 2.0.4 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Author: Andy Prevost (project admininistrator) | -| Author: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' - -/** - * PHPMailer - PHP email transport class - * @package PHPMailer - * @author Andy Prevost - * @copyright 2004 - 2009 Andy Prevost - */ - -class PHPMailer { - - ///////////////////////////////////////////////// - // PROPERTIES, PUBLIC - ///////////////////////////////////////////////// - - /** - * Email priority (1 = High, 3 = Normal, 5 = low). - * @var int - */ - var $Priority = 3; - - /** - * Sets the CharSet of the message. - * @var string - */ - var $CharSet = 'iso-8859-1'; - - /** - * Sets the Content-type of the message. - * @var string - */ - var $ContentType = 'text/plain'; - - /** - * Sets the Encoding of the message. Options for this are "8bit", - * "7bit", "binary", "base64", and "quoted-printable". - * @var string - */ - var $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * @var string - */ - var $ErrorInfo = ''; - - /** - * Sets the From email address for the message. - * @var string - */ - var $From = 'root@localhost'; - - /** - * Sets the From name of the message. - * @var string - */ - var $FromName = 'Root User'; - - /** - * Sets the Sender email (Return-Path) of the message. If not empty, - * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. - * @var string - */ - var $Sender = ''; - - /** - * Sets the Subject of the message. - * @var string - */ - var $Subject = ''; - - /** - * Sets the Body of the message. This can be either an HTML or text body. - * If HTML then run IsHTML(true). - * @var string - */ - var $Body = ''; - - /** - * Sets the text-only body of the message. This automatically sets the - * email to multipart/alternative. This body can be read by mail - * clients that do not have HTML email capability such as mutt. Clients - * that can read HTML will view the normal Body. - * @var string - */ - var $AltBody = ''; - - /** - * Sets word wrapping on the body of the message to a given number of - * characters. - * @var int - */ - var $WordWrap = 0; - - /** - * Method to send mail: ("mail", "sendmail", or "smtp"). - * @var string - */ - var $Mailer = 'mail'; - - /** - * Sets the path of the sendmail program. - * @var string - */ - var $Sendmail = '/usr/sbin/sendmail'; - - /** - * Path to PHPMailer plugins. This is now only useful if the SMTP class - * is in a different directory than the PHP include path. - * @var string - */ - var $PluginDir = ''; - - /** - * Holds PHPMailer version. - * @var string - */ - var $Version = "2.0.4"; - - /** - * Sets the email address that a reading confirmation will be sent. - * @var string - */ - var $ConfirmReadingTo = ''; - - /** - * Sets the hostname to use in Message-Id and Received headers - * and as default HELO string. If empty, the value returned - * by SERVER_NAME is used or 'localhost.localdomain'. - * @var string - */ - var $Hostname = ''; - - /** - * Sets the message ID to be used in the Message-Id header. - * If empty, a unique id will be generated. - * @var string - */ - var $MessageID = ''; - - ///////////////////////////////////////////////// - // PROPERTIES FOR SMTP - ///////////////////////////////////////////////// - - /** - * Sets the SMTP hosts. All hosts must be separated by a - * semicolon. You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * Hosts will be tried in order. - * @var string - */ - var $Host = 'localhost'; - - /** - * Sets the default SMTP server port. - * @var int - */ - var $Port = 25; - - /** - * Sets the SMTP HELO of the message (Default is $Hostname). - * @var string - */ - var $Helo = ''; - - /** - * Sets connection prefix. - * Options are "", "ssl" or "tls" - * @var string - */ - var $SMTPSecure = ""; - - /** - * Sets SMTP authentication. Utilizes the Username and Password variables. - * @var bool - */ - var $SMTPAuth = false; - - /** - * Sets SMTP username. - * @var string - */ - var $Username = ''; - - /** - * Sets SMTP password. - * @var string - */ - var $Password = ''; - - /** - * Sets the SMTP server timeout in seconds. This function will not - * work with the win32 version. - * @var int - */ - var $Timeout = 10; - - /** - * Sets SMTP class debugging on or off. - * @var bool - */ - var $SMTPDebug = false; - - /** - * Prevents the SMTP connection from being closed after each mail - * sending. If this is set to true then to close the connection - * requires an explicit call to SmtpClose(). - * @var bool - */ - var $SMTPKeepAlive = false; - - /** - * Provides the ability to have the TO field process individual - * emails, instead of sending to entire TO addresses - * @var bool - */ - var $SingleTo = false; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE - ///////////////////////////////////////////////// - - var $smtp = NULL; - var $to = array(); - var $cc = array(); - var $bcc = array(); - var $ReplyTo = array(); - var $attachment = array(); - var $CustomHeader = array(); - var $message_type = ''; - var $boundary = array(); - var $language = array(); - var $error_count = 0; - var $LE = "\n"; - var $sign_cert_file = ""; - var $sign_key_file = ""; - var $sign_key_pass = ""; - - ///////////////////////////////////////////////// - // METHODS, VARIABLES - ///////////////////////////////////////////////// - - /** - * Sets message type to HTML. - * @param bool $bool - * @return void - */ - function IsHTML($bool) { - if($bool == true) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Sets Mailer to send message using SMTP. - * @return void - */ - function IsSMTP() { - $this->Mailer = 'smtp'; - } - - /** - * Sets Mailer to send message using PHP mail() function. - * @return void - */ - function IsMail() { - $this->Mailer = 'mail'; - } - - /** - * Sets Mailer to send message using the $Sendmail program. - * @return void - */ - function IsSendmail() { - $this->Mailer = 'sendmail'; - } - - /** - * Sets Mailer to send message using the qmail MTA. - * @return void - */ - function IsQmail() { - $this->Sendmail = '/var/qmail/bin/sendmail'; - $this->Mailer = 'sendmail'; - } - - ///////////////////////////////////////////////// - // METHODS, RECIPIENTS - ///////////////////////////////////////////////// - - /** - * Adds a "To" address. - * @param string $address - * @param string $name - * @return void - */ - function AddAddress($address, $name = '') { - $cur = count($this->to); - $this->to[$cur][0] = trim($address); - $this->to[$cur][1] = $name; - } - - /** - * Adds a "Cc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddCC($address, $name = '') { - $cur = count($this->cc); - $this->cc[$cur][0] = trim($address); - $this->cc[$cur][1] = $name; - } - - /** - * Adds a "Bcc" address. Note: this function works - * with the SMTP mailer on win32, not with the "mail" - * mailer. - * @param string $address - * @param string $name - * @return void - */ - function AddBCC($address, $name = '') { - $cur = count($this->bcc); - $this->bcc[$cur][0] = trim($address); - $this->bcc[$cur][1] = $name; - } - - /** - * Adds a "Reply-To" address. - * @param string $address - * @param string $name - * @return void - */ - function AddReplyTo($address, $name = '') { - $cur = count($this->ReplyTo); - $this->ReplyTo[$cur][0] = trim($address); - $this->ReplyTo[$cur][1] = $name; - } - - ///////////////////////////////////////////////// - // METHODS, MAIL SENDING - ///////////////////////////////////////////////// - - /** - * Creates message and assigns Mailer. If the message is - * not sent successfully then it returns false. Use the ErrorInfo - * variable to view description of the error. - * @return bool - */ - function Send() { - $header = ''; - $body = ''; - $result = true; - - if((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { - $this->SetError($this->Lang('provide_address')); - return false; - } - - /* Set whether the message is multipart/alternative */ - if(!empty($this->AltBody)) { - $this->ContentType = 'multipart/alternative'; - } - - $this->error_count = 0; // reset errors - $this->SetMessageType(); - $header .= $this->CreateHeader(); - $body = $this->CreateBody(); - - if($body == '') { - return false; - } - - /* Choose the mailer */ - switch($this->Mailer) { - case 'sendmail': - $result = $this->SendmailSend($header, $body); - break; - case 'smtp': - $result = $this->SmtpSend($header, $body); - break; - case 'mail': - $result = $this->MailSend($header, $body); - break; - default: - $result = $this->MailSend($header, $body); - break; - //$this->SetError($this->Mailer . $this->Lang('mailer_not_supported')); - //$result = false; - //break; - } - - return $result; - } - - /** - * Sends mail using the $Sendmail program. - * @access private - * @return bool - */ - function SendmailSend($header, $body) { - if ($this->Sender != '') { - $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } else { - $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); - } - - if(!@$mail = popen($sendmail, 'w')) { - $this->SetError($this->Lang('execute') . $this->Sendmail); - return false; - } - - fputs($mail, $header); - fputs($mail, $body); - - $result = pclose($mail); - if (version_compare(phpversion(), '4.2.3') == -1) { - $result = $result >> 8 & 0xFF; - } - if($result != 0) { - $this->SetError($this->Lang('execute') . $this->Sendmail); - return false; - } - return true; - } - - /** - * Sends mail using the PHP mail() function. - * @access private - * @return bool - */ - function MailSend($header, $body) { - - $to = ''; - for($i = 0; $i < count($this->to); $i++) { - if($i != 0) { $to .= ', '; } - $to .= $this->AddrFormat($this->to[$i]); - } - - $toArr = split(',', $to); - - $params = sprintf("-oi -f %s", $this->Sender); - if ($this->Sender != '' && strlen(ini_get('safe_mode')) < 1) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header); - } - } - - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - - if(!$rt) { - $this->SetError($this->Lang('instantiate')); - return false; - } - - return true; - } - - /** - * Sends mail via SMTP using PhpSMTP (Author: - * Chris Ryan). Returns bool. Returns false if there is a - * bad MAIL FROM, RCPT, or DATA input. - * @access private - * @return bool - */ - function SmtpSend($header, $body) { - include_once($this->PluginDir . 'class.smtp.php'); - $error = ''; - $bad_rcpt = array(); - - if(!$this->SmtpConnect()) { - return false; - } - - $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; - if(!$this->smtp->Mail($smtp_from)) { - $error = $this->Lang('from_failed') . $smtp_from; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - /* Attempt to send attach all recipients */ - for($i = 0; $i < count($this->to); $i++) { - if(!$this->smtp->Recipient($this->to[$i][0])) { - $bad_rcpt[] = $this->to[$i][0]; - } - } - for($i = 0; $i < count($this->cc); $i++) { - if(!$this->smtp->Recipient($this->cc[$i][0])) { - $bad_rcpt[] = $this->cc[$i][0]; - } - } - for($i = 0; $i < count($this->bcc); $i++) { - if(!$this->smtp->Recipient($this->bcc[$i][0])) { - $bad_rcpt[] = $this->bcc[$i][0]; - } - } - - if(count($bad_rcpt) > 0) { // Create error message - for($i = 0; $i < count($bad_rcpt); $i++) { - if($i != 0) { - $error .= ', '; - } - $error .= $bad_rcpt[$i]; - } - $error = $this->Lang('recipients_failed') . $error; - $this->SetError($error); - $this->smtp->Reset(); - return false; - } - - if(!$this->smtp->Data($header . $body)) { - $this->SetError($this->Lang('data_not_accepted')); - $this->smtp->Reset(); - return false; - } - if($this->SMTPKeepAlive == true) { - $this->smtp->Reset(); - } else { - $this->SmtpClose(); - } - - return true; - } - - /** - * Initiates a connection to an SMTP server. Returns false if the - * operation failed. - * @access private - * @return bool - */ - function SmtpConnect() { - if($this->smtp == NULL) { - $this->smtp = new SMTP(); - } - - $this->smtp->do_debug = $this->SMTPDebug; - $hosts = explode(';', $this->Host); - $index = 0; - $connection = ($this->smtp->Connected()); - - /* Retry while there is no connection */ - while($index < count($hosts) && $connection == false) { - $hostinfo = array(); - if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) { - $host = $hostinfo[1]; - $port = $hostinfo[2]; - } else { - $host = $hosts[$index]; - $port = $this->Port; - } - - if($this->smtp->Connect(((!empty($this->SMTPSecure))?$this->SMTPSecure.'://':'').$host, $port, $this->Timeout)) { - if ($this->Helo != '') { - $this->smtp->Hello($this->Helo); - } else { - $this->smtp->Hello($this->ServerHostname()); - } - - $connection = true; - if($this->SMTPAuth) { - if(!$this->smtp->Authenticate($this->Username, $this->Password)) { - $this->SetError($this->Lang('authenticate')); - $this->smtp->Reset(); - $connection = false; - } - } - } - $index++; - } - if(!$connection) { - $this->SetError($this->Lang('connect_host')); - } - - return $connection; - } - - /** - * Closes the active SMTP session if one exists. - * @return void - */ - function SmtpClose() { - if($this->smtp != NULL) { - if($this->smtp->Connected()) { - $this->smtp->Quit(); - $this->smtp->Close(); - } - } - } - - /** - * Sets the language for all class error messages. Returns false - * if it cannot load the language file. The default language type - * is English. - * @param string $lang_type Type of language (e.g. Portuguese: "br") - * @param string $lang_path Path to the language file directory - * @access public - * @return bool - */ - function SetLanguage($lang_type, $lang_path = 'language/') { - if(file_exists($lang_path.'phpmailer.lang-'.$lang_type.'.php')) { - include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); - } elseif (file_exists($lang_path.'phpmailer.lang-en.php')) { - include($lang_path.'phpmailer.lang-en.php'); - } else { - $PHPMAILER_LANG = array(); - $PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' . - $PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.'; - $PHPMAILER_LANG["execute"] = 'Could not execute: '; - $PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.'; - $PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.'; - $PHPMAILER_LANG["from_failed"] = 'The following From address failed: '; - $PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' . - $PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.'; - $PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.'; - $PHPMAILER_LANG["file_access"] = 'Could not access file: '; - $PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: '; - $PHPMAILER_LANG["encoding"] = 'Unknown encoding: '; - $PHPMAILER_LANG["signing"] = 'Signing Error: '; - } - $this->language = $PHPMAILER_LANG; - - return true; - } - - ///////////////////////////////////////////////// - // METHODS, MESSAGE CREATION - ///////////////////////////////////////////////// - - /** - * Creates recipient headers. - * @access private - * @return string - */ - function AddrAppend($type, $addr) { - $addr_str = $type . ': '; - $addr_str .= $this->AddrFormat($addr[0]); - if(count($addr) > 1) { - for($i = 1; $i < count($addr); $i++) { - $addr_str .= ', ' . $this->AddrFormat($addr[$i]); - } - } - $addr_str .= $this->LE; - - return $addr_str; - } - - /** - * Formats an address correctly. - * @access private - * @return string - */ - function AddrFormat($addr) { - if(empty($addr[1])) { - $formatted = $this->SecureHeader($addr[0]); - } else { - $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; - } - - return $formatted; - } - - /** - * Wraps message for use with mailers that do not - * automatically perform wrapping and for quoted-printable. - * Original written by philippe. - * @access private - * @return string - */ - function WrapText($message, $length, $qp_mode = false) { - $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = (strtolower($this->CharSet) == "utf-8"); - - $message = $this->FixEOL($message); - if (substr($message, -1) == $this->LE) { - $message = substr($message, 0, -1); - } - - $line = explode($this->LE, $message); - $message = ''; - for ($i=0 ;$i < count($line); $i++) { - $line_part = explode(' ', $line[$i]); - $buf = ''; - for ($e = 0; $e<count($line_part); $e++) { - $word = $line_part[$e]; - if ($qp_mode and (strlen($word) > $length)) { - $space_left = $length - strlen($buf) - 1; - if ($e != 0) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf("=%s", $this->LE); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - $len = $length; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf("=%s", $this->LE); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - $buf .= ($e == 0) ? $word : (' ' . $word); - - if (strlen($buf) > $length and $buf_o != '') { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - } - $message .= $buf . $this->LE; - } - - return $message; - } - - /** - * Finds last character boundary prior to maxLength in a utf-8 - * quoted (printable) encoded string. - * Original written by Colin Brown. - * @access private - * @param string $encodedText utf-8 QP text - * @param int $maxLength find last character boundary prior to this length - * @return int - */ - function UTF8CharBoundary($encodedText, $maxLength) { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, "="); - if ($encodedCharPos !== false) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - $maxLength = ($encodedCharPos == 0) ? $maxLength : - $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec >= 192) { // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - return $maxLength; - } - - /** - * Set the body wrapping. - * @access private - * @return void - */ - function SetWordWrap() { - if($this->WordWrap < 1) { - return; - } - - switch($this->message_type) { - case 'alt': - /* fall through */ - case 'alt_attachments': - $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->WrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assembles message header. - * @access private - * @return string - */ - function CreateHeader() { - $result = ''; - - /* Set the boundaries */ - $uniq_id = md5(uniqid(time())); - $this->boundary[1] = 'b1_' . $uniq_id; - $this->boundary[2] = 'b2_' . $uniq_id; - - $result .= $this->HeaderLine('Date', $this->RFCDate()); - if($this->Sender == '') { - $result .= $this->HeaderLine('Return-Path', trim($this->From)); - } else { - $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); - } - - /* To be created automatically by mail() */ - if($this->Mailer != 'mail') { - if(count($this->to) > 0) { - $result .= $this->AddrAppend('To', $this->to); - } elseif (count($this->cc) == 0) { - $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); - } - } - - $from = array(); - $from[0][0] = trim($this->From); - $from[0][1] = $this->FromName; - $result .= $this->AddrAppend('From', $from); - - /* sendmail and mail() extract Cc from the header before sending */ - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->cc) > 0)) { - $result .= $this->AddrAppend('Cc', $this->cc); - } - - /* sendmail and mail() extract Bcc from the header before sending */ - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { - $result .= $this->AddrAppend('Bcc', $this->bcc); - } - - if(count($this->ReplyTo) > 0) { - $result .= $this->AddrAppend('Reply-To', $this->ReplyTo); - } - - /* mail() sets the subject itself */ - if($this->Mailer != 'mail') { - $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); - } - - if($this->MessageID != '') { - $result .= $this->HeaderLine('Message-ID',$this->MessageID); - } else { - $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); - } - $result .= $this->HeaderLine('X-Priority', $this->Priority); - $result .= $this->HeaderLine('X-Mailer', 'PHPMailer (phpmailer.sourceforge.net) [version ' . $this->Version . ']'); - - if($this->ConfirmReadingTo != '') { - $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); - } - - // Add custom headers - for($index = 0; $index < count($this->CustomHeader); $index++) { - $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); - } - if (!$this->sign_key_file) { - $result .= $this->HeaderLine('MIME-Version', '1.0'); - $result .= $this->GetMailMIME(); - } - - return $result; - } - - /** - * Returns the message MIME. - * @access private - * @return string - */ - function GetMailMIME() { - $result = ''; - switch($this->message_type) { - case 'plain': - $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); - $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); - break; - case 'attachments': - /* fall through */ - case 'alt_attachments': - if($this->InlineImageExists()){ - $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE); - } else { - $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - } - break; - case 'alt': - $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - } - - if($this->Mailer != 'mail') { - $result .= $this->LE.$this->LE; - } - - return $result; - } - - /** - * Assembles the message body. Returns an empty string on failure. - * @access private - * @return string - */ - function CreateBody() { - $result = ''; - if ($this->sign_key_file) { - $result .= $this->GetMailMIME(); - } - - $this->SetWordWrap(); - - switch($this->message_type) { - case 'alt': - $result .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->EndBoundary($this->boundary[1]); - break; - case 'plain': - $result .= $this->EncodeString($this->Body, $this->Encoding); - break; - case 'attachments': - $result .= $this->GetBoundary($this->boundary[1], '', '', ''); - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE; - $result .= $this->AttachAll(); - break; - case 'alt_attachments': - $result .= sprintf("--%s%s", $this->boundary[1], $this->LE); - $result .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE); - $result .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body - $result .= $this->EncodeString($this->AltBody, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body - $result .= $this->EncodeString($this->Body, $this->Encoding); - $result .= $this->LE.$this->LE; - $result .= $this->EndBoundary($this->boundary[2]); - $result .= $this->AttachAll(); - break; - } - - if($this->IsError()) { - $result = ''; - } else if ($this->sign_key_file) { - $file = tempnam("", "mail"); - $fp = fopen($file, "w"); - fwrite($fp, $result); - fclose($fp); - $signed = tempnam("", "signed"); - - if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) { - $fp = fopen($signed, "r"); - $result = fread($fp, filesize($this->sign_key_file)); - $result = ''; - while(!feof($fp)){ - $result = $result . fread($fp, 1024); - } - fclose($fp); - } else { - $this->SetError($this->Lang("signing").openssl_error_string()); - $result = ''; - } - - unlink($file); - unlink($signed); - } - - return $result; - } - - /** - * Returns the start of a message boundary. - * @access private - */ - function GetBoundary($boundary, $charSet, $contentType, $encoding) { - $result = ''; - if($charSet == '') { - $charSet = $this->CharSet; - } - if($contentType == '') { - $contentType = $this->ContentType; - } - if($encoding == '') { - $encoding = $this->Encoding; - } - $result .= $this->TextLine('--' . $boundary); - $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); - $result .= $this->LE; - $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); - $result .= $this->LE; - - return $result; - } - - /** - * Returns the end of a message boundary. - * @access private - */ - function EndBoundary($boundary) { - return $this->LE . '--' . $boundary . '--' . $this->LE; - } - - /** - * Sets the message type. - * @access private - * @return void - */ - function SetMessageType() { - if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) { - $this->message_type = 'plain'; - } else { - if(count($this->attachment) > 0) { - $this->message_type = 'attachments'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) { - $this->message_type = 'alt'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) { - $this->message_type = 'alt_attachments'; - } - } - } - - /* Returns a formatted header line. - * @access private - * @return string - */ - function HeaderLine($name, $value) { - return $name . ': ' . $value . $this->LE; - } - - /** - * Returns a formatted mail line. - * @access private - * @return string - */ - function TextLine($value) { - return $value . $this->LE; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, ATTACHMENTS - ///////////////////////////////////////////////// - - /** - * Adds an attachment from a path on the filesystem. - * Returns false if the file could not be found - * or accessed. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - if(!@is_file($path)) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if($name == '') { - $name = $filename; - } - - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; // isStringAttachment - $this->attachment[$cur][6] = 'attachment'; - $this->attachment[$cur][7] = 0; - - return true; - } - - /** - * Attaches all fs, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access private - * @return string - */ - function AttachAll() { - /* Return text of body */ - $mime = array(); - - /* Add all attachments */ - for($i = 0; $i < count($this->attachment); $i++) { - /* Check for string attachment */ - $bString = $this->attachment[$i][5]; - if ($bString) { - $string = $this->attachment[$i][0]; - } else { - $path = $this->attachment[$i][0]; - } - - $filename = $this->attachment[$i][1]; - $name = $this->attachment[$i][2]; - $encoding = $this->attachment[$i][3]; - $type = $this->attachment[$i][4]; - $disposition = $this->attachment[$i][6]; - $cid = $this->attachment[$i][7]; - - $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); - $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); - $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); - - if($disposition == 'inline') { - $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); - } - - $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); - - /* Encode as string attachment */ - if($bString) { - $mime[] = $this->EncodeString($string, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } else { - $mime[] = $this->EncodeFile($path, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } - } - - $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); - - return join('', $mime); - } - - /** - * Encodes attachment in requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeFile ($path, $encoding = 'base64') { - if(!@$fd = fopen($path, 'rb')) { - $this->SetError($this->Lang('file_open') . $path); - return ''; - } - $magic_quotes = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $file_buffer = fread($fd, filesize($path)); - $file_buffer = $this->EncodeString($file_buffer, $encoding); - fclose($fd); - set_magic_quotes_runtime($magic_quotes); - - return $file_buffer; - } - - /** - * Encodes string to requested format. Returns an - * empty string on failure. - * @access private - * @return string - */ - function EncodeString ($str, $encoding = 'base64') { - $encoded = ''; - switch(strtolower($encoding)) { - case 'base64': - /* chunk_split is found in PHP >= 3.0.6 */ - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case '7bit': - case '8bit': - $encoded = $this->FixEOL($str); - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->EncodeQP($str); - break; - default: - $this->SetError($this->Lang('encoding') . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string to best of Q, B, quoted or none. - * @access private - * @return string - */ - function EncodeHeader ($str, $position = 'text') { - $x = 0; - - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - /* Can't use addslashes as we don't know what value has magic_quotes_sybase. */ - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return ($encoded); - } else { - return ("\"$encoded\""); - } - } - $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - case 'comment': - $x = preg_match_all('/[()"]/', $str, $matches); - /* Fall-through */ - case 'text': - default: - $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - if ($x == 0) { - return ($str); - } - - $maxlen = 75 - 7 - strlen($this->CharSet); - /* Try to select the encoding which should produce the shortest output */ - if (strlen($str)/3 < $x) { - $encoding = 'B'; - if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->Base64EncodeWrapMB($str); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - } else { - $encoding = 'Q'; - $encoded = $this->EncodeQ($str, $position); - $encoded = $this->WrapText($encoded, $maxlen, true); - $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Checks if a string contains multibyte characters. - * @access private - * @param string $str multi-byte text to wrap encode - * @return bool - */ - function HasMultiBytes($str) { - if (function_exists('mb_strlen')) { - return (strlen($str) > mb_strlen($str, $this->CharSet)); - } else { // Assume no multibytes (we can't handle without mbstring functions anyway) - return False; - } - } - - /** - * Correctly encodes and wraps long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php - * @access private - * @param string $str multi-byte text to wrap encode - * @return string - */ - function Base64EncodeWrapMB($str) { - $start = "=?".$this->CharSet."?B?"; - $end = "?="; - $encoded = ""; - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $offset = $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - $lookBack++; - } - while (strlen($chunk) > $length); - - $encoded .= $chunk . $this->LE; - } - - // Chomp the last linefeed - $encoded = substr($encoded, 0, -strlen($this->LE)); - return $encoded; - } - - /** - * Encode string to quoted-printable. - * @access private - * @return string - */ - function EncodeQP( $input = '', $line_max = 76, $space_conv = false ) { - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $lines = preg_split('/(?:\r\n|\r|\n)/', $input); - $eol = "\r\n"; - $escape = '='; - $output = ''; - while( list(, $line) = each($lines) ) { - $linlen = strlen($line); - $newline = ''; - for($i = 0; $i < $linlen; $i++) { - $c = substr( $line, $i, 1 ); - $dec = ord( $c ); - if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E - $c = '=2E'; - } - if ( $dec == 32 ) { - if ( $i == ( $linlen - 1 ) ) { // convert space at eol only - $c = '=20'; - } else if ( $space_conv ) { - $c = '=20'; - } - } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); - $h1 = floor($dec%16); - $c = $escape.$hex[$h2].$hex[$h1]; - } - if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted - $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay - $newline = ''; - // check if newline first character will be point or not - if ( $dec == 46 ) { - $c = '=2E'; - } - } - $newline .= $c; - } // end of for - $output .= $newline.$eol; - } // end of while - return $output; - } - - /** - * Encode string to q encoding. - * @access private - * @return string - */ - function EncodeQ ($str, $position = 'text') { - /* There should not be any EOL in the string */ - $encoded = preg_replace("[\r\n]", '', $str); - - switch (strtolower($position)) { - case 'phrase': - $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - case 'comment': - $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - case 'text': - default: - /* Replace every high ascii, control =, ? and _ characters */ - $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - } - - /* Replace every spaces to _ (more readable than =20) */ - $encoded = str_replace(' ', '_', $encoded); - - return $encoded; - } - - /** - * Adds a string or binary attachment (non-filesystem) to the list. - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return void - */ - function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { - /* Append to $attachment array */ - $cur = count($this->attachment); - $this->attachment[$cur][0] = $string; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $filename; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = true; // isString - $this->attachment[$cur][6] = 'attachment'; - $this->attachment[$cur][7] = 0; - } - - /** - * Adds an embedded attachment. This can include images, sounds, and - * just about any other document. Make sure to set the $type to an - * image type. For JPEG images use "image/jpeg" and for GIF images - * use "image/gif". - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment. Use this to identify - * the Id for accessing the image in an HTML form. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - - if(!@is_file($path)) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if($name == '') { - $name = $filename; - } - - /* Append to $attachment array */ - $cur = count($this->attachment); - $this->attachment[$cur][0] = $path; - $this->attachment[$cur][1] = $filename; - $this->attachment[$cur][2] = $name; - $this->attachment[$cur][3] = $encoding; - $this->attachment[$cur][4] = $type; - $this->attachment[$cur][5] = false; - $this->attachment[$cur][6] = 'inline'; - $this->attachment[$cur][7] = $cid; - - return true; - } - - /** - * Returns true if an inline attachment is present. - * @access private - * @return bool - */ - function InlineImageExists() { - $result = false; - for($i = 0; $i < count($this->attachment); $i++) { - if($this->attachment[$i][6] == 'inline') { - $result = true; - break; - } - } - - return $result; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MESSAGE RESET - ///////////////////////////////////////////////// - - /** - * Clears all recipients assigned in the TO array. Returns void. - * @return void - */ - function ClearAddresses() { - $this->to = array(); - } - - /** - * Clears all recipients assigned in the CC array. Returns void. - * @return void - */ - function ClearCCs() { - $this->cc = array(); - } - - /** - * Clears all recipients assigned in the BCC array. Returns void. - * @return void - */ - function ClearBCCs() { - $this->bcc = array(); - } - - /** - * Clears all recipients assigned in the ReplyTo array. Returns void. - * @return void - */ - function ClearReplyTos() { - $this->ReplyTo = array(); - } - - /** - * Clears all recipients assigned in the TO, CC and BCC - * array. Returns void. - * @return void - */ - function ClearAllRecipients() { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - } - - /** - * Clears all previously set filesystem, string, and binary - * attachments. Returns void. - * @return void - */ - function ClearAttachments() { - $this->attachment = array(); - } - - /** - * Clears all custom headers. Returns void. - * @return void - */ - function ClearCustomHeaders() { - $this->CustomHeader = array(); - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MISCELLANEOUS - ///////////////////////////////////////////////// - - /** - * Adds the error message to the error container. - * Returns void. - * @access private - * @return void - */ - function SetError($msg) { - $this->error_count++; - $this->ErrorInfo = $msg; - } - - /** - * Returns the proper RFC 822 formatted date. - * @access private - * @return string - */ - function RFCDate() { - $tz = date('Z'); - $tzs = ($tz < 0) ? '-' : '+'; - $tz = abs($tz); - $tz = (int)($tz/3600)*100 + ($tz%3600)/60; - $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); - - return $result; - } - - /** - * Returns the appropriate server variable. Should work with both - * PHP 4.1.0+ as well as older versions. Returns an empty string - * if nothing is found. - * @access private - * @return mixed - */ - function ServerVar($varName) { - global $HTTP_SERVER_VARS; - global $HTTP_ENV_VARS; - - if(!isset($_SERVER)) { - $_SERVER = $HTTP_SERVER_VARS; - if(!isset($_SERVER['REMOTE_ADDR'])) { - $_SERVER = $HTTP_ENV_VARS; // must be Apache - } - } - - if(isset($_SERVER[$varName])) { - return $_SERVER[$varName]; - } else { - return ''; - } - } - - /** - * Returns the server hostname or 'localhost.localdomain' if unknown. - * @access private - * @return string - */ - function ServerHostname() { - if ($this->Hostname != '') { - $result = $this->Hostname; - } elseif ($this->ServerVar('SERVER_NAME') != '') { - $result = $this->ServerVar('SERVER_NAME'); - } else { - $result = 'localhost.localdomain'; - } - - return $result; - } - - /** - * Returns a message in the appropriate language. - * @access private - * @return string - */ - function Lang($key) { - if(count($this->language) < 1) { - $this->SetLanguage('en'); // set the default language - } - - if(isset($this->language[$key])) { - return $this->language[$key]; - } else { - return 'Language string failed to load: ' . $key; - } - } - - /** - * Returns true if an error occurred. - * @return bool - */ - function IsError() { - return ($this->error_count > 0); - } - - /** - * Changes every end of line from CR or LF to CRLF. - * @access private - * @return string - */ - function FixEOL($str) { - $str = str_replace("\r\n", "\n", $str); - $str = str_replace("\r", "\n", $str); - $str = str_replace("\n", $this->LE, $str); - return $str; - } - - /** - * Adds a custom header. - * @return void - */ - function AddCustomHeader($custom_header) { - $this->CustomHeader[] = explode(':', $custom_header, 2); - } - - /** - * Evaluates the message and returns modifications for inline images and backgrounds - * @access public - * @return $message - */ - function MsgHTML($message,$basedir='') { - preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images); - if(isset($images[2])) { - foreach($images[2] as $i => $url) { - // do not change urls for absolute images (thanks to corvuscorax) - if (!preg_match('/^[A-z][A-z]*:\/\//',$url)) { - $filename = basename($url); - $directory = dirname($url); - ($directory == '.')?$directory='':''; - $cid = 'cid:' . md5($filename); - $fileParts = split("\.", $filename); - $ext = $fileParts[1]; - $mimeType = $this->_mime_types($ext); - if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } - if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; } - if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { - $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); - } - } - } - } - $this->IsHTML(true); - $this->Body = $message; - $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); - if ( !empty($textMsg) && empty($this->AltBody) ) { - $this->AltBody = html_entity_decode($textMsg); - } - if ( empty($this->AltBody) ) { - $this->AltBody = 'To view this email message, open the email in with HTML compatibility!' . "\n\n"; - } - } - - /** - * Gets the mime type of the embedded or inline image - * @access private - * @return mime type of ext - */ - function _mime_types($ext = '') { - $mimes = array( - 'ai' => 'application/postscript', - 'aif' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'avi' => 'video/x-msvideo', - 'bin' => 'application/macbinary', - 'bmp' => 'image/bmp', - 'class' => 'application/octet-stream', - 'cpt' => 'application/mac-compactpro', - 'css' => 'text/css', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dll' => 'application/octet-stream', - 'dms' => 'application/octet-stream', - 'doc' => 'application/msword', - 'dvi' => 'application/x-dvi', - 'dxr' => 'application/x-director', - 'eml' => 'message/rfc822', - 'eps' => 'application/postscript', - 'exe' => 'application/octet-stream', - 'gif' => 'image/gif', - 'gtar' => 'application/x-gtar', - 'htm' => 'text/html', - 'html' => 'text/html', - 'jpe' => 'image/jpeg', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'hqx' => 'application/mac-binhex40', - 'js' => 'application/x-javascript', - 'lha' => 'application/octet-stream', - 'log' => 'text/plain', - 'lzh' => 'application/octet-stream', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mif' => 'application/vnd.mif', - 'mov' => 'video/quicktime', - 'movie' => 'video/x-sgi-movie', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'mpe' => 'video/mpeg', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpga' => 'audio/mpeg', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'php' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'phtml' => 'application/x-httpd-php', - 'png' => 'image/png', - 'ppt' => 'application/vnd.ms-powerpoint', - 'ps' => 'application/postscript', - 'psd' => 'application/octet-stream', - 'qt' => 'video/quicktime', - 'ra' => 'audio/x-realaudio', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'rtf' => 'text/rtf', - 'rtx' => 'text/richtext', - 'rv' => 'video/vnd.rn-realvideo', - 'sea' => 'application/octet-stream', - 'shtml' => 'text/html', - 'sit' => 'application/x-stuffit', - 'so' => 'application/octet-stream', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'swf' => 'application/x-shockwave-flash', - 'tar' => 'application/x-tar', - 'text' => 'text/plain', - 'txt' => 'text/plain', - 'tgz' => 'application/x-tar', - 'tif' => 'image/tiff', - 'tiff' => 'image/tiff', - 'wav' => 'audio/x-wav', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'word' => 'application/msword', - 'xht' => 'application/xhtml+xml', - 'xhtml' => 'application/xhtml+xml', - 'xl' => 'application/excel', - 'xls' => 'application/vnd.ms-excel', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'zip' => 'application/zip' - ); - return ( ! isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; - } - - /** - * Set (or reset) Class Objects (variables) - * - * Usage Example: - * $page->set('X-Priority', '3'); - * - * @access public - * @param string $name Parameter Name - * @param mixed $value Parameter Value - * NOTE: will not work with arrays, there are no arrays to set/reset - */ - function set ( $name, $value = '' ) { - if ( isset($this->$name) ) { - $this->$name = $value; - } else { - $this->SetError('Cannot set or reset variable ' . $name); - return false; - } - } - - /** - * Read a file from a supplied filename and return it. - * - * @access public - * @param string $filename Parameter File Name - */ - function getFile($filename) { - $return = ''; - if ($fp = fopen($filename, 'rb')) { - while (!feof($fp)) { - $return .= fread($fp, 1024); - } - fclose($fp); - return $return; - } else { - return false; - } - } - - /** - * Strips newlines to prevent header injection. - * @access private - * @param string $str String - * @return string - */ - function SecureHeader($str) { - $str = trim($str); - $str = str_replace("\r", "", $str); - $str = str_replace("\n", "", $str); - return $str; - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - function Sign($cert_filename, $key_filename, $key_pass) { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - } - -} - -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/class.pop3.php b/facteur/phpmailer-php4/class.pop3.php deleted file mode 100644 index 0a6d8d4..0000000 --- a/facteur/phpmailer-php4/class.pop3.php +++ /dev/null @@ -1,436 +0,0 @@ -<?php -/*~ class.pop3.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 2.0.4 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Author: Andy Prevost (project admininistrator) | -| Author: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' - -/** - * POP Before SMTP Authentication Class - * - * Author: Richard Davey (rich@corephp.co.uk) - * License: LGPL, see PHPMailer License - * - * Specifically for PHPMailer to allow POP before SMTP authentication. - * Does not yet work with APOP - if you have an APOP account, contact me - * and we can test changes to this script. - * - * This class is based on the structure of the SMTP class by Chris Ryan - * - * This class is rfc 1939 compliant and implements all the commands - * required for POP3 connection, authentication and disconnection. - * - * @package PHPMailer - * @author Richard Davey - */ - -class POP3 -{ - /** - * Default POP3 port - * @var int - */ - var $POP3_PORT = 110; - - /** - * Default Timeout - * @var int - */ - var $POP3_TIMEOUT = 30; - - /** - * POP3 Carriage Return + Line Feed - * @var string - */ - var $CRLF = "\r\n"; - - /** - * Displaying Debug warnings? (0 = now, 1+ = yes) - * @var int - */ - var $do_debug = 2; - - /** - * POP3 Mail Server - * @var string - */ - var $host; - - /** - * POP3 Port - * @var int - */ - var $port; - - /** - * POP3 Timeout Value - * @var int - */ - var $tval; - - /** - * POP3 Username - * @var string - */ - var $username; - - /** - * POP3 Password - * @var string - */ - var $password; - - /**#@+ - * @access private - */ - var $pop_conn; - var $connected; - var $error; // Error log array - /**#@-*/ - - /** - * Constructor, sets the initial values - * - * @return POP3 - */ - function POP3 () - { - $this->pop_conn = 0; - $this->connected = false; - $this->error = null; - } - - /** - * Combination of public events - connect, login, disconnect - * - * @param string $host - * @param integer $port - * @param integer $tval - * @param string $username - * @param string $password - */ - function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0) - { - $this->host = $host; - - // If no port value is passed, retrieve it - if ($port == false) - { - $this->port = $this->POP3_PORT; - } - else - { - $this->port = $port; - } - - // If no port value is passed, retrieve it - if ($tval == false) - { - $this->tval = $this->POP3_TIMEOUT; - } - else - { - $this->tval = $tval; - } - - $this->do_debug = $debug_level; - $this->username = $username; - $this->password = $password; - - // Refresh the error log - $this->error = null; - - // Connect - $result = $this->Connect($this->host, $this->port, $this->tval); - - if ($result) - { - $login_result = $this->Login($this->username, $this->password); - - if ($login_result) - { - $this->Disconnect(); - - return true; - } - - } - - // We need to disconnect regardless if the login succeeded - $this->Disconnect(); - - return false; - } - - /** - * Connect to the POP3 server - * - * @param string $host - * @param integer $port - * @param integer $tval - * @return boolean - */ - function Connect ($host, $port = false, $tval = 30) - { - // Are we already connected? - if ($this->connected) - { - return true; - } - - /* - On Windows this will raise a PHP Warning error if the hostname doesn't exist. - Rather than supress it with @fsockopen, let's capture it cleanly instead - */ - - set_error_handler(array(&$this, 'catchWarning')); - - // Connect to the POP3 server - $this->pop_conn = fsockopen($host, // POP3 Host - $port, // Port # - $errno, // Error Number - $errstr, // Error Message - $tval); // Timeout (seconds) - - // Restore the error handler - restore_error_handler(); - - // Does the Error Log now contain anything? - if ($this->error && $this->do_debug >= 1) - { - $this->displayErrors(); - } - - // Did we connect? - if ($this->pop_conn == false) - { - // It would appear not... - $this->error = array( - 'error' => "Failed to connect to server $host on port $port", - 'errno' => $errno, - 'errstr' => $errstr - ); - - if ($this->do_debug >= 1) - { - $this->displayErrors(); - } - - return false; - } - - // Increase the stream time-out - - // Check for PHP 4.3.0 or later - if (version_compare(phpversion(), '4.3.0', 'ge')) - { - stream_set_timeout($this->pop_conn, $tval, 0); - } - else - { - // Does not work on Windows - if (substr(PHP_OS, 0, 3) !== 'WIN') - { - socket_set_timeout($this->pop_conn, $tval, 0); - } - } - - // Get the POP3 server response - $pop3_response = $this->getResponse(); - - // Check for the +OK - if ($this->checkResponse($pop3_response)) - { - // The connection is established and the POP3 server is talking - $this->connected = true; - return true; - } - - } - - /** - * Login to the POP3 server (does not support APOP yet) - * - * @param string $username - * @param string $password - * @return boolean - */ - function Login ($username = '', $password = '') - { - if ($this->connected == false) - { - $this->error = 'Not connected to POP3 server'; - - if ($this->do_debug >= 1) - { - $this->displayErrors(); - } - } - - if (empty($username)) - { - $username = $this->username; - } - - if (empty($password)) - { - $password = $this->password; - } - - $pop_username = "USER $username" . $this->CRLF; - $pop_password = "PASS $password" . $this->CRLF; - - // Send the Username - $this->sendString($pop_username); - $pop3_response = $this->getResponse(); - - if ($this->checkResponse($pop3_response)) - { - // Send the Password - $this->sendString($pop_password); - $pop3_response = $this->getResponse(); - - if ($this->checkResponse($pop3_response)) - { - return true; - } - else - { - return false; - } - } - else - { - return false; - } - } - - /** - * Disconnect from the POP3 server - */ - function Disconnect () - { - $this->sendString('QUIT'); - - fclose($this->pop_conn); - } - - /* - --------------- - Private Methods - --------------- - */ - - /** - * Get the socket response back. - * $size is the maximum number of bytes to retrieve - * - * @param integer $size - * @return string - */ - function getResponse ($size = 128) - { - $pop3_response = fgets($this->pop_conn, $size); - - return $pop3_response; - } - - /** - * Send a string down the open socket connection to the POP3 server - * - * @param string $string - * @return integer - */ - function sendString ($string) - { - $bytes_sent = fwrite($this->pop_conn, $string, strlen($string)); - - return $bytes_sent; - - } - - /** - * Checks the POP3 server response for +OK or -ERR - * - * @param string $string - * @return boolean - */ - function checkResponse ($string) - { - if (substr($string, 0, 3) !== '+OK') - { - $this->error = array( - 'error' => "Server reported an error: $string", - 'errno' => 0, - 'errstr' => '' - ); - - if ($this->do_debug >= 1) - { - $this->displayErrors(); - } - - return false; - } - else - { - return true; - } - - } - - /** - * If debug is enabled, display the error message array - * - */ - function displayErrors () - { - echo '<pre>'; - - foreach ($this->error as $single_error) - { - print_r($single_error); - } - - echo '</pre>'; - } - - /** - * Takes over from PHP for the socket warning handler - * - * @param integer $errno - * @param string $errstr - * @param string $errfile - * @param integer $errline - */ - function catchWarning ($errno, $errstr, $errfile, $errline) - { - $this->error[] = array( - 'error' => "Connecting to the POP3 server raised a PHP warning: ", - 'errno' => $errno, - 'errstr' => $errstr - ); - } - - // End of class -} -?> diff --git a/facteur/phpmailer-php4/class.smtp.php b/facteur/phpmailer-php4/class.smtp.php deleted file mode 100644 index be084a1..0000000 --- a/facteur/phpmailer-php4/class.smtp.php +++ /dev/null @@ -1,1062 +0,0 @@ -<?php -/*~ class.smtp.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 2.0.4 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Author: Andy Prevost (project admininistrator) | -| Author: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2007, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' - -/** - * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP - * commands except TURN which will always return a not implemented - * error. SMTP also provides some utility methods for sending mail - * to an SMTP server. - * @package PHPMailer - * @author Chris Ryan - */ - -class SMTP -{ - /** - * SMTP server port - * @var int - */ - var $SMTP_PORT = 25; - - /** - * SMTP reply line ending - * @var string - */ - var $CRLF = "\r\n"; - - /** - * Sets whether debugging is turned on - * @var bool - */ - var $do_debug; # the level of debug to perform - - /** - * Sets VERP use on/off (default is off) - * @var bool - */ - var $do_verp = false; - - /**#@+ - * @access private - */ - var $smtp_conn; # the socket to the server - var $error; # error if any on the last call - var $helo_rply; # the reply the server sent to us for HELO - /**#@-*/ - - /** - * Initialize the class so that the data is in a known state. - * @access public - * @return void - */ - function SMTP() { - $this->smtp_conn = 0; - $this->error = null; - $this->helo_rply = null; - - $this->do_debug = 0; - } - - /************************************************************* - * CONNECTION FUNCTIONS * - ***********************************************************/ - - /** - * Connect to the server specified on the port specified. - * If the port is not specified use the default SMTP_PORT. - * If tval is specified then a connection will try and be - * established with the server for that number of seconds. - * If tval is not specified the default is 30 seconds to - * try on the connection. - * - * SMTP CODE SUCCESS: 220 - * SMTP CODE FAILURE: 421 - * @access public - * @return bool - */ - function Connect($host,$port=0,$tval=30) { - # set the error val to null so there is no confusion - $this->error = null; - - # make sure we are __not__ connected - if($this->connected()) { - # ok we are connected! what should we do? - # for now we will just give an error saying we - # are already connected - $this->error = array("error" => "Already connected to a server"); - return false; - } - - if(empty($port)) { - $port = $this->SMTP_PORT; - } - - #connect to the smtp server - $this->smtp_conn = fsockopen($host, # the host of the server - $port, # the port to use - $errno, # error number if any - $errstr, # error message if any - $tval); # give up after ? secs - # verify we connected properly - if(empty($this->smtp_conn)) { - $this->error = array("error" => "Failed to connect to server", - "errno" => $errno, - "errstr" => $errstr); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": $errstr ($errno)" . $this->CRLF; - } - return false; - } - - # sometimes the SMTP server takes a little longer to respond - # so we will give it a longer timeout for the first read - // Windows still does not have support for this timeout function - if(substr(PHP_OS, 0, 3) != "WIN") - socket_set_timeout($this->smtp_conn, $tval, 0); - - # get any announcement stuff - $announce = $this->get_lines(); - - # set the timeout of any socket functions at 1/10 of a second - //if(function_exists("socket_set_timeout")) - // socket_set_timeout($this->smtp_conn, 0, 100000); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $announce; - } - - return true; - } - - /** - * Performs SMTP authentication. Must be run after running the - * Hello() method. Returns true if successfully authenticated. - * @access public - * @return bool - */ - function Authenticate($username, $password) { - // Start authentication - fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "AUTH not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded username - fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "Username not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - // Send encoded password - fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 235) { - $this->error = - array("error" => "Password not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Returns true if connected to a server otherwise false - * @access private - * @return bool - */ - function Connected() { - if(!empty($this->smtp_conn)) { - $sock_status = socket_get_status($this->smtp_conn); - if($sock_status["eof"]) { - # hmm this is an odd situation... the socket is - # valid but we are not connected anymore - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE:" . $this->CRLF . - "EOF caught while checking if connected"; - } - $this->Close(); - return false; - } - return true; # everything looks good - } - return false; - } - - /** - * Closes the socket and cleans up the state of the class. - * It is not considered good to use this function without - * first trying to use QUIT. - * @access public - * @return void - */ - function Close() { - $this->error = null; # so there is no confusion - $this->helo_rply = null; - if(!empty($this->smtp_conn)) { - # close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = 0; - } - } - - /*************************************************************** - * SMTP COMMANDS * - *************************************************************/ - - /** - * Issues a data command and sends the msg_data to the server - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a <CRLF> with the message headers - * and the message body being seperated by and additional <CRLF>. - * - * Implements rfc 821: DATA <CRLF> - * - * SMTP CODE INTERMEDIATE: 354 - * [data] - * <CRLF>.<CRLF> - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 552,554,451,452 - * SMTP CODE FAILURE: 451,554 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Data($msg_data) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Data() without being connected"); - return false; - } - - fputs($this->smtp_conn,"DATA" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 354) { - $this->error = - array("error" => "DATA command not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # the server is ready to accept data! - # according to rfc 821 we should not send more than 1000 - # including the CRLF - # characters on a single line so we will break the data up - # into lines by \r and/or \n then if needed we will break - # each of those into smaller lines to fit within the limit. - # in addition we will be looking for lines that start with - # a period '.' and append and additional period '.' to that - # line. NOTE: this does not count towards are limit. - - # normalize the line breaks so we know the explode works - $msg_data = str_replace("\r\n","\n",$msg_data); - $msg_data = str_replace("\r","\n",$msg_data); - $lines = explode("\n",$msg_data); - - # we need to find a good way to determine is headers are - # in the msg_data or if it is a straight msg body - # currently I am assuming rfc 822 definitions of msg headers - # and if the first field of the first line (':' sperated) - # does not contain a space then it _should_ be a header - # and we can process all lines before a blank "" line as - # headers. - $field = substr($lines[0],0,strpos($lines[0],":")); - $in_headers = false; - if(!empty($field) && !strstr($field," ")) { - $in_headers = true; - } - - $max_line_length = 998; # used below; set here for ease in change - - while(list(,$line) = @each($lines)) { - $lines_out = null; - if($line == "" && $in_headers) { - $in_headers = false; - } - # ok we need to break this line up into several - # smaller lines - while(strlen($line) > $max_line_length) { - $pos = strrpos(substr($line,0,$max_line_length)," "); - - # Patch to fix DOS attack - if(!$pos) { - $pos = $max_line_length - 1; - } - - $lines_out[] = substr($line,0,$pos); - $line = substr($line,$pos + 1); - # if we are processing headers we need to - # add a LWSP-char to the front of the new line - # rfc 822 on long msg headers - if($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - # now send the lines to the server - while(list(,$line_out) = @each($lines_out)) { - if(strlen($line_out) > 0) - { - if(substr($line_out, 0, 1) == ".") { - $line_out = "." . $line_out; - } - } - fputs($this->smtp_conn,$line_out . $this->CRLF); - } - } - - # ok all the message data has been sent so lets get this - # over with aleady - fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "DATA not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Expand takes the name and asks the server to list all the - * people who are members of the _list_. Expand will return - * back and array of the result or false if an error occurs. - * Each value in the array returned has the format of: - * [ <full-name> <sp> ] <path> - * The definition of <path> is defined in rfc 821 - * - * Implements rfc 821: EXPN <SP> <string> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 550 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string array - */ - function Expand($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Expand() without being connected"); - return false; - } - - fputs($this->smtp_conn,"EXPN " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "EXPN not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - # parse the reply and place in our array to return to user - $entries = explode($this->CRLF,$rply); - while(list(,$l) = @each($entries)) { - $list[] = substr($l,4); - } - - return $list; - } - - /** - * Sends the HELO command to the smtp server. - * This makes sure that we and the server are in - * the same known state. - * - * Implements from rfc 821: HELO <SP> <domain> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 501, 504, 421 - * @access public - * @return bool - */ - function Hello($host="") { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Hello() without being connected"); - return false; - } - - # if a hostname for the HELO was not specified determine - # a suitable one to send - if(empty($host)) { - # we need to determine some sort of appopiate default - # to send to the server - $host = "localhost"; - } - - // Send extended hello first (RFC 2821) - if(!$this->SendHello("EHLO", $host)) - { - if(!$this->SendHello("HELO", $host)) - return false; - } - - return true; - } - - /** - * Sends a HELO/EHLO command. - * @access private - * @return bool - */ - function SendHello($hello, $host) { - fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER: " . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => $hello . " not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - $this->helo_rply = $rply; - - return true; - } - - /** - * Gets help information on the keyword specified. If the keyword - * is not specified then returns generic help, ussually contianing - * A list of keywords that help is available on. This function - * returns the results back to the user. It is up to the user to - * handle the returned data. If an error occurs then false is - * returned with $this->error set appropiately. - * - * Implements rfc 821: HELP [ <SP> <string> ] <CRLF> - * - * SMTP CODE SUCCESS: 211,214 - * SMTP CODE ERROR : 500,501,502,504,421 - * @access public - * @return string - */ - function Help($keyword="") { - $this->error = null; # to avoid confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Help() without being connected"); - return false; - } - - $extra = ""; - if(!empty($keyword)) { - $extra = " " . $keyword; - } - - fputs($this->smtp_conn,"HELP" . $extra . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 211 && $code != 214) { - $this->error = - array("error" => "HELP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return $rply; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. - * - * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,421 - * @access public - * @return bool - */ - function Mail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Mail() without being connected"); - return false; - } - - $useVerp = ($this->do_verp ? "XVERP" : ""); - fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "MAIL not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the command NOOP to the SMTP server. - * - * Implements from rfc 821: NOOP <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 421 - * @access public - * @return bool - */ - function Noop() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Noop() without being connected"); - return false; - } - - fputs($this->smtp_conn,"NOOP" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "NOOP not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the quit command to the server and then closes the socket - * if there is no error or the $close_on_error argument is true. - * - * Implements from rfc 821: QUIT <CRLF> - * - * SMTP CODE SUCCESS: 221 - * SMTP CODE ERROR : 500 - * @access public - * @return bool - */ - function Quit($close_on_error=true) { - $this->error = null; # so there is no confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Quit() without being connected"); - return false; - } - - # send the quit command to the server - fputs($this->smtp_conn,"quit" . $this->CRLF); - - # get any good-bye messages - $byemsg = $this->get_lines(); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $byemsg; - } - - $rval = true; - $e = null; - - $code = substr($byemsg,0,3); - if($code != 221) { - # use e as a tmp var cause Close will overwrite $this->error - $e = array("error" => "SMTP server rejected quit command", - "smtp_code" => $code, - "smtp_rply" => substr($byemsg,4)); - $rval = false; - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $e["error"] . ": " . - $byemsg . $this->CRLF; - } - } - - if(empty($e) || $close_on_error) { - $this->Close(); - } - - return $rval; - } - - /** - * Sends the command RCPT to the SMTP server with the TO: argument of $to. - * Returns true if the recipient was accepted false if it was rejected. - * - * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF> - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,552,553,450,451,452 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - function Recipient($to) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Recipient() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "RCPT not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Sends the RSET command to abort and transaction that is - * currently in progress. Returns true if successful false - * otherwise. - * - * Implements rfc 821: RSET <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500,501,504,421 - * @access public - * @return bool - */ - function Reset() { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Reset() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RSET" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "RSET failed", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in. - * - * Implements rfc 821: SEND <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function Send($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Send() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SEND FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SEND not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * - * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendAndMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendAndMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SAML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in or mail it to them if they are not. - * - * Implements rfc 821: SOML <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - function SendOrMail($from) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendOrMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SOML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250) { - $this->error = - array("error" => "SOML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return true; - } - - /** - * This is an optional command for SMTP that this class does not - * support. This method is here to make the RFC821 Definition - * complete for this class and __may__ be implimented in the future - * - * Implements from rfc 821: TURN <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 502 - * SMTP CODE ERROR : 500, 503 - * @access public - * @return bool - */ - function Turn() { - $this->error = array("error" => "This method, TURN, of the SMTP ". - "is not implemented"); - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF; - } - return false; - } - - /** - * Verifies that the name is recognized by the server. - * Returns false if the name could not be verified otherwise - * the response from the server is returned. - * - * Implements rfc 821: VRFY <SP> <string> <CRLF> - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,553 - * SMTP CODE ERROR : 500,501,502,421 - * @access public - * @return int - */ - function Verify($name) { - $this->error = null; # so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Verify() without being connected"); - return false; - } - - fputs($this->smtp_conn,"VRFY " . $name . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $this->CRLF . $rply; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "VRFY failed on name '$name'", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . - ": " . $rply . $this->CRLF; - } - return false; - } - return $rply; - } - - /******************************************************************* - * INTERNAL FUNCTIONS * - ******************************************************************/ - - /** - * Read in as many lines as possible - * either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * @access private - * @return string - */ - function get_lines() { - $data = ""; - while($str = @fgets($this->smtp_conn,515)) { - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data was \"$data\"" . - $this->CRLF; - echo "SMTP -> get_lines(): \$str is \"$str\"" . - $this->CRLF; - } - $data .= $str; - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF; - } - # if the 4th character is a space then we are done reading - # so just break the loop - if(substr($str,3,1) == " ") { break; } - } - return $data; - } - -} - - - ?> diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ar.php b/facteur/phpmailer-php4/language/phpmailer.lang-ar.php deleted file mode 100644 index c7f343a..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ar.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Arabic Version, UTF-8 - * by : bahjat al mostafa <bahjat983@hotmail.com> - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'You must provide at least one ' . - 'recipient email address.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer غير مدعوم.'; -$PHPMAILER_LANG['execute'] = 'لم أستطع تنÙيذ : '; -$PHPMAILER_LANG['instantiate'] = 'لم نستطع توÙير خدمة البريد.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: لم نستطع تأكيد الهوية.'; -$PHPMAILER_LANG['from_failed'] = 'البريد التالي لم نستطع ارسال البريد له : '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: الأخطاء التالية ' . - 'ÙØ´Ù„ ÙÙŠ الارسال لكل من : '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: لم يتم قبول المعلومات .'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: لم نستطع الاتصال بمخدم SMTP.'; -$PHPMAILER_LANG['file_access'] = 'لم نستطع الوصول للملÙ: '; -$PHPMAILER_LANG['file_open'] = 'File Error: لم نستطع ÙØªØ الملÙ: '; -$PHPMAILER_LANG['encoding'] = 'ترميز غير معروÙ: '; -$PHPMAILER_LANG['signing'] = 'خطأ ÙÙŠ التوقيع: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-br.php b/facteur/phpmailer-php4/language/phpmailer.lang-br.php deleted file mode 100644 index dece225..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-br.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Portuguese Version - * By Paulo Henrique Garcia - paulo@controllerweb.com.br - */ - -$PHPMAILER_LANG = array(); -$PHPMAILER_LANG['provide_address'] = 'Você deve fornecer pelo menos um endereço de destinatário de email.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não suportado.'; -$PHPMAILER_LANG['execute'] = 'Não foi possÃvel executar: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possÃvel instanciar a função mail.'; -$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possÃvel autenticar.'; -$PHPMAILER_LANG['from_failed'] = 'Os endereços de rementente a seguir falharam: '; -$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os endereços de destinatário a seguir falharam: '; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados não aceitos.'; -$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possÃvel conectar com o servidor SMTP.'; -$PHPMAILER_LANG['file_access'] = 'Não foi possÃvel acessar o arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possÃvel abrir o arquivo: '; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ca.php b/facteur/phpmailer-php4/language/phpmailer.lang-ca.php deleted file mode 100644 index dfc8370..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ca.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Catalan Version - * By Ivan: web AT microstudi DOT com - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'S\'ha de proveir almenys una adreça d\'email com a destinatari.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; -$PHPMAILER_LANG['execute'] = 'No es pot executar: '; -$PHPMAILER_LANG['instantiate'] = 'No s\'ha pogut crear una instà ncia de la funció Mail.'; -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s\'hapogut autenticar.'; -$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; -$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l\'arxiu: '; -$PHPMAILER_LANG['file_open'] = 'Error d\'Arxiu: No es pot obrir l\'arxiu: '; -$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ch.php b/facteur/phpmailer-php4/language/phpmailer.lang-ch.php deleted file mode 100644 index 5251402..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ch.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Chinese Version - * By LiuXin: www.80x86.cn/blog/ - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = '您必须æä¾›è‡³å°‘一个 收信人的email地å€ã€‚'; -$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的å‘é€é‚®ä»¶çš„æ–¹æ³•并䏿”¯æŒã€‚'; -$PHPMAILER_LANG['execute'] = 'ä¸èƒ½æ‰§è¡Œ: '; -$PHPMAILER_LANG['instantiate'] = 'ä¸èƒ½å®žçްmail方法。'; -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验è¯å¤±è´¥ã€‚'; -$PHPMAILER_LANG['from_failed'] = '下é¢çš„å‘é€åœ°å€é‚®ä»¶å‘é€å¤±è´¥äº†ï¼š '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下é¢çš„ æ”¶ä»¶äººå¤±è´¥äº†ï¼š '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: æ•°æ®ä¸å¯æŽ¥å—。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: ä¸èƒ½è¿žæŽ¥SMTP主机。'; -$PHPMAILER_LANG['file_access'] = 'ä¸èƒ½è®¿é—®æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['file_open'] = '文件错误:ä¸èƒ½æ‰“开文件:'; -$PHPMAILER_LANG['encoding'] = '未知编ç :'; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-cz.php b/facteur/phpmailer-php4/language/phpmailer.lang-cz.php deleted file mode 100644 index 80b4eea..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-cz.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Czech Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG["provide_address"] = 'MusÃte zadat alespoò jednu emailovou adresu pøÃjemce.'; -$PHPMAILER_LANG["mailer_not_supported"] = ' mailový klient nenà podporován.'; -$PHPMAILER_LANG["execute"] = 'Nelze provést: '; -$PHPMAILER_LANG["instantiate"] = 'Nelze vytvoøit instanci emailové funkce.'; -$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Chyba autentikace.'; -$PHPMAILER_LANG["from_failed"] = 'NásledujÃcà adresa From je nesprávná: '; -$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: Adresy pøÃjemcù nejsou správné ' . -$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data nebyla pøijata'; -$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Nelze navázat spojenà se SMTP serverem.'; -$PHPMAILER_LANG["file_access"] = 'Soubor nenalezen: '; -$PHPMAILER_LANG["file_open"] = 'File Error: Nelze otevøÃt soubor pro ètenÃ: '; -$PHPMAILER_LANG["encoding"] = 'Neznámé kódovánÃ: '; -$PHPMAILER_LANG["signing"] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-de.php b/facteur/phpmailer-php4/language/phpmailer.lang-de.php deleted file mode 100644 index 7e23f4b..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-de.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * German Version - * Thanks to Yann-Patrick Schlame for the latest update! - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfänger Emailadresse an.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.'; -$PHPMAILER_LANG['execute'] = 'Konnte folgenden Befehl nicht ausführen: '; -$PHPMAILER_LANG['instantiate'] = 'Mail Funktion konnte nicht initialisiert werden.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Fehler: Authentifizierung fehlgeschlagen.'; -$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Fehler: Die folgenden Empfänger sind nicht korrekt: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Fehler: Daten werden nicht akzeptiert.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.'; -$PHPMAILER_LANG['file_access'] = 'Zugriff auf folgende Datei fehlgeschlagen: '; -$PHPMAILER_LANG['file_open'] = 'Datei Fehler: konnte folgende Datei nicht öffnen: '; -$PHPMAILER_LANG['encoding'] = 'Unbekanntes Encoding-Format: '; -$PHPMAILER_LANG['signing'] = 'Fehler beim Signieren: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-dk.php b/facteur/phpmailer-php4/language/phpmailer.lang-dk.php deleted file mode 100644 index 120fd3b..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-dk.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Danish Version - * Author: Mikael Stokkebro <info@stokkebro.dk> */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; -$PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge pÃ¥.'; -$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; -$PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke Ã¥bne filen: '; -$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-en.php b/facteur/phpmailer-php4/language/phpmailer.lang-en.php deleted file mode 100644 index 41906b1..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-en.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * English Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'You must provide at least one recipient email address.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer is not supported.'; -$PHPMAILER_LANG['execute'] = 'Could not execute: '; -$PHPMAILER_LANG['instantiate'] = 'Could not instantiate mail function.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Could not authenticate.'; -$PHPMAILER_LANG['from_failed'] = 'The following From address failed: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: The following recipients failed: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Data not accepted.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Could not connect to SMTP host.'; -$PHPMAILER_LANG['file_access'] = 'Could not access file: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Could not open file: '; -$PHPMAILER_LANG['encoding'] = 'Unknown encoding: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-es.php b/facteur/phpmailer-php4/language/phpmailer.lang-es.php deleted file mode 100644 index b0d7d22..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-es.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Versión en español - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Debe proveer al menos una dirección de email como destinatario.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; -$PHPMAILER_LANG['execute'] = 'No puedo ejecutar: '; -$PHPMAILER_LANG['instantiate'] = 'No pude crear una instancia de la función Mail.'; -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No se pudo autentificar.'; -$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinatarios fallaron: '; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No puedo conectar al servidor SMTP.'; -$PHPMAILER_LANG['file_access'] = 'No puedo acceder al archivo: '; -$PHPMAILER_LANG['file_open'] = 'Error de Archivo: No puede abrir el archivo: '; -$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; -$PHPMAILER_LANG['signing'] = 'Error al firmar: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-et.php b/facteur/phpmailer-php4/language/phpmailer.lang-et.php deleted file mode 100644 index 943680c..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-et.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Estonian Version - * By Indrek Päri - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; -$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; -$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; -$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; -$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; -$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; -$PHPMAILER_LANG['encoding'] = 'Tundmatu Unknown kodeering: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-fi.php b/facteur/phpmailer-php4/language/phpmailer.lang-fi.php deleted file mode 100644 index 970ebc0..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-fi.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Finnish Version - * By Jyry Kuukanen - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Aseta vähintään yksi vastaanottajan sähköpostiosoite.'; -$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.'; -$PHPMAILER_LANG['execute'] = 'Suoritus epäonnistui: '; -$PHPMAILER_LANG['instantiate'] = 'mail-funktion luonti epäonnistui.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP-virhe: käyttäjätunnistus epäonnistui.'; -$PHPMAILER_LANG['from_failed'] = 'Seuraava lähettäjän osoite on virheellinen: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-virhe: data on virheellinen.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; -$PHPMAILER_LANG['file_access'] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; -$PHPMAILER_LANG['file_open'] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; -$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-fo.php b/facteur/phpmailer-php4/language/phpmailer.lang-fo.php deleted file mode 100644 index b09414b..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-fo.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Faroese Version [language of the Faroe Islands, a Danish dominion] - * This file created: 11-06-2004 - * Supplied by Dávur Sørensen [www.profo-webdesign.dk] - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; -$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; -$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; -$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; -$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; -$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fÃlu: '; -$PHPMAILER_LANG['file_open'] = 'FÃlu feilur: Kundi ikki opna fÃlu: '; -$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-fr.php b/facteur/phpmailer-php4/language/phpmailer.lang-fr.php deleted file mode 100644 index b40ec21..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-fr.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * French Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.'; -$PHPMAILER_LANG['execute'] = 'Impossible de lancer l\'exécution : '; -$PHPMAILER_LANG['instantiate'] = 'Impossible d\'instancier la fonction mail.'; -$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : Echec de l\'authentification.'; -$PHPMAILER_LANG['from_failed'] = 'L\'adresse d\'expéditeur suivante a échouée : '; -$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : Les destinataires suivants sont en erreur : '; -$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : Données incorrects.'; -$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : Impossible de se connecter au serveur SMTP.'; -$PHPMAILER_LANG['file_access'] = 'Impossible d\'accéder au fichier : '; -$PHPMAILER_LANG['file_open'] = 'Erreur Fichier : ouverture impossible : '; -$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-hu.php b/facteur/phpmailer-php4/language/phpmailer.lang-hu.php deleted file mode 100644 index 5fac38a..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-hu.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Hungarian Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Meg kell adnod legalább egy cÃmzett email cÃmet.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' levelezõ nem támogatott.'; -$PHPMAILER_LANG['execute'] = 'Nem tudtam végrehajtani: '; -$PHPMAILER_LANG['instantiate'] = 'Nem sikerült példányosÃtani a mail funkciót.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Hiba: Sikertelen autentikáció.'; -$PHPMAILER_LANG['from_failed'] = 'Az alábbi Feladó cÃm hibás: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hiba: Az alábbi cÃmzettek hibásak: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hiba: Nem elfogadható adat.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Hiba: Nem tudtam csatlakozni az SMTP host-hoz.'; -$PHPMAILER_LANG['file_access'] = 'Nem sikerült elérni a következõ fájlt: '; -$PHPMAILER_LANG['file_open'] = 'Fájl Hiba: Nem sikerült megnyitni a következõ fájlt: '; -$PHPMAILER_LANG['encoding'] = 'Ismeretlen kódolás: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-it.php b/facteur/phpmailer-php4/language/phpmailer.lang-it.php deleted file mode 100644 index 76a9f3a..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-it.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file. -* Italian version -* @package PHPMailer -* @author Ilias Bartolini <brain79@inwind.it>*/ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; -$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; -$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; -$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi'. - 'destinatari hanno generato errore: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Data non accettati dal'. - 'server.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; -$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; -$PHPMAILER_LANG['encoding'] = 'Encoding set dei caratteri sconosciuto: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ja.php b/facteur/phpmailer-php4/language/phpmailer.lang-ja.php deleted file mode 100644 index 6848ca3..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ja.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Japanese Version - * By Mitsuhiro Yoshida - http://mitstek.com/ - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'å°‘ãªãã¨ã‚‚1ã¤ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ 指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'; -$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。'; -$PHPMAILER_LANG['execute'] = '実行ã§ãã¾ã›ã‚“ã§ã—ãŸ: '; -$PHPMAILER_LANG['instantiate'] = 'ãƒ¡ãƒ¼ãƒ«é–¢æ•°ãŒæ£å¸¸ã«å‹•作ã—ã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: èªè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['from_failed'] = '次ã®Fromアドレスã«é–“é•ã„ãŒã‚りã¾ã™: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次ã®å—信者アドレス㫠間é•ã„ãŒã‚りã¾ã™: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データãŒå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPãƒ›ã‚¹ãƒˆã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['file_access'] = 'ファイルã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“: '; -$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開ã‘ã¾ã›ã‚“: '; -$PHPMAILER_LANG['encoding'] = '䏿˜Žãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-nl.php b/facteur/phpmailer-php4/language/phpmailer.lang-nl.php deleted file mode 100644 index 269b152..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-nl.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Dutch Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Er moet tenmiste één ontvanger emailadres opgegeven worden.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; -$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; -$PHPMAILER_LANG['instantiate'] = 'Kon mail functie niet initialiseren.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Fout: authenticatie mislukt.'; -$PHPMAILER_LANG['from_failed'] = 'De volgende afzender adressen zijn mislukt: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Fout: De volgende ontvangers zijn mislukt: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Fout: Data niet geaccepteerd.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Fout: Kon niet verbinden met SMTP host.'; -$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; -$PHPMAILER_LANG['file_open'] = 'Bestandsfout: Kon bestand niet openen: '; -$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-no.php b/facteur/phpmailer-php4/language/phpmailer.lang-no.php deleted file mode 100644 index 184d885..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-no.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Norwegian Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Du mÃ¥ ha med minst en mottager adresse.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer er ikke supportert.'; -$PHPMAILER_LANG['execute'] = 'Kunne ikke utføre: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke instantiate mail funksjonen.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Feil: Kunne ikke authentisere.'; -$PHPMAILER_LANG['from_failed'] = 'Følgende Fra feilet: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feil: Følgende mottagere feilet: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Feil: Data ble ikke akseptert.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Feil: Kunne ikke koble til SMTP host.'; -$PHPMAILER_LANG['file_access'] = 'Kunne ikke fÃ¥ tilgang til filen: '; -$PHPMAILER_LANG['file_open'] = 'Fil feil: Kunne ikke Ã¥pne filen: '; -$PHPMAILER_LANG['encoding'] = 'Ukjent encoding: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-pl.php b/facteur/phpmailer-php4/language/phpmailer.lang-pl.php deleted file mode 100644 index bbc9cc9..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-pl.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Polish Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG["provide_address"] = 'Należy podać prawidÅ‚owy adres email Odbiorcy.'; -$PHPMAILER_LANG["mailer_not_supported"] = 'Wybrana metoda wysyÅ‚ki wiadomoÅ›ci nie jest obsÅ‚ugiwana.'; -$PHPMAILER_LANG["execute"] = 'Nie można uruchomić: '; -$PHPMAILER_LANG["instantiate"] = 'Nie można wywoÅ‚ać funkcji mail(). Sprawdź konfiguracjÄ™ serwera.'; -$PHPMAILER_LANG["authenticate"] = 'Błąd SMTP: Nie można przeprowadzić autentykacji.'; -$PHPMAILER_LANG["from_failed"] = 'NastÄ™pujÄ…cy adres Nadawcy jest jest nieprawidÅ‚owy: '; -$PHPMAILER_LANG["recipients_failed"] = 'Błąd SMTP: NastÄ™pujÄ…cy odbiorcy sÄ… nieprawidÅ‚owi: '; -$PHPMAILER_LANG["data_not_accepted"] = 'Błąd SMTP: Dane nie zostaÅ‚y przyjÄ™te.'; -$PHPMAILER_LANG["connect_host"] = 'Błąd SMTP: Nie można połączyć siÄ™ z wybranym hostem.'; -$PHPMAILER_LANG["file_access"] = 'Brak dostÄ™pu do pliku: '; -$PHPMAILER_LANG["file_open"] = 'Nie można otworzyć pliku: '; -$PHPMAILER_LANG["encoding"] = 'Nieznany sposób kodowania znaków: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ro.php b/facteur/phpmailer-php4/language/phpmailer.lang-ro.php deleted file mode 100644 index 4c6a468..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ro.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Romanian Version - * @package PHPMailer - * @author Catalin Constantin <catalin@dazoot.ro> */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; -$PHPMAILER_LANG['execute'] = 'Nu pot executa: '; -$PHPMAILER_LANG['instantiate'] = 'Nu am putut instantia functia mail.'; -$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Nu a functionat autentificarea.'; -$PHPMAILER_LANG['from_failed'] = 'Urmatoarele adrese From au dat eroare: '; -$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Urmatoarele adrese de mail au dat eroare: '; -$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Continutul mailului nu a fost acceptat.'; -$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Nu m-am putut conecta la adresa SMTP.'; -$PHPMAILER_LANG['file_access'] = 'Nu pot accesa fisierul: '; -$PHPMAILER_LANG['file_open'] = 'Eroare de fisier: Nu pot deschide fisierul: '; -$PHPMAILER_LANG['encoding'] = 'Encodare necunoscuta: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-ru.php b/facteur/phpmailer-php4/language/phpmailer.lang-ru.php deleted file mode 100644 index bc2dc2d..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-ru.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Russian Version by Alexey Chumakov <alex@chumakov.ru> */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'ПожалуйÑта, введите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один Ð°Ð´Ñ€ÐµÑ e-mail получателÑ.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - почтовый Ñервер не поддерживаетÑÑ.'; -$PHPMAILER_LANG['execute'] = 'Ðевозможно выполнить команду: '; -$PHPMAILER_LANG['instantiate'] = 'Ðевозможно запуÑтить функцию mail.'; -$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; -$PHPMAILER_LANG['from_failed'] = 'Ðеверный Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ: '; -$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: отправка по Ñледующим ' . - 'адреÑам получателей не удалаÑÑŒ: '; -$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не принÑты.'; -$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº Ñерверу SMTP.'; -$PHPMAILER_LANG['file_access'] = 'Ðет доÑтупа к файлу: '; -$PHPMAILER_LANG['file_open'] = 'Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл: '; -$PHPMAILER_LANG['encoding'] = 'ÐеизвеÑтный вид кодировки: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-se.php b/facteur/phpmailer-php4/language/phpmailer.lang-se.php deleted file mode 100644 index f9100a6..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-se.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Swedish Version - * Author: Johan Linnér <johan@linner.biz> */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'Du mÃ¥ste ange minst en mottagares e-postadress.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; -$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; -$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; -$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; -$PHPMAILER_LANG['file_access'] = 'Ingen Ã¥tkomst till fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; -$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-tr.php b/facteur/phpmailer-php4/language/phpmailer.lang-tr.php deleted file mode 100644 index 99c5ac4..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-tr.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer dil dosyasý. - * Türkçe Versiyonu - * ÃZYAZILIM - Elçin Özel - Can Yýlmaz - Mehmet Benlioðlu - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG['provide_address'] = 'En az bir tane mail adresi belirtmek zorundasýnýz alýcýnýn email adresi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailler desteklenmemektedir.'; -$PHPMAILER_LANG['execute'] = 'Çalýþtýrýlamýyor: '; -$PHPMAILER_LANG['instantiate'] = 'Örnek mail fonksiyonu yaratýlamadý.'; -$PHPMAILER_LANG['authenticate'] = 'SMTP Hatasý: Doðrulanamýyor.'; -$PHPMAILER_LANG['from_failed'] = 'Baþarýsýz olan gönderici adresi: '; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hatasý: alýcýlara ulaþmadý: '; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hatasý: Veri kabul edilmedi.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Hatasý: SMTP hosta baðlanýlamýyor.'; -$PHPMAILER_LANG['file_access'] = 'Dosyaya eriþilemiyor: '; -$PHPMAILER_LANG['file_open'] = 'Dosya Hatasý: Dosya açýlamýyor: '; -$PHPMAILER_LANG['encoding'] = 'Bilinmeyen þifreleme: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-zh.php b/facteur/phpmailer-php4/language/phpmailer.lang-zh.php deleted file mode 100644 index 31c10fa..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-zh.php +++ /dev/null @@ -1,23 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Traditional Chinese Version - * @author liqwei <liqwei@liqwei.com> - */ - -$PHPMAILER_LANG = array(); -$PHPMAILER_LANG['provide_address'] = 'å¿…é ˆæä¾›è‡³å°‘一個收件人地å€ã€‚'; -$PHPMAILER_LANG['mailer_not_supported'] = '發信客戶端ä¸è¢«æ”¯æŒã€‚'; -$PHPMAILER_LANG['execute'] = '無法執行:'; -$PHPMAILER_LANG['instantiate'] = '未知函數調用。'; -$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登錄失敗。'; -$PHPMAILER_LANG['from_failed'] = '發é€åœ°å€éŒ¯èª¤ï¼š'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:收件人地å€éŒ¯èª¤ï¼š'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:數據ä¸è¢«æŽ¥å—。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連接到 SMTP 主機。'; -$PHPMAILER_LANG['file_access'] = 'ç„¡æ³•è¨ªå•æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['file_open'] = '文件錯誤:無法打開文件:'; -$PHPMAILER_LANG['encoding'] = '未知編碼: '; -$PHPMAILER_LANG['signing'] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php4/language/phpmailer.lang-zh_cn.php b/facteur/phpmailer-php4/language/phpmailer.lang-zh_cn.php deleted file mode 100644 index b01d806..0000000 --- a/facteur/phpmailer-php4/language/phpmailer.lang-zh_cn.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * PHPMailer language file. - * Simplified Chinese Version - * @author liqwei <liqwei@liqwei.com> - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG["provide_address"] = 'å¿…é¡»æä¾›è‡³å°‘一个收件人地å€ã€‚'; -$PHPMAILER_LANG["mailer_not_supported"] = 'å‘信客户端ä¸è¢«æ”¯æŒã€‚'; -$PHPMAILER_LANG["execute"] = 'æ— æ³•æ‰§è¡Œï¼š'; -$PHPMAILER_LANG["instantiate"] = '未知函数调用。'; -$PHPMAILER_LANG["authenticate"] = 'SMTP 错误:登录失败。'; -$PHPMAILER_LANG["from_failed"] = 'å‘é€åœ°å€é”™è¯¯ï¼š'; -$PHPMAILER_LANG["recipients_failed"] = 'SMTP 错误:收件人地å€é”™è¯¯ï¼š'; -$PHPMAILER_LANG["data_not_accepted"] = 'SMTP 错误:数æ®ä¸è¢«æŽ¥å—。'; -$PHPMAILER_LANG["connect_host"] = 'SMTP é”™è¯¯ï¼šæ— æ³•è¿žæŽ¥åˆ° SMTP 主机。'; -$PHPMAILER_LANG["file_access"] = 'æ— æ³•è®¿é—®æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG["file_open"] = 'æ–‡ä»¶é”™è¯¯ï¼šæ— æ³•æ‰“å¼€æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG["encoding"] = '未知编ç : '; -$PHPMAILER_LANG["signing"] = 'Signing Error: '; -$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/LICENSE b/facteur/phpmailer-php5/LICENSE deleted file mode 100644 index 03851a3..0000000 --- a/facteur/phpmailer-php5/LICENSE +++ /dev/null @@ -1,504 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 2.1, February 1999 - - Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -[This is the first released version of the Lesser GPL. It also counts - as the successor of the GNU Library Public License, version 2, hence - the version number 2.1.] - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -Licenses are intended to guarantee your freedom to share and change -free software--to make sure the software is free for all its users. - - This license, the Lesser General Public License, applies to some -specially designated software packages--typically libraries--of the -Free Software Foundation and other authors who decide to use it. You -can use it too, but we suggest you first think carefully about whether -this license or the ordinary General Public License is the better -strategy to use in any particular case, based on the explanations below. - - When we speak of free software, we are referring to freedom of use, -not price. Our General Public Licenses are designed to make sure that -you have the freedom to distribute copies of free software (and charge -for this service if you wish); that you receive source code or can get -it if you want it; that you can change the software and use pieces of -it in new free programs; and that you are informed that you can do -these things. - - To protect your rights, we need to make restrictions that forbid -distributors to deny you these rights or to ask you to surrender these -rights. These restrictions translate to certain responsibilities for -you if you distribute copies of the library or if you modify it. - - For example, if you distribute copies of the library, whether gratis -or for a fee, you must give the recipients all the rights that we gave -you. You must make sure that they, too, receive or can get the source -code. If you link other code with the library, you must provide -complete object files to the recipients, so that they can relink them -with the library after making changes to the library and recompiling -it. And you must show them these terms so they know their rights. - - We protect your rights with a two-step method: (1) we copyright the -library, and (2) we offer you this license, which gives you legal -permission to copy, distribute and/or modify the library. - - To protect each distributor, we want to make it very clear that -there is no warranty for the free library. Also, if the library is -modified by someone else and passed on, the recipients should know -that what they have is not the original version, so that the original -author's reputation will not be affected by problems that might be -introduced by others. - - Finally, software patents pose a constant threat to the existence of -any free program. We wish to make sure that a company cannot -effectively restrict the users of a free program by obtaining a -restrictive license from a patent holder. Therefore, we insist that -any patent license obtained for a version of the library must be -consistent with the full freedom of use specified in this license. - - Most GNU software, including some libraries, is covered by the -ordinary GNU General Public License. This license, the GNU Lesser -General Public License, applies to certain designated libraries, and -is quite different from the ordinary General Public License. We use -this license for certain libraries in order to permit linking those -libraries into non-free programs. - - When a program is linked with a library, whether statically or using -a shared library, the combination of the two is legally speaking a -combined work, a derivative of the original library. The ordinary -General Public License therefore permits such linking only if the -entire combination fits its criteria of freedom. The Lesser General -Public License permits more lax criteria for linking other code with -the library. - - We call this license the "Lesser" General Public License because it -does Less to protect the user's freedom than the ordinary General -Public License. It also provides other free software developers Less -of an advantage over competing non-free programs. These disadvantages -are the reason we use the ordinary General Public License for many -libraries. However, the Lesser license provides advantages in certain -special circumstances. - - For example, on rare occasions, there may be a special need to -encourage the widest possible use of a certain library, so that it becomes -a de-facto standard. To achieve this, non-free programs must be -allowed to use the library. A more frequent case is that a free -library does the same job as widely used non-free libraries. In this -case, there is little to gain by limiting the free library to free -software only, so we use the Lesser General Public License. - - In other cases, permission to use a particular library in non-free -programs enables a greater number of people to use a large body of -free software. For example, permission to use the GNU C Library in -non-free programs enables many more people to use the whole GNU -operating system, as well as its variant, the GNU/Linux operating -system. - - Although the Lesser General Public License is Less protective of the -users' freedom, it does ensure that the user of a program that is -linked with the Library has the freedom and the wherewithal to run -that program using a modified version of the Library. - - The precise terms and conditions for copying, distribution and -modification follow. Pay close attention to the difference between a -"work based on the library" and a "work that uses the library". The -former contains code derived from the library, whereas the latter must -be combined with the library in order to run. - - GNU LESSER GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License Agreement applies to any software library or other -program which contains a notice placed by the copyright holder or -other authorized party saying it may be distributed under the terms of -this Lesser General Public License (also called "this License"). -Each licensee is addressed as "you". - - A "library" means a collection of software functions and/or data -prepared so as to be conveniently linked with application programs -(which use some of those functions and data) to form executables. - - The "Library", below, refers to any such software library or work -which has been distributed under these terms. A "work based on the -Library" means either the Library or any derivative work under -copyright law: that is to say, a work containing the Library or a -portion of it, either verbatim or with modifications and/or translated -straightforwardly into another language. (Hereinafter, translation is -included without limitation in the term "modification".) - - "Source code" for a work means the preferred form of the work for -making modifications to it. For a library, complete source code means -all the source code for all modules it contains, plus any associated -interface definition files, plus the scripts used to control compilation -and installation of the library. - - Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running a program using the Library is not restricted, and output from -such a program is covered only if its contents constitute a work based -on the Library (independent of the use of the Library in a tool for -writing it). Whether that is true depends on what the Library does -and what the program that uses the Library does. - - 1. You may copy and distribute verbatim copies of the Library's -complete source code as you receive it, in any medium, provided that -you conspicuously and appropriately publish on each copy an -appropriate copyright notice and disclaimer of warranty; keep intact -all the notices that refer to this License and to the absence of any -warranty; and distribute a copy of this License along with the -Library. - - You may charge a fee for the physical act of transferring a copy, -and you may at your option offer warranty protection in exchange for a -fee. - - 2. You may modify your copy or copies of the Library or any portion -of it, thus forming a work based on the Library, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) The modified work must itself be a software library. - - b) You must cause the files modified to carry prominent notices - stating that you changed the files and the date of any change. - - c) You must cause the whole of the work to be licensed at no - charge to all third parties under the terms of this License. - - d) If a facility in the modified Library refers to a function or a - table of data to be supplied by an application program that uses - the facility, other than as an argument passed when the facility - is invoked, then you must make a good faith effort to ensure that, - in the event an application does not supply such function or - table, the facility still operates, and performs whatever part of - its purpose remains meaningful. - - (For example, a function in a library to compute square roots has - a purpose that is entirely well-defined independent of the - application. Therefore, Subsection 2d requires that any - application-supplied function or table used by this function must - be optional: if the application does not supply it, the square - root function must still compute square roots.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Library, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Library, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Library. - -In addition, mere aggregation of another work not based on the Library -with the Library (or with a work based on the Library) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may opt to apply the terms of the ordinary GNU General Public -License instead of this License to a given copy of the Library. To do -this, you must alter all the notices that refer to this License, so -that they refer to the ordinary GNU General Public License, version 2, -instead of to this License. (If a newer version than version 2 of the -ordinary GNU General Public License has appeared, then you can specify -that version instead if you wish.) Do not make any other change in -these notices. - - Once this change is made in a given copy, it is irreversible for -that copy, so the ordinary GNU General Public License applies to all -subsequent copies and derivative works made from that copy. - - This option is useful when you wish to copy part of the code of -the Library into a program that is not a library. - - 4. You may copy and distribute the Library (or a portion or -derivative of it, under Section 2) in object code or executable form -under the terms of Sections 1 and 2 above provided that you accompany -it with the complete corresponding machine-readable source code, which -must be distributed under the terms of Sections 1 and 2 above on a -medium customarily used for software interchange. - - If distribution of object code is made by offering access to copy -from a designated place, then offering equivalent access to copy the -source code from the same place satisfies the requirement to -distribute the source code, even though third parties are not -compelled to copy the source along with the object code. - - 5. A program that contains no derivative of any portion of the -Library, but is designed to work with the Library by being compiled or -linked with it, is called a "work that uses the Library". Such a -work, in isolation, is not a derivative work of the Library, and -therefore falls outside the scope of this License. - - However, linking a "work that uses the Library" with the Library -creates an executable that is a derivative of the Library (because it -contains portions of the Library), rather than a "work that uses the -library". The executable is therefore covered by this License. -Section 6 states terms for distribution of such executables. - - When a "work that uses the Library" uses material from a header file -that is part of the Library, the object code for the work may be a -derivative work of the Library even though the source code is not. -Whether this is true is especially significant if the work can be -linked without the Library, or if the work is itself a library. The -threshold for this to be true is not precisely defined by law. - - If such an object file uses only numerical parameters, data -structure layouts and accessors, and small macros and small inline -functions (ten lines or less in length), then the use of the object -file is unrestricted, regardless of whether it is legally a derivative -work. (Executables containing this object code plus portions of the -Library will still fall under Section 6.) - - Otherwise, if the work is a derivative of the Library, you may -distribute the object code for the work under the terms of Section 6. -Any executables containing that work also fall under Section 6, -whether or not they are linked directly with the Library itself. - - 6. As an exception to the Sections above, you may also combine or -link a "work that uses the Library" with the Library to produce a -work containing portions of the Library, and distribute that work -under terms of your choice, provided that the terms permit -modification of the work for the customer's own use and reverse -engineering for debugging such modifications. - - You must give prominent notice with each copy of the work that the -Library is used in it and that the Library and its use are covered by -this License. You must supply a copy of this License. If the work -during execution displays copyright notices, you must include the -copyright notice for the Library among them, as well as a reference -directing the user to the copy of this License. Also, you must do one -of these things: - - a) Accompany the work with the complete corresponding - machine-readable source code for the Library including whatever - changes were used in the work (which must be distributed under - Sections 1 and 2 above); and, if the work is an executable linked - with the Library, with the complete machine-readable "work that - uses the Library", as object code and/or source code, so that the - user can modify the Library and then relink to produce a modified - executable containing the modified Library. (It is understood - that the user who changes the contents of definitions files in the - Library will not necessarily be able to recompile the application - to use the modified definitions.) - - b) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (1) uses at run time a - copy of the library already present on the user's computer system, - rather than copying library functions into the executable, and (2) - will operate properly with a modified version of the library, if - the user installs one, as long as the modified version is - interface-compatible with the version that the work was made with. - - c) Accompany the work with a written offer, valid for at - least three years, to give the same user the materials - specified in Subsection 6a, above, for a charge no more - than the cost of performing this distribution. - - d) If distribution of the work is made by offering access to copy - from a designated place, offer equivalent access to copy the above - specified materials from the same place. - - e) Verify that the user has already received a copy of these - materials or that you have already sent this user a copy. - - For an executable, the required form of the "work that uses the -Library" must include any data and utility programs needed for -reproducing the executable from it. However, as a special exception, -the materials to be distributed need not include anything that is -normally distributed (in either source or binary form) with the major -components (compiler, kernel, and so on) of the operating system on -which the executable runs, unless that component itself accompanies -the executable. - - It may happen that this requirement contradicts the license -restrictions of other proprietary libraries that do not normally -accompany the operating system. Such a contradiction means you cannot -use both them and the Library together in an executable that you -distribute. - - 7. You may place library facilities that are a work based on the -Library side-by-side in a single library together with other library -facilities not covered by this License, and distribute such a combined -library, provided that the separate distribution of the work based on -the Library and of the other library facilities is otherwise -permitted, and provided that you do these two things: - - a) Accompany the combined library with a copy of the same work - based on the Library, uncombined with any other library - facilities. This must be distributed under the terms of the - Sections above. - - b) Give prominent notice with the combined library of the fact - that part of it is a work based on the Library, and explaining - where to find the accompanying uncombined form of the same work. - - 8. You may not copy, modify, sublicense, link with, or distribute -the Library except as expressly provided under this License. Any -attempt otherwise to copy, modify, sublicense, link with, or -distribute the Library is void, and will automatically terminate your -rights under this License. However, parties who have received copies, -or rights, from you under this License will not have their licenses -terminated so long as such parties remain in full compliance. - - 9. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Library or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Library (or any work based on the -Library), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Library or works based on it. - - 10. Each time you redistribute the Library (or any work based on the -Library), the recipient automatically receives a license from the -original licensor to copy, distribute, link with or modify the Library -subject to these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties with -this License. - - 11. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Library at all. For example, if a patent -license would not permit royalty-free redistribution of the Library by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Library. - -If any portion of this section is held invalid or unenforceable under any -particular circumstance, the balance of the section is intended to apply, -and the section as a whole is intended to apply in other circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 12. If the distribution and/or use of the Library is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Library under this License may add -an explicit geographical distribution limitation excluding those countries, -so that distribution is permitted only in or among countries not thus -excluded. In such case, this License incorporates the limitation as if -written in the body of this License. - - 13. The Free Software Foundation may publish revised and/or new -versions of the Lesser General Public License from time to time. -Such new versions will be similar in spirit to the present version, -but may differ in detail to address new problems or concerns. - -Each version is given a distinguishing version number. If the Library -specifies a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Library does not specify a -license version number, you may choose any version ever published by -the Free Software Foundation. - - 14. If you wish to incorporate parts of the Library into other free -programs whose distribution conditions are incompatible with these, -write to the author to ask for permission. For software which is -copyrighted by the Free Software Foundation, write to the Free -Software Foundation; we sometimes make exceptions for this. Our -decision will be guided by the two goals of preserving the free status -of all derivatives of our free software and of promoting the sharing -and reuse of software generally. - - NO WARRANTY - - 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Libraries - - If you develop a new library, and you want it to be of the greatest -possible use to the public, we recommend making it free software that -everyone can redistribute and change. You can do so by permitting -redistribution under these terms (or, alternatively, under the terms of the -ordinary General Public License). - - To apply these terms, attach the following notices to the library. It is -safest to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least the -"copyright" line and a pointer to where the full notice is found. - - <one line to give the library's name and a brief idea of what it does.> - Copyright (C) <year> <name of author> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Also add information on how to contact you by electronic and paper mail. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the library, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - <signature of Ty Coon>, 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - - diff --git a/facteur/phpmailer-php5/README b/facteur/phpmailer-php5/README deleted file mode 100644 index 3670fb6..0000000 --- a/facteur/phpmailer-php5/README +++ /dev/null @@ -1,178 +0,0 @@ -/******************************************************************* -* The http://phpmailer.codeworxtech.com/ website now carries a few * -* advertisements through the Google Adsense network. Please visit * -* the advertiser sites and help us offset some of our costs. * -* Thanks .... * -********************************************************************/ - -PHPMailer -Full Featured Email Transfer Class for PHP -========================================== - -Version 2.1 (June 04 2008) - -With this release, we are announcing that the development of PHPMailer for PHP5 -will be our focus from this date on. We have implemented all the enhancements -and fixes from the latest release of PHPMailer for PHP4. - -Far more important, though, is that this release of PHPMailer (v2.1) is -fully tested with E_STRICT error checking enabled. - -** NOTE: WE HAVE A NEW LANGUAGE VARIABLE FOR DIGITALLY SIGNED S/MIME EMAILS. - IF YOU CAN HELP WITH LANGUAGES OTHER THAN ENGLISH AND SPANISH, IT WOULD BE - APPRECIATED. - -We have now added S/MIME functionality (ability to digitally sign emails). -BIG THANKS TO "sergiocambra" for posting this patch back in November 2007. -The "Signed Emails" functionality adds the Sign method to pass the private key -filename and the password to read it, and then email will be sent with -content-type multipart/signed and with the digital signature attached. - -A quick note on E_STRICT: - -- In about half the test environments the development version was subjected - to, an error was thrown for the date() functions (used at line 1565 and 1569). - This is NOT a PHPMailer error, it is the result of an incorrectly configured - PHP5 installation. The fix is to modify your 'php.ini' file and include the - date.timezone = America/New York - directive, (for your own server timezone) -- If you do get this error, and are unable to access your php.ini file, there is - a workaround. In your PHP script, add - date_default_timezone_set('America/Toronto'); - - * do NOT try to use - $myVar = date_default_timezone_get(); - as a test, it will throw an error. - -We have also included more example files to show the use of "sendmail", "mail()", -"smtp", and "gmail". - -We are also looking for more programmers to join the volunteer development team. -If you have an interest in this, please let us know. - -Enjoy! - - -Version 2.1.0beta1 & beta2 - -please note, this is BETA software -** DO NOT USE THIS IN PRODUCTION OR LIVE PROJECTS -INTENDED STRICTLY FOR TESTING - -** NOTE: - -As of November 2007, PHPMailer has a new project team headed by industry -veteran Andy Prevost (codeworxtech). The first release in more than two -years will focus on fixes, adding ease-of-use enhancements, provide -basic compatibility with PHP4 and PHP5 using PHP5 backwards compatibility -features. A new release is planned before year-end 2007 that will provide -full compatiblity with PHP4 and PHP5, as well as more bug fixes. - -We are looking for project developers to assist in restoring PHPMailer to -its leadership position. Our goals are to simplify use of PHPMailer, provide -good documentation and examples, and retain backward compatibility to level -1.7.3 standards. - -If you are interested in helping out, visit http://sourceforge.net/phpmailer -and indicate your interest. - -** - -http://phpmailer.sourceforge.net/ - -This software is licenced under the LGPL. Please read LICENSE for information on the -software availability and distribution. - -Class Features: -- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs -- Redundant SMTP servers -- Multipart/alternative emails for mail clients that do not read HTML email -- Support for 8bit, base64, binary, and quoted-printable encoding -- Uses the same methods as the very popular AspEmail active server (COM) component -- SMTP authentication -- Native language support -- Word wrap, and more! - -Why you might need it: - -Many PHP developers utilize email in their code. The only PHP function -that supports this is the mail() function. However, it does not expose -any of the popular features that many email clients use nowadays like -HTML-based emails and attachments. There are two proprietary -development tools out there that have all the functionality built into -easy to use classes: AspEmail(tm) and AspMail. Both of these -programs are COM components only available on Windows. They are also a -little pricey for smaller projects. - -Since I do Linux development I’ve missed these tools for my PHP coding. -So I built a version myself that implements the same methods (object -calls) that the Windows-based components do. It is open source and the -LGPL license allows you to place the class in your proprietary PHP -projects. - - -Installation: - -Copy class.phpmailer.php into your php.ini include_path. If you are -using the SMTP mailer then place class.smtp.php in your path as well. -In the language directory you will find several files like -phpmailer.lang-en.php. If you look right before the .php extension -that there are two letters. These represent the language type of the -translation file. For instance "en" is the English file and "br" is -the Portuguese file. Chose the file that best fits with your language -and place it in the PHP include path. If your language is English -then you have nothing more to do. If it is a different language then -you must point PHPMailer to the correct translation. To do this, call -the PHPMailer SetLanguage method like so: - -// To load the Portuguese version -$mail->SetLanguage("br", "/optional/path/to/language/directory/"); - -That's it. You should now be ready to use PHPMailer! - - -A Simple Example: - -<?php -require("class.phpmailer.php"); - -$mail = new PHPMailer(); - -$mail->IsSMTP(); // set mailer to use SMTP -$mail->Host = "smtp1.example.com;smtp2.example.com"; // specify main and backup server -$mail->SMTPAuth = true; // turn on SMTP authentication -$mail->Username = "jswan"; // SMTP username -$mail->Password = "secret"; // SMTP password - -$mail->From = "from@example.com"; -$mail->FromName = "Mailer"; -$mail->AddAddress("josh@example.net", "Josh Adams"); -$mail->AddAddress("ellen@example.com"); // name is optional -$mail->AddReplyTo("info@example.com", "Information"); - -$mail->WordWrap = 50; // set word wrap to 50 characters -$mail->AddAttachment("/var/tmp/file.tar.gz"); // add attachments -$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); // optional name -$mail->IsHTML(true); // set email format to HTML - -$mail->Subject = "Here is the subject"; -$mail->Body = "This is the HTML message body <b>in bold!</b>"; -$mail->AltBody = "This is the body in plain text for non-HTML mail clients"; - -if(!$mail->Send()) -{ - echo "Message could not be sent. <p>"; - echo "Mailer Error: " . $mail->ErrorInfo; - exit; -} - -echo "Message has been sent"; -?> - -CHANGELOG - -See ChangeLog.txt - -Download: http://sourceforge.net/project/showfiles.php?group_id=26031 - -Andy Prevost diff --git a/facteur/phpmailer-php5/class.phpmailer.php b/facteur/phpmailer-php5/class.phpmailer.php deleted file mode 100644 index 9cdd0f3..0000000 --- a/facteur/phpmailer-php5/class.phpmailer.php +++ /dev/null @@ -1,2320 +0,0 @@ -<?php -/*~ class.phpmailer.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 5.1 | -| Contact: via sourceforge.net support pages (also www.worxware.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Admin: Andy Prevost (project admininistrator) | -| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net | -| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net | -| Founder: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.worxware.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' -*/ - -/** - * PHPMailer - PHP email transport class - * NOTE: Requires PHP version 5 or later - * @package PHPMailer - * @author Andy Prevost - * @author Marcus Bointon - * @copyright 2004 - 2009 Andy Prevost - * @version $Id: class.phpmailer.php 447 2009-05-25 01:36:38Z codeworxtech $ - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - */ - -if (version_compare(PHP_VERSION, '5.0.0', '<') ) exit("Sorry, this version of PHPMailer will only run on PHP version 5 or greater!\n"); - -class PHPMailer { - - ///////////////////////////////////////////////// - // PROPERTIES, PUBLIC - ///////////////////////////////////////////////// - - /** - * Email priority (1 = High, 3 = Normal, 5 = low). - * @var int - */ - public $Priority = 3; - - /** - * Sets the CharSet of the message. - * @var string - */ - public $CharSet = 'iso-8859-1'; - - /** - * Sets the Content-type of the message. - * @var string - */ - public $ContentType = 'text/plain'; - - /** - * Sets the Encoding of the message. Options for this are - * "8bit", "7bit", "binary", "base64", and "quoted-printable". - * @var string - */ - public $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * @var string - */ - public $ErrorInfo = ''; - - /** - * Sets the From email address for the message. - * @var string - */ - public $From = 'root@localhost'; - - /** - * Sets the From name of the message. - * @var string - */ - public $FromName = 'Root User'; - - /** - * Sets the Sender email (Return-Path) of the message. If not empty, - * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. - * @var string - */ - public $Sender = ''; - - /** - * Sets the Subject of the message. - * @var string - */ - public $Subject = ''; - - /** - * Sets the Body of the message. This can be either an HTML or text body. - * If HTML then run IsHTML(true). - * @var string - */ - public $Body = ''; - - /** - * Sets the text-only body of the message. This automatically sets the - * email to multipart/alternative. This body can be read by mail - * clients that do not have HTML email capability such as mutt. Clients - * that can read HTML will view the normal Body. - * @var string - */ - public $AltBody = ''; - - /** - * Sets word wrapping on the body of the message to a given number of - * characters. - * @var int - */ - public $WordWrap = 0; - - /** - * Method to send mail: ("mail", "sendmail", or "smtp"). - * @var string - */ - public $Mailer = 'mail'; - - /** - * Sets the path of the sendmail program. - * @var string - */ - public $Sendmail = '/usr/sbin/sendmail'; - - /** - * Path to PHPMailer plugins. Useful if the SMTP class - * is in a different directory than the PHP include path. - * @var string - */ - public $PluginDir = ''; - - /** - * Sets the email address that a reading confirmation will be sent. - * @var string - */ - public $ConfirmReadingTo = ''; - - /** - * Sets the hostname to use in Message-Id and Received headers - * and as default HELO string. If empty, the value returned - * by SERVER_NAME is used or 'localhost.localdomain'. - * @var string - */ - public $Hostname = ''; - - /** - * Sets the message ID to be used in the Message-Id header. - * If empty, a unique id will be generated. - * @var string - */ - public $MessageID = ''; - - ///////////////////////////////////////////////// - // PROPERTIES FOR SMTP - ///////////////////////////////////////////////// - - /** - * Sets the SMTP hosts. All hosts must be separated by a - * semicolon. You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * Hosts will be tried in order. - * @var string - */ - public $Host = 'localhost'; - - /** - * Sets the default SMTP server port. - * @var int - */ - public $Port = 25; - - /** - * Sets the SMTP HELO of the message (Default is $Hostname). - * @var string - */ - public $Helo = ''; - - /** - * Sets connection prefix. - * Options are "", "ssl" or "tls" - * @var string - */ - public $SMTPSecure = ''; - - /** - * Sets SMTP authentication. Utilizes the Username and Password variables. - * @var bool - */ - public $SMTPAuth = false; - - /** - * Sets SMTP username. - * @var string - */ - public $Username = ''; - - /** - * Sets SMTP password. - * @var string - */ - public $Password = ''; - - /** - * Sets the SMTP server timeout in seconds. - * This function will not work with the win32 version. - * @var int - */ - public $Timeout = 10; - - /** - * Sets SMTP class debugging on or off. - * @var bool - */ - public $SMTPDebug = false; - - /** - * Prevents the SMTP connection from being closed after each mail - * sending. If this is set to true then to close the connection - * requires an explicit call to SmtpClose(). - * @var bool - */ - public $SMTPKeepAlive = false; - - /** - * Provides the ability to have the TO field process individual - * emails, instead of sending to entire TO addresses - * @var bool - */ - public $SingleTo = false; - - /** - * If SingleTo is true, this provides the array to hold the email addresses - * @var bool - */ - public $SingleToArray = array(); - - /** - * Provides the ability to change the line ending - * @var string - */ - public $LE = "\n"; - - /** - * Used with DKIM DNS Resource Record - * @var string - */ - public $DKIM_selector = 'phpmailer'; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_identity = ''; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_domain = ''; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_private = ''; - - /** - * Callback Action function name - * the function that handles the result of the send email action. Parameters: - * bool $result result of the send action - * string $to email address of the recipient - * string $cc cc email addresses - * string $bcc bcc email addresses - * string $subject the subject - * string $body the email body - * @var string - */ - public $action_function = ''; //'callbackAction'; - - /** - * Sets the PHPMailer Version number - * @var string - */ - public $Version = '5.1'; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE AND PROTECTED - ///////////////////////////////////////////////// - - private $smtp = NULL; - private $to = array(); - private $cc = array(); - private $bcc = array(); - private $ReplyTo = array(); - private $all_recipients = array(); - private $attachment = array(); - private $CustomHeader = array(); - private $message_type = ''; - private $boundary = array(); - protected $language = array(); - private $error_count = 0; - private $sign_cert_file = ""; - private $sign_key_file = ""; - private $sign_key_pass = ""; - private $exceptions = false; - - ///////////////////////////////////////////////// - // CONSTANTS - ///////////////////////////////////////////////// - - const STOP_MESSAGE = 0; // message only, continue processing - const STOP_CONTINUE = 1; // message?, likely ok to continue processing - const STOP_CRITICAL = 2; // message, plus full stop, critical error reached - - ///////////////////////////////////////////////// - // METHODS, VARIABLES - ///////////////////////////////////////////////// - - /** - * Constructor - * @param boolean $exceptions Should we throw external exceptions? - */ - public function __construct($exceptions = false) { - $this->exceptions = ($exceptions == true); - } - - /** - * Sets message type to HTML. - * @param bool $ishtml - * @return void - */ - public function IsHTML($ishtml = true) { - if ($ishtml) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Sets Mailer to send message using SMTP. - * @return void - */ - public function IsSMTP() { - $this->Mailer = 'smtp'; - } - - /** - * Sets Mailer to send message using PHP mail() function. - * @return void - */ - public function IsMail() { - $this->Mailer = 'mail'; - } - - /** - * Sets Mailer to send message using the $Sendmail program. - * @return void - */ - public function IsSendmail() { - if (!stristr(ini_get('sendmail_path'), 'sendmail')) { - $this->Sendmail = '/var/qmail/bin/sendmail'; - } - $this->Mailer = 'sendmail'; - } - - /** - * Sets Mailer to send message using the qmail MTA. - * @return void - */ - public function IsQmail() { - if (stristr(ini_get('sendmail_path'), 'qmail')) { - $this->Sendmail = '/var/qmail/bin/sendmail'; - } - $this->Mailer = 'sendmail'; - } - - ///////////////////////////////////////////////// - // METHODS, RECIPIENTS - ///////////////////////////////////////////////// - - /** - * Adds a "To" address. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddAddress($address, $name = '') { - return $this->AddAnAddress('to', $address, $name); - } - - /** - * Adds a "Cc" address. - * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddCC($address, $name = '') { - return $this->AddAnAddress('cc', $address, $name); - } - - /** - * Adds a "Bcc" address. - * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddBCC($address, $name = '') { - return $this->AddAnAddress('bcc', $address, $name); - } - - /** - * Adds a "Reply-to" address. - * @param string $address - * @param string $name - * @return boolean - */ - public function AddReplyTo($address, $name = '') { - return $this->AddAnAddress('ReplyTo', $address, $name); - } - - /** - * Adds an address to one of the recipient arrays - * Addresses that have been added already return false, but do not throw exceptions - * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo' - * @param string $address The email address to send to - * @param string $name - * @return boolean true on success, false if address already used or invalid in some way - * @access private - */ - private function AddAnAddress($kind, $address, $name = '') { - if (!preg_match('/^(to|cc|bcc|ReplyTo)$/', $kind)) { - echo 'Invalid recipient array: ' . kind; - return false; - } - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!self::ValidateAddress($address)) { - $this->SetError($this->Lang('invalid_address').': '. $address); - if ($this->exceptions) { - throw new phpmailerException($this->Lang('invalid_address').': '.$address); - } - echo $this->Lang('invalid_address').': '.$address; - return false; - } - if ($kind != 'ReplyTo') { - if (!isset($this->all_recipients[strtolower($address)])) { - array_push($this->$kind, array($address, $name)); - $this->all_recipients[strtolower($address)] = true; - return true; - } - } else { - if (!array_key_exists(strtolower($address), $this->ReplyTo)) { - $this->ReplyTo[strtolower($address)] = array($address, $name); - return true; - } - } - return false; -} - -/** - * Set the From and FromName properties - * @param string $address - * @param string $name - * @return boolean - */ - public function SetFrom($address, $name = '',$auto=1) { - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!self::ValidateAddress($address)) { - $this->SetError($this->Lang('invalid_address').': '. $address); - if ($this->exceptions) { - throw new phpmailerException($this->Lang('invalid_address').': '.$address); - } - echo $this->Lang('invalid_address').': '.$address; - return false; - } - $this->From = $address; - $this->FromName = $name; - if ($auto) { - if (empty($this->ReplyTo)) { - $this->AddAnAddress('ReplyTo', $address, $name); - } - if (empty($this->Sender)) { - $this->Sender = $address; - } - } - return true; - } - - /** - * Check that a string looks roughly like an email address should - * Static so it can be used without instantiation - * Tries to use PHP built-in validator in the filter extension (from PHP 5.2), falls back to a reasonably competent regex validator - * Conforms approximately to RFC2822 - * @link http://www.hexillion.com/samples/#Regex Original pattern found here - * @param string $address The email address to check - * @return boolean - * @static - * @access public - */ - public static function ValidateAddress($address) { - if (function_exists('filter_var')) { //Introduced in PHP 5.2 - if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) { - return false; - } else { - return true; - } - } else { - return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address); - } - } - - ///////////////////////////////////////////////// - // METHODS, MAIL SENDING - ///////////////////////////////////////////////// - - /** - * Creates message and assigns Mailer. If the message is - * not sent successfully then it returns false. Use the ErrorInfo - * variable to view description of the error. - * @return bool - */ - public function Send() { - try { - if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { - throw new phpmailerException($this->Lang('provide_address'), self::STOP_CRITICAL); - } - - // Set whether the message is multipart/alternative - if(!empty($this->AltBody)) { - $this->ContentType = 'multipart/alternative'; - } - - $this->error_count = 0; // reset errors - $this->SetMessageType(); - $header = $this->CreateHeader(); - $body = $this->CreateBody(); - - if (empty($this->Body)) { - throw new phpmailerException($this->Lang('empty_message'), self::STOP_CRITICAL); - } - - // digitally sign with DKIM if enabled - if ($this->DKIM_domain && $this->DKIM_private) { - $header_dkim = $this->DKIM_Add($header,$this->Subject,$body); - $header = str_replace("\r\n","\n",$header_dkim) . $header; - } - - // Choose the mailer and send through it - switch($this->Mailer) { - case 'sendmail': - return $this->SendmailSend($header, $body); - case 'smtp': - return $this->SmtpSend($header, $body); - default: - return $this->MailSend($header, $body); - } - - } catch (phpmailerException $e) { - $this->SetError($e->getMessage()); - if ($this->exceptions) { - throw $e; - } - echo $e->getMessage()."\n"; - return false; - } - } - - /** - * Sends mail using the $Sendmail program. - * @param string $header The message headers - * @param string $body The message body - * @access protected - * @return bool - */ - protected function SendmailSend($header, $body) { - if ($this->Sender != '') { - $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } else { - $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); - } - if ($this->SingleTo === true) { - foreach ($this->SingleToArray as $key => $val) { - if(!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, "To: " . $val . "\n"); - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - // implement call back function if it exists - $isSent = ($result == 0) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - if($result != 0) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - } else { - if(!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - // implement call back function if it exists - $isSent = ($result == 0) ? 1 : 0; - $this->doCallback($isSent,$this->to,$this->cc,$this->bcc,$this->Subject,$body); - if($result != 0) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - return true; - } - - /** - * Sends mail using the PHP mail() function. - * @param string $header The message headers - * @param string $body The message body - * @access protected - * @return bool - */ - protected function MailSend($header, $body) { - $toArr = array(); - foreach($this->to as $t) { - $toArr[] = $this->AddrFormat($t); - } - $to = implode(', ', $toArr); - - $params = sprintf("-oi -f %s", $this->Sender); - if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$to,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$to,$this->cc,$this->bcc,$this->Subject,$body); - } - } - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - if(!$rt) { - throw new phpmailerException($this->Lang('instantiate'), self::STOP_CRITICAL); - } - return true; - } - - /** - * Sends mail via SMTP using PhpSMTP - * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. - * @param string $header The message headers - * @param string $body The message body - * @uses SMTP - * @access protected - * @return bool - */ - protected function SmtpSend($header, $body) { - require_once $this->PluginDir . 'class.smtp.php'; - $bad_rcpt = array(); - - if(!$this->SmtpConnect()) { - throw new phpmailerException($this->Lang('smtp_connect_failed'), self::STOP_CRITICAL); - } - $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; - if(!$this->smtp->Mail($smtp_from)) { - throw new phpmailerException($this->Lang('from_failed') . $smtp_from, self::STOP_CRITICAL); - } - - // Attempt to send attach all recipients - foreach($this->to as $to) { - if (!$this->smtp->Recipient($to[0])) { - $bad_rcpt[] = $to[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,$to[0],'','',$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,$to[0],'','',$this->Subject,$body); - } - } - foreach($this->cc as $cc) { - if (!$this->smtp->Recipient($cc[0])) { - $bad_rcpt[] = $cc[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,'',$cc[0],'',$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,'',$cc[0],'',$this->Subject,$body); - } - } - foreach($this->bcc as $bcc) { - if (!$this->smtp->Recipient($bcc[0])) { - $bad_rcpt[] = $bcc[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,'','',$bcc[0],$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,'','',$bcc[0],$this->Subject,$body); - } - } - - - if (count($bad_rcpt) > 0 ) { //Create error message for any bad addresses - $badaddresses = implode(', ', $bad_rcpt); - throw new phpmailerException($this->Lang('recipients_failed') . $badaddresses); - } - if(!$this->smtp->Data($header . $body)) { - throw new phpmailerException($this->Lang('data_not_accepted'), self::STOP_CRITICAL); - } - if($this->SMTPKeepAlive == true) { - $this->smtp->Reset(); - } - return true; - } - - /** - * Initiates a connection to an SMTP server. - * Returns false if the operation failed. - * @uses SMTP - * @access public - * @return bool - */ - public function SmtpConnect() { - if(is_null($this->smtp)) { - $this->smtp = new SMTP(); - } - - $this->smtp->do_debug = $this->SMTPDebug; - $hosts = explode(';', $this->Host); - $index = 0; - $connection = $this->smtp->Connected(); - - // Retry while there is no connection - try { - while($index < count($hosts) && !$connection) { - $hostinfo = array(); - if (preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) { - $host = $hostinfo[1]; - $port = $hostinfo[2]; - } else { - $host = $hosts[$index]; - $port = $this->Port; - } - - $tls = ($this->SMTPSecure == 'tls'); - $ssl = ($this->SMTPSecure == 'ssl'); - - if ($this->smtp->Connect(($ssl ? 'ssl://':'').$host, $port, $this->Timeout)) { - - $hello = ($this->Helo != '' ? $this->Helo : $this->ServerHostname()); - $this->smtp->Hello($hello); - - if ($tls) { - if (!$this->smtp->StartTLS()) { - throw new phpmailerException($this->Lang('tls')); - } - - //We must resend HELO after tls negotiation - $this->smtp->Hello($hello); - } - - $connection = true; - if ($this->SMTPAuth) { - if (!$this->smtp->Authenticate($this->Username, $this->Password)) { - throw new phpmailerException($this->Lang('authenticate')); - } - } - } - $index++; - if (!$connection) { - throw new phpmailerException($this->Lang('connect_host')); - } - } - } catch (phpmailerException $e) { - $this->smtp->Reset(); - throw $e; - } - return true; - } - - /** - * Closes the active SMTP session if one exists. - * @return void - */ - public function SmtpClose() { - if(!is_null($this->smtp)) { - if($this->smtp->Connected()) { - $this->smtp->Quit(); - $this->smtp->Close(); - } - } - } - - /** - * Sets the language for all class error messages. - * Returns false if it cannot load the language file. The default language is English. - * @param string $langcode ISO 639-1 2-character language code (e.g. Portuguese: "br") - * @param string $lang_path Path to the language file directory - * @access public - */ - function SetLanguage($langcode = 'en', $lang_path = 'language/') { - //Define full set of translatable strings - $PHPMAILER_LANG = array( - 'provide_address' => 'You must provide at least one recipient email address.', - 'mailer_not_supported' => ' mailer is not supported.', - 'execute' => 'Could not execute: ', - 'instantiate' => 'Could not instantiate mail function.', - 'authenticate' => 'SMTP Error: Could not authenticate.', - 'from_failed' => 'The following From address failed: ', - 'recipients_failed' => 'SMTP Error: The following recipients failed: ', - 'data_not_accepted' => 'SMTP Error: Data not accepted.', - 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', - 'file_access' => 'Could not access file: ', - 'file_open' => 'File Error: Could not open file: ', - 'encoding' => 'Unknown encoding: ', - 'signing' => 'Signing Error: ', - 'smtp_error' => 'SMTP server error: ', - 'empty_message' => 'Message body empty', - 'invalid_address' => 'Invalid address', - 'variable_set' => 'Cannot set or reset variable: ' - ); - //Overwrite language-specific strings. This way we'll never have missing translations - no more "language string failed to load"! - $l = true; - if ($langcode != 'en') { //There is no English translation file - $l = @include $lang_path.'phpmailer.lang-'.$langcode.'.php'; - } - $this->language = $PHPMAILER_LANG; - return ($l == true); //Returns false if language not found - } - - /** - * Return the current array of language strings - * @return array - */ - public function GetTranslations() { - return $this->language; - } - - ///////////////////////////////////////////////// - // METHODS, MESSAGE CREATION - ///////////////////////////////////////////////// - - /** - * Creates recipient headers. - * @access public - * @return string - */ - public function AddrAppend($type, $addr) { - $addr_str = $type . ': '; - $addresses = array(); - foreach ($addr as $a) { - $addresses[] = $this->AddrFormat($a); - } - $addr_str .= implode(', ', $addresses); - $addr_str .= $this->LE; - - return $addr_str; - } - - /** - * Formats an address correctly. - * @access public - * @return string - */ - public function AddrFormat($addr) { - if (empty($addr[1])) { - return $this->SecureHeader($addr[0]); - } else { - return $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; - } - } - - /** - * Wraps message for use with mailers that do not - * automatically perform wrapping and for quoted-printable. - * Original written by philippe. - * @param string $message The message to wrap - * @param integer $length The line length to wrap to - * @param boolean $qp_mode Whether to run in Quoted-Printable mode - * @access public - * @return string - */ - public function WrapText($message, $length, $qp_mode = false) { - $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = (strtolower($this->CharSet) == "utf-8"); - - $message = $this->FixEOL($message); - if (substr($message, -1) == $this->LE) { - $message = substr($message, 0, -1); - } - - $line = explode($this->LE, $message); - $message = ''; - for ($i=0 ;$i < count($line); $i++) { - $line_part = explode(' ', $line[$i]); - $buf = ''; - for ($e = 0; $e<count($line_part); $e++) { - $word = $line_part[$e]; - if ($qp_mode and (strlen($word) > $length)) { - $space_left = $length - strlen($buf) - 1; - if ($e != 0) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf("=%s", $this->LE); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - $len = $length; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf("=%s", $this->LE); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - $buf .= ($e == 0) ? $word : (' ' . $word); - - if (strlen($buf) > $length and $buf_o != '') { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - } - $message .= $buf . $this->LE; - } - - return $message; - } - - /** - * Finds last character boundary prior to maxLength in a utf-8 - * quoted (printable) encoded string. - * Original written by Colin Brown. - * @access public - * @param string $encodedText utf-8 QP text - * @param int $maxLength find last character boundary prior to this length - * @return int - */ - public function UTF8CharBoundary($encodedText, $maxLength) { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, "="); - if ($encodedCharPos !== false) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - $maxLength = ($encodedCharPos == 0) ? $maxLength : - $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec >= 192) { // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - return $maxLength; - } - - - /** - * Set the body wrapping. - * @access public - * @return void - */ - public function SetWordWrap() { - if($this->WordWrap < 1) { - return; - } - - switch($this->message_type) { - case 'alt': - case 'alt_attachments': - $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->WrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assembles message header. - * @access public - * @return string The assembled header - */ - public function CreateHeader() { - $result = ''; - - // Set the boundaries - $uniq_id = md5(uniqid(time())); - $this->boundary[1] = 'b1_' . $uniq_id; - $this->boundary[2] = 'b2_' . $uniq_id; - - $result .= $this->HeaderLine('Date', self::RFCDate()); - if($this->Sender == '') { - $result .= $this->HeaderLine('Return-Path', trim($this->From)); - } else { - $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); - } - - // To be created automatically by mail() - if($this->Mailer != 'mail') { - if ($this->SingleTo === true) { - foreach($this->to as $t) { - $this->SingleToArray[] = $this->AddrFormat($t); - } - } else { - if(count($this->to) > 0) { - $result .= $this->AddrAppend('To', $this->to); - } elseif (count($this->cc) == 0) { - $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); - } - } - } - - $from = array(); - $from[0][0] = trim($this->From); - $from[0][1] = $this->FromName; - $result .= $this->AddrAppend('From', $from); - - // sendmail and mail() extract Cc from the header before sending - if(count($this->cc) > 0) { - $result .= $this->AddrAppend('Cc', $this->cc); - } - - // sendmail and mail() extract Bcc from the header before sending - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { - $result .= $this->AddrAppend('Bcc', $this->bcc); - } - - if(count($this->ReplyTo) > 0) { - $result .= $this->AddrAppend('Reply-to', $this->ReplyTo); - } - - // mail() sets the subject itself - if($this->Mailer != 'mail') { - $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); - } - - if($this->MessageID != '') { - $result .= $this->HeaderLine('Message-ID',$this->MessageID); - } else { - $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); - } - $result .= $this->HeaderLine('X-Priority', $this->Priority); - $result .= $this->HeaderLine('X-Mailer', 'PHPMailer '.$this->Version.' (phpmailer.sourceforge.net)'); - - if($this->ConfirmReadingTo != '') { - $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); - } - - // Add custom headers - for($index = 0; $index < count($this->CustomHeader); $index++) { - $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); - } - if (!$this->sign_key_file) { - $result .= $this->HeaderLine('MIME-Version', '1.0'); - $result .= $this->GetMailMIME(); - } - - return $result; - } - - /** - * Returns the message MIME. - * @access public - * @return string - */ - public function GetMailMIME() { - $result = ''; - switch($this->message_type) { - case 'plain': - $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); - $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); - break; - case 'attachments': - case 'alt_attachments': - if($this->InlineImageExists()){ - $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE); - } else { - $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - } - break; - case 'alt': - $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - } - - if($this->Mailer != 'mail') { - $result .= $this->LE.$this->LE; - } - - return $result; - } - - /** - * Assembles the message body. Returns an empty string on failure. - * @access public - * @return string The assembled message body - */ - public function CreateBody() { - $body = ''; - - if ($this->sign_key_file) { - $body .= $this->GetMailMIME(); - } - - $this->SetWordWrap(); - - switch($this->message_type) { - case 'alt': - $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); - $body .= $this->EncodeString($this->AltBody, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->EndBoundary($this->boundary[1]); - break; - case 'plain': - $body .= $this->EncodeString($this->Body, $this->Encoding); - break; - case 'attachments': - $body .= $this->GetBoundary($this->boundary[1], '', '', ''); - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE; - $body .= $this->AttachAll(); - break; - case 'alt_attachments': - $body .= sprintf("--%s%s", $this->boundary[1], $this->LE); - $body .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE); - $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body - $body .= $this->EncodeString($this->AltBody, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->EndBoundary($this->boundary[2]); - $body .= $this->AttachAll(); - break; - } - - if ($this->IsError()) { - $body = ''; - } elseif ($this->sign_key_file) { - try { - $file = tempnam('', 'mail'); - file_put_contents($file, $body); //TODO check this worked - $signed = tempnam("", "signed"); - if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) { - @unlink($file); - @unlink($signed); - $body = file_get_contents($signed); - } else { - @unlink($file); - @unlink($signed); - throw new phpmailerException($this->Lang("signing").openssl_error_string()); - } - } catch (phpmailerException $e) { - $body = ''; - if ($this->exceptions) { - throw $e; - } - } - } - - return $body; - } - - /** - * Returns the start of a message boundary. - * @access private - */ - private function GetBoundary($boundary, $charSet, $contentType, $encoding) { - $result = ''; - if($charSet == '') { - $charSet = $this->CharSet; - } - if($contentType == '') { - $contentType = $this->ContentType; - } - if($encoding == '') { - $encoding = $this->Encoding; - } - $result .= $this->TextLine('--' . $boundary); - $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); - $result .= $this->LE; - $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); - $result .= $this->LE; - - return $result; - } - - /** - * Returns the end of a message boundary. - * @access private - */ - private function EndBoundary($boundary) { - return $this->LE . '--' . $boundary . '--' . $this->LE; - } - - /** - * Sets the message type. - * @access private - * @return void - */ - private function SetMessageType() { - if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) { - $this->message_type = 'plain'; - } else { - if(count($this->attachment) > 0) { - $this->message_type = 'attachments'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) { - $this->message_type = 'alt'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) { - $this->message_type = 'alt_attachments'; - } - } - } - - /** - * Returns a formatted header line. - * @access public - * @return string - */ - public function HeaderLine($name, $value) { - return $name . ': ' . $value . $this->LE; - } - - /** - * Returns a formatted mail line. - * @access public - * @return string - */ - public function TextLine($value) { - return $value . $this->LE; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, ATTACHMENTS - ///////////////////////////////////////////////// - - /** - * Adds an attachment from a path on the filesystem. - * Returns false if the file could not be found - * or accessed. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - public function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - try { - if ( !@is_file($path) ) { - throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE); - } - $filename = basename($path); - if ( $name == '' ) { - $name = $filename; - } - - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => 'attachment', - 7 => 0 - ); - - } catch (phpmailerException $e) { - $this->SetError($e->getMessage()); - if ($this->exceptions) { - throw $e; - } - echo $e->getMessage()."\n"; - if ( $e->getCode() == self::STOP_CRITICAL ) { - return false; - } - } - return true; - } - - /** - * Return the current array of attachments - * @return array - */ - public function GetAttachments() { - return $this->attachment; - } - - /** - * Attaches all fs, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access private - * @return string - */ - private function AttachAll() { - // Return text of body - $mime = array(); - $cidUniq = array(); - $incl = array(); - - // Add all attachments - foreach ($this->attachment as $attachment) { - // Check for string attachment - $bString = $attachment[5]; - if ($bString) { - $string = $attachment[0]; - } else { - $path = $attachment[0]; - } - - if (in_array($attachment[0], $incl)) { continue; } - $filename = $attachment[1]; - $name = $attachment[2]; - $encoding = $attachment[3]; - $type = $attachment[4]; - $disposition = $attachment[6]; - $cid = $attachment[7]; - $incl[] = $attachment[0]; - if ( $disposition == 'inline' && isset($cidUniq[$cid]) ) { continue; } - $cidUniq[$cid] = true; - - $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); - $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); - $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); - - if($disposition == 'inline') { - $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); - } - - $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); - - // Encode as string attachment - if($bString) { - $mime[] = $this->EncodeString($string, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } else { - $mime[] = $this->EncodeFile($path, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } - } - - $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); - - return join('', $mime); - } - - /** - * Encodes attachment in requested format. - * Returns an empty string on failure. - * @param string $path The full path to the file - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @see EncodeFile() - * @access private - * @return string - */ - private function EncodeFile($path, $encoding = 'base64') { - try { - if (!is_readable($path)) { - throw new phpmailerException($this->Lang('file_open') . $path, self::STOP_CONTINUE); - } - if (!function_exists('get_magic_quotes')) { - function get_magic_quotes() { - return false; - } - } - if (PHP_VERSION < 6 - AND $magic_quotes = get_magic_quotes_runtime()) { - set_magic_quotes_runtime(0); - } - $file_buffer = file_get_contents($path); - $file_buffer = $this->EncodeString($file_buffer, $encoding); - if (PHP_VERSION < 6 AND $magic_quotes) { set_magic_quotes_runtime($magic_quotes); } - return $file_buffer; - } catch (Exception $e) { - $this->SetError($e->getMessage()); - return ''; - } - } - - /** - * Encodes string to requested format. - * Returns an empty string on failure. - * @param string $str The text to encode - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @access public - * @return string - */ - public function EncodeString ($str, $encoding = 'base64') { - $encoded = ''; - switch(strtolower($encoding)) { - case 'base64': - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case '7bit': - case '8bit': - $encoded = $this->FixEOL($str); - //Make sure it ends with a line break - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->EncodeQP($str); - break; - default: - $this->SetError($this->Lang('encoding') . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string to best (shortest) of Q, B, quoted or none. - * @access public - * @return string - */ - public function EncodeHeader($str, $position = 'text') { - $x = 0; - - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - // Can't use addslashes as we don't know what value has magic_quotes_sybase - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return ($encoded); - } else { - return ("\"$encoded\""); - } - } - $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - case 'comment': - $x = preg_match_all('/[()"]/', $str, $matches); - // Fall-through - case 'text': - default: - $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - if ($x == 0) { - return ($str); - } - - $maxlen = 75 - 7 - strlen($this->CharSet); - // Try to select the encoding which should produce the shortest output - if (strlen($str)/3 < $x) { - $encoding = 'B'; - if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->Base64EncodeWrapMB($str); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - } else { - $encoding = 'Q'; - $encoded = $this->EncodeQ($str, $position); - $encoded = $this->WrapText($encoded, $maxlen, true); - $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Checks if a string contains multibyte characters. - * @access public - * @param string $str multi-byte text to wrap encode - * @return bool - */ - public function HasMultiBytes($str) { - if (function_exists('mb_strlen')) { - return (strlen($str) > mb_strlen($str, $this->CharSet)); - } else { // Assume no multibytes (we can't handle without mbstring functions anyway) - return false; - } - } - - /** - * Correctly encodes and wraps long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php - * @access public - * @param string $str multi-byte text to wrap encode - * @return string - */ - public function Base64EncodeWrapMB($str) { - $start = "=?".$this->CharSet."?B?"; - $end = "?="; - $encoded = ""; - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $offset = $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - $lookBack++; - } - while (strlen($chunk) > $length); - - $encoded .= $chunk . $this->LE; - } - - // Chomp the last linefeed - $encoded = substr($encoded, 0, -strlen($this->LE)); - return $encoded; - } - - /** - * Encode string to quoted-printable. - * Only uses standard PHP, slow, but will always work - * @access public - * @param string $string the text to encode - * @param integer $line_max Number of chars allowed on a line before wrapping - * @return string - */ - public function EncodeQPphp( $input = '', $line_max = 76, $space_conv = false) { - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $lines = preg_split('/(?:\r\n|\r|\n)/', $input); - $eol = "\r\n"; - $escape = '='; - $output = ''; - while( list(, $line) = each($lines) ) { - $linlen = strlen($line); - $newline = ''; - for($i = 0; $i < $linlen; $i++) { - $c = substr( $line, $i, 1 ); - $dec = ord( $c ); - if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E - $c = '=2E'; - } - if ( $dec == 32 ) { - if ( $i == ( $linlen - 1 ) ) { // convert space at eol only - $c = '=20'; - } else if ( $space_conv ) { - $c = '=20'; - } - } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); - $h1 = floor($dec%16); - $c = $escape.$hex[$h2].$hex[$h1]; - } - if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted - $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay - $newline = ''; - // check if newline first character will be point or not - if ( $dec == 46 ) { - $c = '=2E'; - } - } - $newline .= $c; - } // end of for - $output .= $newline.$eol; - } // end of while - return $output; - } - - /** - * Encode string to RFC2045 (6.7) quoted-printable format - * Uses a PHP5 stream filter to do the encoding about 64x faster than the old version - * Also results in same content as you started with after decoding - * @see EncodeQPphp() - * @access public - * @param string $string the text to encode - * @param integer $line_max Number of chars allowed on a line before wrapping - * @param boolean $space_conv Dummy param for compatibility with existing EncodeQP function - * @return string - * @author Marcus Bointon - */ - public function EncodeQP($string, $line_max = 76, $space_conv = false) { - if (function_exists('quoted_printable_encode')) { //Use native function if it's available (>= PHP5.3) - return quoted_printable_encode($string); - } - $filters = stream_get_filters(); - if (!in_array('convert.*', $filters)) { //Got convert stream filter? - return $this->EncodeQPphp($string, $line_max, $space_conv); //Fall back to old implementation - } - $fp = fopen('php://temp/', 'r+'); - $string = preg_replace('/\r\n?/', $this->LE, $string); //Normalise line breaks - $params = array('line-length' => $line_max, 'line-break-chars' => $this->LE); - $s = stream_filter_append($fp, 'convert.quoted-printable-encode', STREAM_FILTER_READ, $params); - fputs($fp, $string); - rewind($fp); - $out = stream_get_contents($fp); - stream_filter_remove($s); - $out = preg_replace('/^\./m', '=2E', $out); //Encode . if it is first char on a line, workaround for bug in Exchange - fclose($fp); - return $out; - } - - /** - * Encode string to q encoding. - * @link http://tools.ietf.org/html/rfc2047 - * @param string $str the text to encode - * @param string $position Where the text is going to be used, see the RFC for what that means - * @access public - * @return string - */ - public function EncodeQ ($str, $position = 'text') { - // There should not be any EOL in the string - $encoded = preg_replace('/[\r\n]*/', '', $str); - - switch (strtolower($position)) { - case 'phrase': - $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - case 'comment': - $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - case 'text': - default: - // Replace every high ascii, control =, ? and _ characters - //TODO using /e (equivalent to eval()) is probably not a good idea - $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - } - - // Replace every spaces to _ (more readable than =20) - $encoded = str_replace(' ', '_', $encoded); - - return $encoded; - } - - /** - * Adds a string or binary attachment (non-filesystem) to the list. - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return void - */ - public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { - // Append to $attachment array - $this->attachment[] = array( - 0 => $string, - 1 => $filename, - 2 => basename($filename), - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => 'attachment', - 7 => 0 - ); - } - - /** - * Adds an embedded attachment. This can include images, sounds, and - * just about any other document. Make sure to set the $type to an - * image type. For JPEG images use "image/jpeg" and for GIF images - * use "image/gif". - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment. Use this to identify - * the Id for accessing the image in an HTML form. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - - if ( !@is_file($path) ) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if ( $name == '' ) { - $name = $filename; - } - - // Append to $attachment array - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => 'inline', - 7 => $cid - ); - - return true; - } - - /** - * Returns true if an inline attachment is present. - * @access public - * @return bool - */ - public function InlineImageExists() { - foreach($this->attachment as $attachment) { - if ($attachment[6] == 'inline') { - return true; - } - } - return false; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MESSAGE RESET - ///////////////////////////////////////////////// - - /** - * Clears all recipients assigned in the TO array. Returns void. - * @return void - */ - public function ClearAddresses() { - foreach($this->to as $to) { - unset($this->all_recipients[strtolower($to[0])]); - } - $this->to = array(); - } - - /** - * Clears all recipients assigned in the CC array. Returns void. - * @return void - */ - public function ClearCCs() { - foreach($this->cc as $cc) { - unset($this->all_recipients[strtolower($cc[0])]); - } - $this->cc = array(); - } - - /** - * Clears all recipients assigned in the BCC array. Returns void. - * @return void - */ - public function ClearBCCs() { - foreach($this->bcc as $bcc) { - unset($this->all_recipients[strtolower($bcc[0])]); - } - $this->bcc = array(); - } - - /** - * Clears all recipients assigned in the ReplyTo array. Returns void. - * @return void - */ - public function ClearReplyTos() { - $this->ReplyTo = array(); - } - - /** - * Clears all recipients assigned in the TO, CC and BCC - * array. Returns void. - * @return void - */ - public function ClearAllRecipients() { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - $this->all_recipients = array(); - } - - /** - * Clears all previously set filesystem, string, and binary - * attachments. Returns void. - * @return void - */ - public function ClearAttachments() { - $this->attachment = array(); - } - - /** - * Clears all custom headers. Returns void. - * @return void - */ - public function ClearCustomHeaders() { - $this->CustomHeader = array(); - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MISCELLANEOUS - ///////////////////////////////////////////////// - - /** - * Adds the error message to the error container. - * @access protected - * @return void - */ - protected function SetError($msg) { - $this->error_count++; - if ($this->Mailer == 'smtp' and !is_null($this->smtp)) { - $lasterror = $this->smtp->getError(); - if (!empty($lasterror) and array_key_exists('smtp_msg', $lasterror)) { - $msg .= '<p>' . $this->Lang('smtp_error') . $lasterror['smtp_msg'] . "</p>\n"; - } - } - $this->ErrorInfo = $msg; - } - - /** - * Returns the proper RFC 822 formatted date. - * @access public - * @return string - * @static - */ - public static function RFCDate() { - $tz = date('Z'); - $tzs = ($tz < 0) ? '-' : '+'; - $tz = abs($tz); - $tz = (int)($tz/3600)*100 + ($tz%3600)/60; - $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); - - return $result; - } - - /** - * Returns the server hostname or 'localhost.localdomain' if unknown. - * @access private - * @return string - */ - private function ServerHostname() { - if (!empty($this->Hostname)) { - $result = $this->Hostname; - } elseif (isset($_SERVER['SERVER_NAME'])) { - $result = $_SERVER['SERVER_NAME']; - } else { - $result = 'localhost.localdomain'; - } - - return $result; - } - - /** - * Returns a message in the appropriate language. - * @access private - * @return string - */ - private function Lang($key) { - if(count($this->language) < 1) { - $this->SetLanguage('en'); // set the default language - } - - if(isset($this->language[$key])) { - return $this->language[$key]; - } else { - return 'Language string failed to load: ' . $key; - } - } - - /** - * Returns true if an error occurred. - * @access public - * @return bool - */ - public function IsError() { - return ($this->error_count > 0); - } - - /** - * Changes every end of line from CR or LF to CRLF. - * @access private - * @return string - */ - private function FixEOL($str) { - $str = str_replace("\r\n", "\n", $str); - $str = str_replace("\r", "\n", $str); - $str = str_replace("\n", $this->LE, $str); - return $str; - } - - /** - * Adds a custom header. - * @access public - * @return void - */ - public function AddCustomHeader($custom_header) { - $this->CustomHeader[] = explode(':', $custom_header, 2); - } - - /** - * Evaluates the message and returns modifications for inline images and backgrounds - * @access public - * @return $message - */ - public function MsgHTML($message, $basedir = '') { - preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images); - if(isset($images[2])) { - foreach($images[2] as $i => $url) { - // do not change urls for absolute images (thanks to corvuscorax) - if (!preg_match('#^[A-z]+://#',$url)) { - $filename = basename($url); - $directory = dirname($url); - ($directory == '.')?$directory='':''; - $cid = 'cid:' . md5($filename); - $ext = pathinfo($filename, PATHINFO_EXTENSION); - $mimeType = self::_mime_types($ext); - if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } - if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; } - if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { - $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); - } - } - } - } - $this->IsHTML(true); - $this->Body = $message; - $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); - if (!empty($textMsg) && empty($this->AltBody)) { - $this->AltBody = html_entity_decode($textMsg); - } - if (empty($this->AltBody)) { - $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n"; - } - } - - /** - * Gets the MIME type of the embedded or inline image - * @param string File extension - * @access public - * @return string MIME type of ext - * @static - */ - public static function _mime_types($ext = '') { - $mimes = array( - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'doc' => 'application/msword', - 'bin' => 'application/macbinary', - 'dms' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'class' => 'application/octet-stream', - 'psd' => 'application/octet-stream', - 'so' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/postscript', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'php' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'js' => 'application/x-javascript', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'zip' => 'application/zip', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'rv' => 'video/vnd.rn-realvideo', - 'wav' => 'audio/x-wav', - 'bmp' => 'image/bmp', - 'gif' => 'image/gif', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'png' => 'image/png', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'txt' => 'text/plain', - 'text' => 'text/plain', - 'log' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'doc' => 'application/msword', - 'word' => 'application/msword', - 'xl' => 'application/excel', - 'eml' => 'message/rfc822' - ); - return (!isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; - } - - /** - * Set (or reset) Class Objects (variables) - * - * Usage Example: - * $page->set('X-Priority', '3'); - * - * @access public - * @param string $name Parameter Name - * @param mixed $value Parameter Value - * NOTE: will not work with arrays, there are no arrays to set/reset - * @todo Should this not be using __set() magic function? - */ - public function set($name, $value = '') { - try { - if (isset($this->$name) ) { - $this->$name = $value; - } else { - throw new phpmailerException($this->Lang('variable_set') . $name, self::STOP_CRITICAL); - } - } catch (Exception $e) { - $this->SetError($e->getMessage()); - if ($e->getCode() == self::STOP_CRITICAL) { - return false; - } - } - return true; - } - - /** - * Strips newlines to prevent header injection. - * @access public - * @param string $str String - * @return string - */ - public function SecureHeader($str) { - $str = str_replace("\r", '', $str); - $str = str_replace("\n", '', $str); - return trim($str); - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - public function Sign($cert_filename, $key_filename, $key_pass) { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - public function DKIM_QP($txt) { - $tmp=""; - $line=""; - for ($i=0;$i<strlen($txt);$i++) { - $ord=ord($txt[$i]); - if ( ((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E)) ) { - $line.=$txt[$i]; - } else { - $line.="=".sprintf("%02X",$ord); - } - } - return $line; - } - - /** - * Generate DKIM signature - * - * @access public - * @param string $s Header - */ - public function DKIM_Sign($s) { - $privKeyStr = file_get_contents($this->DKIM_private); - if ($this->DKIM_passphrase!='') { - $privKey = openssl_pkey_get_private($privKeyStr,$this->DKIM_passphrase); - } else { - $privKey = $privKeyStr; - } - if (openssl_sign($s, $signature, $privKey)) { - return base64_encode($signature); - } - } - - /** - * Generate DKIM Canonicalization Header - * - * @access public - * @param string $s Header - */ - public function DKIM_HeaderC($s) { - $s=preg_replace("/\r\n\s+/"," ",$s); - $lines=explode("\r\n",$s); - foreach ($lines as $key=>$line) { - list($heading,$value)=explode(":",$line,2); - $heading=strtolower($heading); - $value=preg_replace("/\s+/"," ",$value) ; // Compress useless spaces - $lines[$key]=$heading.":".trim($value) ; // Don't forget to remove WSP around the value - } - $s=implode("\r\n",$lines); - return $s; - } - - /** - * Generate DKIM Canonicalization Body - * - * @access public - * @param string $body Message Body - */ - public function DKIM_BodyC($body) { - if ($body == '') return "\r\n"; - // stabilize line endings - $body=str_replace("\r\n","\n",$body); - $body=str_replace("\n","\r\n",$body); - // END stabilize line endings - while (substr($body,strlen($body)-4,4) == "\r\n\r\n") { - $body=substr($body,0,strlen($body)-2); - } - return $body; - } - - /** - * Create the DKIM header, body, as new header - * - * @access public - * @param string $headers_line Header lines - * @param string $subject Subject - * @param string $body Body - */ - public function DKIM_Add($headers_line,$subject,$body) { - $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms - $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body - $DKIMquery = 'dns/txt'; // Query method - $DKIMtime = time() ; // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) - $subject_header = "Subject: $subject"; - $headers = explode("\r\n",$headers_line); - foreach($headers as $header) { - if (strpos($header,'From:') === 0) { - $from_header=$header; - } elseif (strpos($header,'To:') === 0) { - $to_header=$header; - } - } - $from = str_replace('|','=7C',$this->DKIM_QP($from_header)); - $to = str_replace('|','=7C',$this->DKIM_QP($to_header)); - $subject = str_replace('|','=7C',$this->DKIM_QP($subject_header)) ; // Copied header fields (dkim-quoted-printable - $body = $this->DKIM_BodyC($body); - $DKIMlen = strlen($body) ; // Length of body - $DKIMb64 = base64_encode(pack("H*", sha1($body))) ; // Base64 of packed binary SHA-1 hash of body - $ident = ($this->DKIM_identity == '')? '' : " i=" . $this->DKIM_identity . ";"; - $dkimhdrs = "DKIM-Signature: v=1; a=" . $DKIMsignatureType . "; q=" . $DKIMquery . "; l=" . $DKIMlen . "; s=" . $this->DKIM_selector . ";\r\n". - "\tt=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\r\n". - "\th=From:To:Subject;\r\n". - "\td=" . $this->DKIM_domain . ";" . $ident . "\r\n". - "\tz=$from\r\n". - "\t|$to\r\n". - "\t|$subject;\r\n". - "\tbh=" . $DKIMb64 . ";\r\n". - "\tb="; - $toSign = $this->DKIM_HeaderC($from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs); - $signed = $this->DKIM_Sign($toSign); - return "X-PHPMAILER-DKIM: phpmailer.worxware.com\r\n".$dkimhdrs.$signed."\r\n"; - } - - protected function doCallback($isSent,$to,$cc,$bcc,$subject,$body) { - if (!empty($this->action_function) && function_exists($this->action_function)) { - $params = array($isSent,$to,$cc,$bcc,$subject,$body); - call_user_func_array($this->action_function,$params); - } - } -} - -class phpmailerException extends Exception { - public function errorMessage() { - $errorMsg = '<strong>' . $this->getMessage() . "</strong><br />\n"; - return $errorMsg; - } -} -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/class.pop3.php b/facteur/phpmailer-php5/class.pop3.php deleted file mode 100644 index f9fd3b2..0000000 --- a/facteur/phpmailer-php5/class.pop3.php +++ /dev/null @@ -1,407 +0,0 @@ -<?php -/*~ class.pop3.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 5.1 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Admin: Andy Prevost (project admininistrator) | -| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net | -| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net | -| Founder: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' -*/ - -/** - * PHPMailer - PHP POP Before SMTP Authentication Class - * NOTE: Designed for use with PHP version 5 and up - * @package PHPMailer - * @author Andy Prevost - * @author Marcus Bointon - * @copyright 2004 - 2009 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL) - * @version $Id: class.pop3.php 444 2009-05-05 11:22:26Z coolbru $ - */ - -/** - * POP Before SMTP Authentication Class - * Version 5.0.0 - * - * Author: Richard Davey (rich@corephp.co.uk) - * Modifications: Andy Prevost - * License: LGPL, see PHPMailer License - * - * Specifically for PHPMailer to allow POP before SMTP authentication. - * Does not yet work with APOP - if you have an APOP account, contact Richard Davey - * and we can test changes to this script. - * - * This class is based on the structure of the SMTP class originally authored by Chris Ryan - * - * This class is rfc 1939 compliant and implements all the commands - * required for POP3 connection, authentication and disconnection. - * - * @package PHPMailer - * @author Richard Davey - */ - -class POP3 { - /** - * Default POP3 port - * @var int - */ - public $POP3_PORT = 110; - - /** - * Default Timeout - * @var int - */ - public $POP3_TIMEOUT = 30; - - /** - * POP3 Carriage Return + Line Feed - * @var string - */ - public $CRLF = "\r\n"; - - /** - * Displaying Debug warnings? (0 = now, 1+ = yes) - * @var int - */ - public $do_debug = 2; - - /** - * POP3 Mail Server - * @var string - */ - public $host; - - /** - * POP3 Port - * @var int - */ - public $port; - - /** - * POP3 Timeout Value - * @var int - */ - public $tval; - - /** - * POP3 Username - * @var string - */ - public $username; - - /** - * POP3 Password - * @var string - */ - public $password; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE AND PROTECTED - ///////////////////////////////////////////////// - - private $pop_conn; - private $connected; - private $error; // Error log array - - /** - * Constructor, sets the initial values - * @access public - * @return POP3 - */ - public function __construct() { - $this->pop_conn = 0; - $this->connected = false; - $this->error = null; - } - - /** - * Combination of public events - connect, login, disconnect - * @access public - * @param string $host - * @param integer $port - * @param integer $tval - * @param string $username - * @param string $password - */ - public function Authorise ($host, $port = false, $tval = false, $username, $password, $debug_level = 0) { - $this->host = $host; - - // If no port value is passed, retrieve it - if ($port == false) { - $this->port = $this->POP3_PORT; - } else { - $this->port = $port; - } - - // If no port value is passed, retrieve it - if ($tval == false) { - $this->tval = $this->POP3_TIMEOUT; - } else { - $this->tval = $tval; - } - - $this->do_debug = $debug_level; - $this->username = $username; - $this->password = $password; - - // Refresh the error log - $this->error = null; - - // Connect - $result = $this->Connect($this->host, $this->port, $this->tval); - - if ($result) { - $login_result = $this->Login($this->username, $this->password); - - if ($login_result) { - $this->Disconnect(); - - return true; - } - - } - - // We need to disconnect regardless if the login succeeded - $this->Disconnect(); - - return false; - } - - /** - * Connect to the POP3 server - * @access public - * @param string $host - * @param integer $port - * @param integer $tval - * @return boolean - */ - public function Connect ($host, $port = false, $tval = 30) { - // Are we already connected? - if ($this->connected) { - return true; - } - - /* - On Windows this will raise a PHP Warning error if the hostname doesn't exist. - Rather than supress it with @fsockopen, let's capture it cleanly instead - */ - - set_error_handler(array(&$this, 'catchWarning')); - - // Connect to the POP3 server - $this->pop_conn = fsockopen($host, // POP3 Host - $port, // Port # - $errno, // Error Number - $errstr, // Error Message - $tval); // Timeout (seconds) - - // Restore the error handler - restore_error_handler(); - - // Does the Error Log now contain anything? - if ($this->error && $this->do_debug >= 1) { - $this->displayErrors(); - } - - // Did we connect? - if ($this->pop_conn == false) { - // It would appear not... - $this->error = array( - 'error' => "Failed to connect to server $host on port $port", - 'errno' => $errno, - 'errstr' => $errstr - ); - - if ($this->do_debug >= 1) { - $this->displayErrors(); - } - - return false; - } - - // Increase the stream time-out - - // Check for PHP 4.3.0 or later - if (version_compare(phpversion(), '5.0.0', 'ge')) { - stream_set_timeout($this->pop_conn, $tval, 0); - } else { - // Does not work on Windows - if (substr(PHP_OS, 0, 3) !== 'WIN') { - socket_set_timeout($this->pop_conn, $tval, 0); - } - } - - // Get the POP3 server response - $pop3_response = $this->getResponse(); - - // Check for the +OK - if ($this->checkResponse($pop3_response)) { - // The connection is established and the POP3 server is talking - $this->connected = true; - return true; - } - - } - - /** - * Login to the POP3 server (does not support APOP yet) - * @access public - * @param string $username - * @param string $password - * @return boolean - */ - public function Login ($username = '', $password = '') { - if ($this->connected == false) { - $this->error = 'Not connected to POP3 server'; - - if ($this->do_debug >= 1) { - $this->displayErrors(); - } - } - - if (empty($username)) { - $username = $this->username; - } - - if (empty($password)) { - $password = $this->password; - } - - $pop_username = "USER $username" . $this->CRLF; - $pop_password = "PASS $password" . $this->CRLF; - - // Send the Username - $this->sendString($pop_username); - $pop3_response = $this->getResponse(); - - if ($this->checkResponse($pop3_response)) { - // Send the Password - $this->sendString($pop_password); - $pop3_response = $this->getResponse(); - - if ($this->checkResponse($pop3_response)) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - /** - * Disconnect from the POP3 server - * @access public - */ - public function Disconnect () { - $this->sendString('QUIT'); - - fclose($this->pop_conn); - } - - ///////////////////////////////////////////////// - // Private Methods - ///////////////////////////////////////////////// - - /** - * Get the socket response back. - * $size is the maximum number of bytes to retrieve - * @access private - * @param integer $size - * @return string - */ - private function getResponse ($size = 128) { - $pop3_response = fgets($this->pop_conn, $size); - - return $pop3_response; - } - - /** - * Send a string down the open socket connection to the POP3 server - * @access private - * @param string $string - * @return integer - */ - private function sendString ($string) { - $bytes_sent = fwrite($this->pop_conn, $string, strlen($string)); - - return $bytes_sent; - } - - /** - * Checks the POP3 server response for +OK or -ERR - * @access private - * @param string $string - * @return boolean - */ - private function checkResponse ($string) { - if (substr($string, 0, 3) !== '+OK') { - $this->error = array( - 'error' => "Server reported an error: $string", - 'errno' => 0, - 'errstr' => '' - ); - - if ($this->do_debug >= 1) { - $this->displayErrors(); - } - - return false; - } else { - return true; - } - - } - - /** - * If debug is enabled, display the error message array - * @access private - */ - private function displayErrors () { - echo '<pre>'; - - foreach ($this->error as $single_error) { - print_r($single_error); - } - - echo '</pre>'; - } - - /** - * Takes over from PHP for the socket warning handler - * @access private - * @param integer $errno - * @param string $errstr - * @param string $errfile - * @param integer $errline - */ - private function catchWarning ($errno, $errstr, $errfile, $errline) { - $this->error[] = array( - 'error' => "Connecting to the POP3 server raised a PHP warning: ", - 'errno' => $errno, - 'errstr' => $errstr - ); - } - - // End of class -} -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/class.smtp.php b/facteur/phpmailer-php5/class.smtp.php deleted file mode 100644 index c2ca1cb..0000000 --- a/facteur/phpmailer-php5/class.smtp.php +++ /dev/null @@ -1,814 +0,0 @@ -<?php -/*~ class.smtp.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 5.1 | -| Contact: via sourceforge.net support pages (also www.codeworxtech.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Admin: Andy Prevost (project admininistrator) | -| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net | -| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net | -| Founder: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.codeworxtech.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' -*/ - -/** - * PHPMailer - PHP SMTP email transport class - * NOTE: Designed for use with PHP version 5 and up - * @package PHPMailer - * @author Andy Prevost - * @author Marcus Bointon - * @copyright 2004 - 2008 Andy Prevost - * @license http://www.gnu.org/copyleft/lesser.html Distributed under the Lesser General Public License (LGPL) - * @version $Id: class.smtp.php 444 2009-05-05 11:22:26Z coolbru $ - */ - -/** - * SMTP is rfc 821 compliant and implements all the rfc 821 SMTP - * commands except TURN which will always return a not implemented - * error. SMTP also provides some utility methods for sending mail - * to an SMTP server. - * original author: Chris Ryan - */ - -class SMTP { - /** - * SMTP server port - * @var int - */ - public $SMTP_PORT = 25; - - /** - * SMTP reply line ending - * @var string - */ - public $CRLF = "\r\n"; - - /** - * Sets whether debugging is turned on - * @var bool - */ - public $do_debug; // the level of debug to perform - - /** - * Sets VERP use on/off (default is off) - * @var bool - */ - public $do_verp = false; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE AND PROTECTED - ///////////////////////////////////////////////// - - private $smtp_conn; // the socket to the server - private $error; // error if any on the last call - private $helo_rply; // the reply the server sent to us for HELO - - /** - * Initialize the class so that the data is in a known state. - * @access public - * @return void - */ - public function __construct() { - $this->smtp_conn = 0; - $this->error = null; - $this->helo_rply = null; - - $this->do_debug = 0; - } - - ///////////////////////////////////////////////// - // CONNECTION FUNCTIONS - ///////////////////////////////////////////////// - - /** - * Connect to the server specified on the port specified. - * If the port is not specified use the default SMTP_PORT. - * If tval is specified then a connection will try and be - * established with the server for that number of seconds. - * If tval is not specified the default is 30 seconds to - * try on the connection. - * - * SMTP CODE SUCCESS: 220 - * SMTP CODE FAILURE: 421 - * @access public - * @return bool - */ - public function Connect($host, $port = 0, $tval = 30) { - // set the error val to null so there is no confusion - $this->error = null; - - // make sure we are __not__ connected - if($this->connected()) { - // already connected, generate error - $this->error = array("error" => "Already connected to a server"); - return false; - } - - if(empty($port)) { - $port = $this->SMTP_PORT; - } - - // connect to the smtp server - $this->smtp_conn = @fsockopen($host, // the host of the server - $port, // the port to use - $errno, // error number if any - $errstr, // error message if any - $tval); // give up after ? secs - // verify we connected properly - if(empty($this->smtp_conn)) { - $this->error = array("error" => "Failed to connect to server", - "errno" => $errno, - "errstr" => $errstr); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '<br />'; - } - return false; - } - - // SMTP server can take longer to respond, give longer timeout for first read - // Windows does not have support for this timeout function - if(substr(PHP_OS, 0, 3) != "WIN") - socket_set_timeout($this->smtp_conn, $tval, 0); - - // get any announcement - $announce = $this->get_lines(); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $announce . $this->CRLF . '<br />'; - } - - return true; - } - - /** - * Initiate a TLS communication with the server. - * - * SMTP CODE 220 Ready to start TLS - * SMTP CODE 501 Syntax error (no parameters allowed) - * SMTP CODE 454 TLS not available due to temporary reason - * @access public - * @return bool success - */ - public function StartTLS() { - $this->error = null; # to avoid confusion - - if(!$this->connected()) { - $this->error = array("error" => "Called StartTLS() without being connected"); - return false; - } - - fputs($this->smtp_conn,"STARTTLS" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 220) { - $this->error = - array("error" => "STARTTLS not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - // Begin encrypted connection - if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { - return false; - } - - return true; - } - - /** - * Performs SMTP authentication. Must be run after running the - * Hello() method. Returns true if successfully authenticated. - * @access public - * @return bool - */ - public function Authenticate($username, $password) { - // Start authentication - fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "AUTH not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - // Send encoded username - fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 334) { - $this->error = - array("error" => "Username not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - // Send encoded password - fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($code != 235) { - $this->error = - array("error" => "Password not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - return true; - } - - /** - * Returns true if connected to a server otherwise false - * @access public - * @return bool - */ - public function Connected() { - if(!empty($this->smtp_conn)) { - $sock_status = socket_get_status($this->smtp_conn); - if($sock_status["eof"]) { - // the socket is valid but we are not connected - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE:" . $this->CRLF . "EOF caught while checking if connected"; - } - $this->Close(); - return false; - } - return true; // everything looks good - } - return false; - } - - /** - * Closes the socket and cleans up the state of the class. - * It is not considered good to use this function without - * first trying to use QUIT. - * @access public - * @return void - */ - public function Close() { - $this->error = null; // so there is no confusion - $this->helo_rply = null; - if(!empty($this->smtp_conn)) { - // close the connection and cleanup - fclose($this->smtp_conn); - $this->smtp_conn = 0; - } - } - - ///////////////////////////////////////////////// - // SMTP COMMANDS - ///////////////////////////////////////////////// - - /** - * Issues a data command and sends the msg_data to the server - * finializing the mail transaction. $msg_data is the message - * that is to be send with the headers. Each header needs to be - * on a single line followed by a <CRLF> with the message headers - * and the message body being seperated by and additional <CRLF>. - * - * Implements rfc 821: DATA <CRLF> - * - * SMTP CODE INTERMEDIATE: 354 - * [data] - * <CRLF>.<CRLF> - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 552,554,451,452 - * SMTP CODE FAILURE: 451,554 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - public function Data($msg_data) { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Data() without being connected"); - return false; - } - - fputs($this->smtp_conn,"DATA" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 354) { - $this->error = - array("error" => "DATA command not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - /* the server is ready to accept data! - * according to rfc 821 we should not send more than 1000 - * including the CRLF - * characters on a single line so we will break the data up - * into lines by \r and/or \n then if needed we will break - * each of those into smaller lines to fit within the limit. - * in addition we will be looking for lines that start with - * a period '.' and append and additional period '.' to that - * line. NOTE: this does not count towards limit. - */ - - // normalize the line breaks so we know the explode works - $msg_data = str_replace("\r\n","\n",$msg_data); - $msg_data = str_replace("\r","\n",$msg_data); - $lines = explode("\n",$msg_data); - - /* we need to find a good way to determine is headers are - * in the msg_data or if it is a straight msg body - * currently I am assuming rfc 822 definitions of msg headers - * and if the first field of the first line (':' sperated) - * does not contain a space then it _should_ be a header - * and we can process all lines before a blank "" line as - * headers. - */ - - $field = substr($lines[0],0,strpos($lines[0],":")); - $in_headers = false; - if(!empty($field) && !strstr($field," ")) { - $in_headers = true; - } - - $max_line_length = 998; // used below; set here for ease in change - - while(list(,$line) = @each($lines)) { - $lines_out = null; - if($line == "" && $in_headers) { - $in_headers = false; - } - // ok we need to break this line up into several smaller lines - while(strlen($line) > $max_line_length) { - $pos = strrpos(substr($line,0,$max_line_length)," "); - - // Patch to fix DOS attack - if(!$pos) { - $pos = $max_line_length - 1; - $lines_out[] = substr($line,0,$pos); - $line = substr($line,$pos); - } else { - $lines_out[] = substr($line,0,$pos); - $line = substr($line,$pos + 1); - } - - /* if processing headers add a LWSP-char to the front of new line - * rfc 822 on long msg headers - */ - if($in_headers) { - $line = "\t" . $line; - } - } - $lines_out[] = $line; - - // send the lines to the server - while(list(,$line_out) = @each($lines_out)) { - if(strlen($line_out) > 0) - { - if(substr($line_out, 0, 1) == ".") { - $line_out = "." . $line_out; - } - } - fputs($this->smtp_conn,$line_out . $this->CRLF); - } - } - - // message data has been sent - fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 250) { - $this->error = - array("error" => "DATA not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - return true; - } - - /** - * Sends the HELO command to the smtp server. - * This makes sure that we and the server are in - * the same known state. - * - * Implements from rfc 821: HELO <SP> <domain> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500, 501, 504, 421 - * @access public - * @return bool - */ - public function Hello($host = '') { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Hello() without being connected"); - return false; - } - - // if hostname for HELO was not specified send default - if(empty($host)) { - // determine appropriate default to send to server - $host = "localhost"; - } - - // Send extended hello first (RFC 2821) - if(!$this->SendHello("EHLO", $host)) { - if(!$this->SendHello("HELO", $host)) { - return false; - } - } - - return true; - } - - /** - * Sends a HELO/EHLO command. - * @access private - * @return bool - */ - private function SendHello($hello, $host) { - fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER: " . $rply . $this->CRLF . '<br />'; - } - - if($code != 250) { - $this->error = - array("error" => $hello . " not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - $this->helo_rply = $rply; - - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. - * - * Implements rfc 821: MAIL <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,421 - * @access public - * @return bool - */ - public function Mail($from) { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Mail() without being connected"); - return false; - } - - $useVerp = ($this->do_verp ? "XVERP" : ""); - fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 250) { - $this->error = - array("error" => "MAIL not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - return true; - } - - /** - * Sends the quit command to the server and then closes the socket - * if there is no error or the $close_on_error argument is true. - * - * Implements from rfc 821: QUIT <CRLF> - * - * SMTP CODE SUCCESS: 221 - * SMTP CODE ERROR : 500 - * @access public - * @return bool - */ - public function Quit($close_on_error = true) { - $this->error = null; // so there is no confusion - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Quit() without being connected"); - return false; - } - - // send the quit command to the server - fputs($this->smtp_conn,"quit" . $this->CRLF); - - // get any good-bye messages - $byemsg = $this->get_lines(); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $byemsg . $this->CRLF . '<br />'; - } - - $rval = true; - $e = null; - - $code = substr($byemsg,0,3); - if($code != 221) { - // use e as a tmp var cause Close will overwrite $this->error - $e = array("error" => "SMTP server rejected quit command", - "smtp_code" => $code, - "smtp_rply" => substr($byemsg,4)); - $rval = false; - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $e["error"] . ": " . $byemsg . $this->CRLF . '<br />'; - } - } - - if(empty($e) || $close_on_error) { - $this->Close(); - } - - return $rval; - } - - /** - * Sends the command RCPT to the SMTP server with the TO: argument of $to. - * Returns true if the recipient was accepted false if it was rejected. - * - * Implements from rfc 821: RCPT <SP> TO:<forward-path> <CRLF> - * - * SMTP CODE SUCCESS: 250,251 - * SMTP CODE FAILURE: 550,551,552,553,450,451,452 - * SMTP CODE ERROR : 500,501,503,421 - * @access public - * @return bool - */ - public function Recipient($to) { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Recipient() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 250 && $code != 251) { - $this->error = - array("error" => "RCPT not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - return true; - } - - /** - * Sends the RSET command to abort and transaction that is - * currently in progress. Returns true if successful false - * otherwise. - * - * Implements rfc 821: RSET <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE ERROR : 500,501,504,421 - * @access public - * @return bool - */ - public function Reset() { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called Reset() without being connected"); - return false; - } - - fputs($this->smtp_conn,"RSET" . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 250) { - $this->error = - array("error" => "RSET failed", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - - return true; - } - - /** - * Starts a mail transaction from the email address specified in - * $from. Returns true if successful or false otherwise. If True - * the mail transaction is started and then one or more Recipient - * commands may be called followed by a Data command. This command - * will send the message to the users terminal if they are logged - * in and send them an email. - * - * Implements rfc 821: SAML <SP> FROM:<reverse-path> <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE SUCCESS: 552,451,452 - * SMTP CODE SUCCESS: 500,501,502,421 - * @access public - * @return bool - */ - public function SendAndMail($from) { - $this->error = null; // so no confusion is caused - - if(!$this->connected()) { - $this->error = array( - "error" => "Called SendAndMail() without being connected"); - return false; - } - - fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); - - $rply = $this->get_lines(); - $code = substr($rply,0,3); - - if($this->do_debug >= 2) { - echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '<br />'; - } - - if($code != 250) { - $this->error = - array("error" => "SAML not accepted from server", - "smtp_code" => $code, - "smtp_msg" => substr($rply,4)); - if($this->do_debug >= 1) { - echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '<br />'; - } - return false; - } - return true; - } - - /** - * This is an optional command for SMTP that this class does not - * support. This method is here to make the RFC821 Definition - * complete for this class and __may__ be implimented in the future - * - * Implements from rfc 821: TURN <CRLF> - * - * SMTP CODE SUCCESS: 250 - * SMTP CODE FAILURE: 502 - * SMTP CODE ERROR : 500, 503 - * @access public - * @return bool - */ - public function Turn() { - $this->error = array("error" => "This method, TURN, of the SMTP ". - "is not implemented"); - if($this->do_debug >= 1) { - echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF . '<br />'; - } - return false; - } - - /** - * Get the current error - * @access public - * @return array - */ - public function getError() { - return $this->error; - } - - ///////////////////////////////////////////////// - // INTERNAL FUNCTIONS - ///////////////////////////////////////////////// - - /** - * Read in as many lines as possible - * either before eof or socket timeout occurs on the operation. - * With SMTP we can tell if we have more lines to read if the - * 4th character is '-' symbol. If it is a space then we don't - * need to read anything else. - * @access private - * @return string - */ - private function get_lines() { - $data = ""; - while($str = @fgets($this->smtp_conn,515)) { - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '<br />'; - echo "SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '<br />'; - } - $data .= $str; - if($this->do_debug >= 4) { - echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF . '<br />'; - } - // if 4th character is a space, we are done reading, break the loop - if(substr($str,3,1) == " ") { break; } - } - return $data; - } - -} - -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ar.php b/facteur/phpmailer-php5/language/phpmailer.lang-ar.php deleted file mode 100644 index b7c5057..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ar.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Arabic Version, UTF-8 -* by : bahjat al mostafa <bahjat983@hotmail.com> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: لم نستطع تأكيد الهوية.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: لم نستطع الاتصال بمخدم SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: لم يتم قبول المعلومات .'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'ترميز غير معروÙ: '; -$PHPMAILER_LANG['execute'] = 'لم أستطع تنÙيذ : '; -$PHPMAILER_LANG['file_access'] = 'لم نستطع الوصول للملÙ: '; -$PHPMAILER_LANG['file_open'] = 'File Error: لم نستطع ÙØªØ الملÙ: '; -$PHPMAILER_LANG['from_failed'] = 'البريد التالي لم نستطع ارسال البريد له : '; -$PHPMAILER_LANG['instantiate'] = 'لم نستطع توÙير خدمة البريد.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer غير مدعوم.'; -//$PHPMAILER_LANG['provide_address'] = 'You must provide at least one recipient email address.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: الأخطاء التالية ' . - 'ÙØ´Ù„ ÙÙŠ الارسال لكل من : '; -$PHPMAILER_LANG['signing'] = 'خطأ ÙÙŠ التوقيع: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-br.php b/facteur/phpmailer-php5/language/phpmailer.lang-br.php deleted file mode 100644 index 7d64ce4..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-br.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Portuguese Version -* By Paulo Henrique Garcia - paulo@controllerweb.com.br -*/ - -$PHPMAILER_LANG['authenticate'] = 'Erro de SMTP: Não foi possÃvel autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Erro de SMTP: Não foi possÃvel conectar com o servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erro de SMTP: Dados não aceitos.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Codificação desconhecida: '; -$PHPMAILER_LANG['execute'] = 'Não foi possÃvel executar: '; -$PHPMAILER_LANG['file_access'] = 'Não foi possÃvel acessar o arquivo: '; -$PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: Não foi possÃvel abrir o arquivo: '; -$PHPMAILER_LANG['from_failed'] = 'Os endereços de rementente a seguir falharam: '; -$PHPMAILER_LANG['instantiate'] = 'Não foi possÃvel instanciar a função mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer não suportado.'; -$PHPMAILER_LANG['provide_address'] = 'Você deve fornecer pelo menos um endereço de destinatário de email.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erro de SMTP: Os endereços de destinatário a seguir falharam: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ca.php b/facteur/phpmailer-php5/language/phpmailer.lang-ca.php deleted file mode 100644 index 1127567..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ca.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Catalan Version -* By Ivan: web AT microstudi DOT com -*/ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s\'hapogut autenticar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; -$PHPMAILER_LANG['execute'] = 'No es pot executar: '; -$PHPMAILER_LANG['file_access'] = 'No es pot accedir a l\'arxiu: '; -$PHPMAILER_LANG['file_open'] = 'Error d\'Arxiu: No es pot obrir l\'arxiu: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; -$PHPMAILER_LANG['instantiate'] = 'No s\'ha pogut crear una instà ncia de la funció Mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; -$PHPMAILER_LANG['provide_address'] = 'S\'ha de proveir almenys una adreça d\'email com a destinatari.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ch.php b/facteur/phpmailer-php5/language/phpmailer.lang-ch.php deleted file mode 100644 index 31ebd86..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ch.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Chinese Version -* By LiuXin: www.80x86.cn/blog/ -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验è¯å¤±è´¥ã€‚'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: ä¸èƒ½è¿žæŽ¥SMTP主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: æ•°æ®ä¸å¯æŽ¥å—。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '未知编ç :'; -$PHPMAILER_LANG['execute'] = 'ä¸èƒ½æ‰§è¡Œ: '; -$PHPMAILER_LANG['file_access'] = 'ä¸èƒ½è®¿é—®æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['file_open'] = '文件错误:ä¸èƒ½æ‰“开文件:'; -$PHPMAILER_LANG['from_failed'] = '下é¢çš„å‘é€åœ°å€é‚®ä»¶å‘é€å¤±è´¥äº†ï¼š '; -$PHPMAILER_LANG['instantiate'] = 'ä¸èƒ½å®žçްmail方法。'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的å‘é€é‚®ä»¶çš„æ–¹æ³•并䏿”¯æŒã€‚'; -$PHPMAILER_LANG['provide_address'] = '您必须æä¾›è‡³å°‘一个 收信人的email地å€ã€‚'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下é¢çš„ æ”¶ä»¶äººå¤±è´¥äº†ï¼š '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-cz.php b/facteur/phpmailer-php5/language/phpmailer.lang-cz.php deleted file mode 100644 index f9589ca..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-cz.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Czech Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentikace.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nelze navázat spojenà se SMTP serverem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Data nebyla pøijata'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Neznámé kódovánÃ: '; -$PHPMAILER_LANG['execute'] = 'Nelze provést: '; -$PHPMAILER_LANG['file_access'] = 'Soubor nenalezen: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Nelze otevøÃt soubor pro ètenÃ: '; -$PHPMAILER_LANG['from_failed'] = 'NásledujÃcà adresa From je nesprávná: '; -$PHPMAILER_LANG['instantiate'] = 'Nelze vytvoøit instanci emailové funkce.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailový klient nenà podporován.'; -$PHPMAILER_LANG['provide_address'] = 'MusÃte zadat alespoò jednu emailovou adresu pøÃjemce.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy pøÃjemcù nejsou správné '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-de.php b/facteur/phpmailer-php5/language/phpmailer.lang-de.php deleted file mode 100644 index 165a86f..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-de.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* German Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Fehler: Authentifizierung fehlgeschlagen.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Fehler: Konnte keine Verbindung zum SMTP-Host herstellen.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Fehler: Daten werden nicht akzeptiert.'; -$PHPMAILER_LANG['empty_message'] = 'E-Mail Inhalt ist leer.'; -$PHPMAILER_LANG['encoding'] = 'Unbekanntes Encoding-Format: '; -$PHPMAILER_LANG['execute'] = 'Konnte folgenden Befehl nicht ausführen: '; -$PHPMAILER_LANG['file_access'] = 'Zugriff auf folgende Datei fehlgeschlagen: '; -$PHPMAILER_LANG['file_open'] = 'Datei Fehler: konnte folgende Datei nicht öffnen: '; -$PHPMAILER_LANG['from_failed'] = 'Die folgende Absenderadresse ist nicht korrekt: '; -$PHPMAILER_LANG['instantiate'] = 'Mail Funktion konnte nicht initialisiert werden.'; -$PHPMAILER_LANG['invalid_email'] = 'E-Mail wird nicht gesendet, die Adresse ist ungültig.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wird nicht unterstützt.'; -$PHPMAILER_LANG['provide_address'] = 'Bitte geben Sie mindestens eine Empfänger E-Mailadresse an.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Fehler: Die folgenden Empfänger sind nicht korrekt: '; -$PHPMAILER_LANG['signing'] = 'Fehler beim Signieren: '; -$PHPMAILER_LANG['smtp_connect_failed'] = 'Verbindung zu SMTP Server fehlgeschlagen.'; -$PHPMAILER_LANG['smtp_error'] = 'Fehler vom SMTP Server: '; -$PHPMAILER_LANG['variable_set'] = 'Kann Variable nicht setzen oder zurücksetzen: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-dk.php b/facteur/phpmailer-php5/language/phpmailer.lang-dk.php deleted file mode 100644 index 59b58c0..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-dk.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Danish Version -* Author: Mikael Stokkebro <info@stokkebro.dk> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge pÃ¥.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; -$PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke Ã¥bne filen: '; -$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; -$PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-en.php b/facteur/phpmailer-php5/language/phpmailer.lang-en.php deleted file mode 100644 index f7d4286..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-en.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** - * PHPMailer language file. - * English Version - */ - -$PHPMAILER_LANG = array(); - -$PHPMAILER_LANG["provide_address"] = 'You must provide at least one ' . - 'recipient email address.'; -$PHPMAILER_LANG["mailer_not_supported"] = ' mailer is not supported.'; -$PHPMAILER_LANG["execute"] = 'Could not execute: '; -$PHPMAILER_LANG["instantiate"] = 'Could not instantiate mail function.'; -$PHPMAILER_LANG["authenticate"] = 'SMTP Error: Could not authenticate.'; -$PHPMAILER_LANG["from_failed"] = 'The following From address failed: '; -$PHPMAILER_LANG["recipients_failed"] = 'SMTP Error: The following ' . - 'recipients failed: '; -$PHPMAILER_LANG["data_not_accepted"] = 'SMTP Error: Data not accepted.'; -$PHPMAILER_LANG["connect_host"] = 'SMTP Error: Could not connect to SMTP host.'; -$PHPMAILER_LANG["file_access"] = 'Could not access file: '; -$PHPMAILER_LANG["file_open"] = 'File Error: Could not open file: '; -$PHPMAILER_LANG["encoding"] = 'Unknown encoding: '; -$PHPMAILER_LANG["signing"] = 'Signing Error: '; - -?> diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-es.php b/facteur/phpmailer-php5/language/phpmailer.lang-es.php deleted file mode 100644 index 0b69825..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-es.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Spanish version -* Versión en español -*/ - -$PHPMAILER_LANG['authenticate'] = 'Error SMTP: No se pudo autentificar.'; -$PHPMAILER_LANG['connect_host'] = 'Error SMTP: No puedo conectar al servidor SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; -$PHPMAILER_LANG['execute'] = 'No puedo ejecutar: '; -$PHPMAILER_LANG['file_access'] = 'No puedo acceder al archivo: '; -$PHPMAILER_LANG['file_open'] = 'Error de Archivo: No puede abrir el archivo: '; -$PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; -$PHPMAILER_LANG['instantiate'] = 'No pude crear una instancia de la función Mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; -$PHPMAILER_LANG['provide_address'] = 'Debe proveer al menos una dirección de email como destinatario.'; -$PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinatarios fallaron: '; -$PHPMAILER_LANG['signing'] = 'Error al firmar: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-et.php b/facteur/phpmailer-php5/language/phpmailer.lang-et.php deleted file mode 100644 index cf61779..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-et.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Estonian Version -* By Indrek Päri -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Tundmatu Unknown kodeering: '; -$PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; -$PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; -$PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; -$PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; -$PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-fi.php b/facteur/phpmailer-php5/language/phpmailer.lang-fi.php deleted file mode 100644 index 6d7dcce..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-fi.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Finnish Version -* By Jyry Kuukanen -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP-virhe: käyttäjätunnistus epäonnistui.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP-virhe: yhteys palvelimeen ei onnistu.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP-virhe: data on virheellinen.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; -$PHPMAILER_LANG['execute'] = 'Suoritus epäonnistui: '; -$PHPMAILER_LANG['file_access'] = 'Seuraavaan tiedostoon ei ole oikeuksia: '; -$PHPMAILER_LANG['file_open'] = 'Tiedostovirhe: Ei voida avata tiedostoa: '; -$PHPMAILER_LANG['from_failed'] = 'Seuraava lähettäjän osoite on virheellinen: '; -$PHPMAILER_LANG['instantiate'] = 'mail-funktion luonti epäonnistui.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = 'postivälitintyyppiä ei tueta.'; -$PHPMAILER_LANG['provide_address'] = 'Aseta vähintään yksi vastaanottajan sähköpostiosoite.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP-virhe: seuraava vastaanottaja osoite on virheellinen.'; -$PHPMAILER_LANG['encoding'] = 'Tuntematon koodaustyyppi: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-fo.php b/facteur/phpmailer-php5/language/phpmailer.lang-fo.php deleted file mode 100644 index 704c477..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-fo.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Faroese Version [language of the Faroe Islands, a Danish dominion] -* This file created: 11-06-2004 -* Supplied by Dávur Sørensen [www.profo-webdesign.dk] -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; -$PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; -$PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fÃlu: '; -$PHPMAILER_LANG['file_open'] = 'FÃlu feilur: Kundi ikki opna fÃlu: '; -$PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; -$PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; -$PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-fr.php b/facteur/phpmailer-php5/language/phpmailer.lang-fr.php deleted file mode 100644 index 52e9ae2..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-fr.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* French Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'Erreur SMTP : Echec de l\'authentification.'; -$PHPMAILER_LANG['connect_host'] = 'Erreur SMTP : Impossible de se connecter au serveur SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Erreur SMTP : Données incorrects.'; -$PHPMAILER_LANG['empty_message'] = 'Corps de message vide'; -$PHPMAILER_LANG['encoding'] = 'Encodage inconnu : '; -$PHPMAILER_LANG['execute'] = 'Impossible de lancer l\'exécution : '; -$PHPMAILER_LANG['file_access'] = 'Impossible d\'accéder au fichier : '; -$PHPMAILER_LANG['file_open'] = 'Erreur Fichier : ouverture impossible : '; -$PHPMAILER_LANG['from_failed'] = 'L\'adresse d\'expéditeur suivante a échouée : '; -$PHPMAILER_LANG['instantiate'] = 'Impossible d\'instancier la fonction mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' client de messagerie non supporté.'; -$PHPMAILER_LANG['provide_address'] = 'Vous devez fournir au moins une adresse de destinataire.'; -$PHPMAILER_LANG['recipients_failed'] = 'Erreur SMTP : Les destinataires suivants sont en erreur : '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-hu.php b/facteur/phpmailer-php5/language/phpmailer.lang-hu.php deleted file mode 100644 index a266484..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-hu.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Hungarian Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Hiba: Sikertelen autentikáció.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Hiba: Nem tudtam csatlakozni az SMTP host-hoz.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hiba: Nem elfogadható adat.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ismeretlen kódolás: '; -$PHPMAILER_LANG['execute'] = 'Nem tudtam végrehajtani: '; -$PHPMAILER_LANG['file_access'] = 'Nem sikerült elérni a következõ fájlt: '; -$PHPMAILER_LANG['file_open'] = 'Fájl Hiba: Nem sikerült megnyitni a következõ fájlt: '; -$PHPMAILER_LANG['from_failed'] = 'Az alábbi Feladó cÃm hibás: '; -$PHPMAILER_LANG['instantiate'] = 'Nem sikerült példányosÃtani a mail funkciót.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Meg kell adnod legalább egy cÃmzett email cÃmet.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' levelezõ nem támogatott.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hiba: Az alábbi cÃmzettek hibásak: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-it.php b/facteur/phpmailer-php5/language/phpmailer.lang-it.php deleted file mode 100644 index 59bf4fb..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-it.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Italian version -* @package PHPMailer -* @author Ilias Bartolini <brain79@inwind.it> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Error: Impossibile autenticarsi.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Error: Impossibile connettersi all\'host SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Data non accettati dal server.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Encoding set dei caratteri sconosciuto: '; -$PHPMAILER_LANG['execute'] = 'Impossibile eseguire l\'operazione: '; -$PHPMAILER_LANG['file_access'] = 'Impossibile accedere al file: '; -$PHPMAILER_LANG['file_open'] = 'File Error: Impossibile aprire il file: '; -$PHPMAILER_LANG['from_failed'] = 'I seguenti indirizzi mittenti hanno generato errore: '; -$PHPMAILER_LANG['instantiate'] = 'Impossibile istanziare la funzione mail'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Deve essere fornito almeno un indirizzo ricevente'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Mailer non supportato'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: I seguenti indirizzi destinatari hanno generato errore: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ja.php b/facteur/phpmailer-php5/language/phpmailer.lang-ja.php deleted file mode 100644 index 66da1b6..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ja.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Japanese Version -* By Mitsuhiro Yoshida - http://mitstek.com/ -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTPエラー: èªè¨¼ã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPãƒ›ã‚¹ãƒˆã«æŽ¥ç¶šã§ãã¾ã›ã‚“ã§ã—ãŸã€‚'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データãŒå—ã‘付ã‘られã¾ã›ã‚“ã§ã—ãŸã€‚'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '䏿˜Žãªã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°: '; -$PHPMAILER_LANG['execute'] = '実行ã§ãã¾ã›ã‚“ã§ã—ãŸ: '; -$PHPMAILER_LANG['file_access'] = 'ファイルã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã›ã‚“: '; -$PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開ã‘ã¾ã›ã‚“: '; -$PHPMAILER_LANG['from_failed'] = '次ã®Fromアドレスã«é–“é•ã„ãŒã‚りã¾ã™: '; -$PHPMAILER_LANG['instantiate'] = 'ãƒ¡ãƒ¼ãƒ«é–¢æ•°ãŒæ£å¸¸ã«å‹•作ã—ã¾ã›ã‚“ã§ã—ãŸã€‚'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'å°‘ãªãã¨ã‚‚1ã¤ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’ 指定ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚'; -$PHPMAILER_LANG['mailer_not_supported'] = ' メーラーãŒã‚µãƒãƒ¼ãƒˆã•れã¦ã„ã¾ã›ã‚“。'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次ã®å—信者アドレス㫠間é•ã„ãŒã‚りã¾ã™: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-nl.php b/facteur/phpmailer-php5/language/phpmailer.lang-nl.php deleted file mode 100644 index 355dcdc..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-nl.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Dutch Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Fout: authenticatie mislukt.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Fout: Kon niet verbinden met SMTP host.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Fout: Data niet geaccepteerd.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; -$PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; -$PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; -$PHPMAILER_LANG['file_open'] = 'Bestandsfout: Kon bestand niet openen: '; -$PHPMAILER_LANG['from_failed'] = 'De volgende afzender adressen zijn mislukt: '; -$PHPMAILER_LANG['instantiate'] = 'Kon mail functie niet initialiseren.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Er moet tenmiste één ontvanger emailadres opgegeven worden.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Fout: De volgende ontvangers zijn mislukt: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-no.php b/facteur/phpmailer-php5/language/phpmailer.lang-no.php deleted file mode 100644 index bf2f84e..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-no.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Norwegian Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Feil: Kunne ikke authentisere.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Feil: Kunne ikke koble til SMTP host.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Feil: Data ble ikke akseptert.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Ukjent encoding: '; -$PHPMAILER_LANG['execute'] = 'Kunne ikke utføre: '; -$PHPMAILER_LANG['file_access'] = 'Kunne ikke fÃ¥ tilgang til filen: '; -$PHPMAILER_LANG['file_open'] = 'Fil feil: Kunne ikke Ã¥pne filen: '; -$PHPMAILER_LANG['from_failed'] = 'Følgende Fra feilet: '; -$PHPMAILER_LANG['instantiate'] = 'Kunne ikke instantiate mail funksjonen.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Du mÃ¥ ha med minst en mottager adresse.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer er ikke supportert.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Feil: Følgende mottagere feilet: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-pl.php b/facteur/phpmailer-php5/language/phpmailer.lang-pl.php deleted file mode 100644 index e8bd512..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-pl.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Polish Version -*/ - -$PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzić autentykacji.'; -$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć siÄ™ z wybranym hostem.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostaÅ‚y przyjÄ™te.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: '; -$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: '; -$PHPMAILER_LANG['file_access'] = 'Brak dostÄ™pu do pliku: '; -$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: '; -$PHPMAILER_LANG['from_failed'] = 'NastÄ™pujÄ…cy adres Nadawcy jest jest nieprawidÅ‚owy: '; -$PHPMAILER_LANG['instantiate'] = 'Nie można wywoÅ‚ać funkcji mail(). Sprawdź konfiguracjÄ™ serwera.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidÅ‚owy adres email Odbiorcy.'; -$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyÅ‚ki wiadomoÅ›ci nie jest obsÅ‚ugiwana.'; -$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: NastÄ™pujÄ…cy odbiorcy sÄ… nieprawidÅ‚owi: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ro.php b/facteur/phpmailer-php5/language/phpmailer.lang-ro.php deleted file mode 100644 index 17cddb7..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ro.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Romanian Version -* @package PHPMailer -* @author Catalin Constantin <catalin@dazoot.ro> -*/ - -$PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Nu a functionat autentificarea.'; -$PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Nu m-am putut conecta la adresa SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Continutul mailului nu a fost acceptat.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Encodare necunoscuta: '; -$PHPMAILER_LANG['execute'] = 'Nu pot executa: '; -$PHPMAILER_LANG['file_access'] = 'Nu pot accesa fisierul: '; -$PHPMAILER_LANG['file_open'] = 'Eroare de fisier: Nu pot deschide fisierul: '; -$PHPMAILER_LANG['from_failed'] = 'Urmatoarele adrese From au dat eroare: '; -$PHPMAILER_LANG['instantiate'] = 'Nu am putut instantia functia mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; -$PHPMAILER_LANG['provide_address'] = 'Trebuie sa adaugati cel putin un recipient (adresa de mail).'; -$PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Urmatoarele adrese de mail au dat eroare: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-ru.php b/facteur/phpmailer-php5/language/phpmailer.lang-ru.php deleted file mode 100644 index 295a56e..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-ru.php +++ /dev/null @@ -1,25 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Russian Version by Alexey Chumakov <alex@chumakov.ru> -*/ - -$PHPMAILER_LANG['authenticate'] = 'Ошибка SMTP: ошибка авторизации.'; -$PHPMAILER_LANG['connect_host'] = 'Ошибка SMTP: не удаетÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡Ð¸Ñ‚ÑŒÑÑ Ðº Ñерверу SMTP.'; -$PHPMAILER_LANG['data_not_accepted'] = 'Ошибка SMTP: данные не принÑты.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'ÐеизвеÑтный вид кодировки: '; -$PHPMAILER_LANG['execute'] = 'Ðевозможно выполнить команду: '; -$PHPMAILER_LANG['file_access'] = 'Ðет доÑтупа к файлу: '; -$PHPMAILER_LANG['file_open'] = 'Ð¤Ð°Ð¹Ð»Ð¾Ð²Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: не удаетÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚ÑŒ файл: '; -$PHPMAILER_LANG['from_failed'] = 'Ðеверный Ð°Ð´Ñ€ÐµÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ÐµÐ»Ñ: '; -$PHPMAILER_LANG['instantiate'] = 'Ðевозможно запуÑтить функцию mail.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'ПожалуйÑта, введите Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один Ð°Ð´Ñ€ÐµÑ e-mail получателÑ.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' - почтовый Ñервер не поддерживаетÑÑ.'; -$PHPMAILER_LANG['recipients_failed'] = 'Ошибка SMTP: отправка по Ñледующим адреÑам получателей не удалаÑÑŒ: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-se.php b/facteur/phpmailer-php5/language/phpmailer.lang-se.php deleted file mode 100644 index d459667..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-se.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Swedish Version -* Author: Johan Linnér <johan@linner.biz> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; -$PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; -$PHPMAILER_LANG['file_access'] = 'Ingen Ã¥tkomst till fil: '; -$PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; -$PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; -$PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'Du mÃ¥ste ange minst en mottagares e-postadress.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-tr.php b/facteur/phpmailer-php5/language/phpmailer.lang-tr.php deleted file mode 100644 index 8a069d1..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-tr.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Turkish version -* Türkçe Versiyonu -* ÃZYAZILIM - Elçin Özel - Can Yýlmaz - Mehmet Benlioðlu -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP Hatasý: Doðrulanamýyor.'; -$PHPMAILER_LANG['connect_host'] = 'SMTP Hatasý: SMTP hosta baðlanýlamýyor.'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Hatasý: Veri kabul edilmedi.'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = 'Bilinmeyen þifreleme: '; -$PHPMAILER_LANG['execute'] = 'Çalýþtýrýlamýyor: '; -$PHPMAILER_LANG['file_access'] = 'Dosyaya eriþilemiyor: '; -$PHPMAILER_LANG['file_open'] = 'Dosya Hatasý: Dosya açýlamýyor: '; -$PHPMAILER_LANG['from_failed'] = 'Baþarýsýz olan gönderici adresi: '; -$PHPMAILER_LANG['instantiate'] = 'Örnek mail fonksiyonu yaratýlamadý.'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'En az bir tane mail adresi belirtmek zorundasýnýz alýcýnýn email adresi.'; -$PHPMAILER_LANG['mailer_not_supported'] = ' mailler desteklenmemektedir.'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP Hatasý: alýcýlara ulaþmadý: '; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-zh.php b/facteur/phpmailer-php5/language/phpmailer.lang-zh.php deleted file mode 100644 index fef66f8..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-zh.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Traditional Chinese Version -* @author liqwei <liqwei@liqwei.com> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登錄失敗。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連接到 SMTP 主機。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:數據ä¸è¢«æŽ¥å—。'; -//$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '未知編碼: '; -$PHPMAILER_LANG['file_access'] = 'ç„¡æ³•è¨ªå•æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['file_open'] = '文件錯誤:無法打開文件:'; -$PHPMAILER_LANG['from_failed'] = '發é€åœ°å€éŒ¯èª¤ï¼š'; -$PHPMAILER_LANG['execute'] = '無法執行:'; -$PHPMAILER_LANG['instantiate'] = '未知函數調用。'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['provide_address'] = 'å¿…é ˆæä¾›è‡³å°‘一個收件人地å€ã€‚'; -$PHPMAILER_LANG['mailer_not_supported'] = '發信客戶端ä¸è¢«æ”¯æŒã€‚'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:收件人地å€éŒ¯èª¤ï¼š'; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/phpmailer-php5/language/phpmailer.lang-zh_cn.php b/facteur/phpmailer-php5/language/phpmailer.lang-zh_cn.php deleted file mode 100644 index b188404..0000000 --- a/facteur/phpmailer-php5/language/phpmailer.lang-zh_cn.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** -* PHPMailer language file: refer to English translation for definitive list -* Simplified Chinese Version -* @author liqwei <liqwei@liqwei.com> -*/ - -$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; -$PHPMAILER_LANG['connect_host'] = 'SMTP é”™è¯¯ï¼šæ— æ³•è¿žæŽ¥åˆ° SMTP 主机。'; -$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数æ®ä¸è¢«æŽ¥å—。'; -//$P$PHPMAILER_LANG['empty_message'] = 'Message body empty'; -$PHPMAILER_LANG['encoding'] = '未知编ç : '; -$PHPMAILER_LANG['execute'] = 'æ— æ³•æ‰§è¡Œï¼š'; -$PHPMAILER_LANG['file_access'] = 'æ— æ³•è®¿é—®æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['file_open'] = 'æ–‡ä»¶é”™è¯¯ï¼šæ— æ³•æ‰“å¼€æ–‡ä»¶ï¼š'; -$PHPMAILER_LANG['from_failed'] = 'å‘é€åœ°å€é”™è¯¯ï¼š'; -$PHPMAILER_LANG['instantiate'] = '未知函数调用。'; -//$PHPMAILER_LANG['invalid_email'] = 'Not sending, email address is invalid: '; -$PHPMAILER_LANG['mailer_not_supported'] = 'å‘信客户端ä¸è¢«æ”¯æŒã€‚'; -$PHPMAILER_LANG['provide_address'] = 'å¿…é¡»æä¾›è‡³å°‘一个收件人地å€ã€‚'; -$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地å€é”™è¯¯ï¼š'; -//$PHPMAILER_LANG['signing'] = 'Signing Error: '; -//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; -//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; -//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; -?> \ No newline at end of file diff --git a/facteur/plugin.xml b/facteur/plugin.xml deleted file mode 100644 index eba6108..0000000 --- a/facteur/plugin.xml +++ /dev/null @@ -1,30 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<plugin> - <nom>Facteur</nom> - <auteur>Collectif SPIP</auteur> - <version>1.5.8</version> - <version_base>1.1</version_base> - <etat>stable</etat> - <licence>[GPLv3->http://www.gnu.org/licenses/gpl-3.0.html]</licence> - <description>Facteur s'occupe de la distribution des courriels au format HTML, texte ou mixte ; via SMTP ou non</description> - <lien>http://www.spip-contrib.net/Facteur</lien> - <necessite id="SPIP" version="[2.0.3;]" /> - <utilise id="bando" version="[;]" /> - <install>base/facteur.php</install> - <icon>prive/images/facteur-48.png</icon> - <prefix>facteur</prefix> - <pipeline> - <nom>autoriser</nom> - <inclure>inc/facteur_autorisations.php</inclure> - </pipeline> - <onglet id="facteur" parent="configuration"> - <icone>prive/images/facteur-24.png</icone> - <titre>facteur:configuration_facteur</titre> - </onglet> - <bouton id='config_facteur' parent="bando_configuration"> - <icone>images/facteur-16.png</icone> - <titre>facteur:configuration_facteur</titre> - <url>facteur</url> - </bouton> - <categorie>communication</categorie> -</plugin> diff --git a/facteur/prive/configurer_facteur.html b/facteur/prive/configurer_facteur.html deleted file mode 100644 index 85b6d1c..0000000 --- a/facteur/prive/configurer_facteur.html +++ /dev/null @@ -1,10 +0,0 @@ -[(#REM) - - Squelette - (c) 2009 xxx - Distribue sous licence GPL - -] -<div class="ajax"> - #FORMULAIRE_CONFIGURER_FACTEUR -</div> \ No newline at end of file diff --git a/facteur/prive/images/facteur-24.png b/facteur/prive/images/facteur-24.png deleted file mode 100644 index 4f1a88fa1ef25036bae7de42c75710ef2ba43a5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2445 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 LNkvXXu0mjfk8FPd diff --git a/facteur/prive/images/facteur-48.png b/facteur/prive/images/facteur-48.png deleted file mode 100644 index 565b1b300af5788156dedc6570778115b456ce4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2328 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 diff --git a/facteur/prive/themes/spip/images/facteur-16.png b/facteur/prive/themes/spip/images/facteur-16.png deleted file mode 100644 index 51211f737c67ded3dcefdce01aa5d4fd78d0a942..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmV-W1F!svP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iXe| z2sto7-U<Q$00PiSL_t(I%YBhcYh7g&hM#ZmZ=Z7#Q<F3)p2T{nRt+Y^QgNz-8pJAs z;#{!9BKQMJ|A<qa2@V7m>7<F(B3_Dwrg)=CW80H+%jG2d@?F+)kZ3ycg*99c>shaP z^`&zkF3dJBgcwSWqA{wDJXSyP-2BLoE6Y2ljWe?|vka>W17K+UzWLzx^6H(dcHzn9 zh4)`xcsDN!Fa}i7s$}QPJkKt@#XA?@;P16x+57o>=9?`<4K}k}BfP%6dgtTBdtdJF z4Jn61B+oT*j`dDoTdyoJYEvamIk$9CpTG1GE4xAS?LPavd(@5D1%g#o5{caJ5BO~` zB<2S!y!{@}Jbi{iw~MNhB?(W>G`ZjH(X^h{$&4ThfR!j%=lP?v&1XA-Q)7?wMB@Zs zeDyWnd)n<bQ&UrHY;162bBl@QIA?u8^$4J%6qRFP`XrZUMrc@z`{6pB7*SC&RSv9W z+892VYcWlvsQfWNL?~Tg4CRGbqCqj%l8)91MNVU45})VzvLF$M7s1ss<Ua*fBnr-X zoJkIQbb-0o-lQ=x$?m;%9^U$iqI8%v1yyQEf*t`9je_@);Drzlrx+fvwRW4d(V)G$ z%6@M^h)Qq~?;_sIBR^0jhKLUWMo<yz<C7?cTc3V{F@`9L#t6oss-z)40*FFzfe-?9 zYjIJCWkuEPG3@m)RYj6zco7<DN);n9#A5}Cf`o{x0@v3!*{?hsogSax_zs-sm;N?u z-98e8Yj^Llo0mj?d_jUL1YxHr`EsjE-`2Q0*x}p4;Z4fT2W|eeHHKxyH{Bkctd4|u z+ybg;@R7+h(<_TFVqIWn`V{Bubtp<M&CQY2YETqhSzIKG5iyV)?qj!|bAOcu8iFw~ zAgW-DNxUN(Oo~CP%BV3UMPWpgtY+y)-vm;VO^mlr*Xrk|Z6@-s*#E@<N?IEm&2K*J ato#GA=gl%iniHb{0000<MNUMnLSTZ<d3)gi diff --git a/microblog/fonds/cfg_microblog.html b/microblog/fonds/cfg_microblog.html deleted file mode 100644 index a3ab36c..0000000 --- a/microblog/fonds/cfg_microblog.html +++ /dev/null @@ -1,16 +0,0 @@ -[(#REM) titre=Microblog] -[(#REM) autoriser=configurer] -[(#REM) presentation= ] -[(#REM) icone=images/microblog-24.png] -<!-- descriptif= -<img src='#CHEMIN{images/microblog-64.png}' alt='' style="float: #LANG_RIGHT;" /> -<h3>Microblog</h3> -<p><a href="http://www.spip-contrib.net/Microblog" class="spip_out">Cf. documentation</a></p> ---> -#CACHE{0} - -<div class="ajax"> -#FORMULAIRE_CONFIGURER_MICROBLOG -</div> - - diff --git a/microblog/formulaires/configurer_microblog.html b/microblog/formulaires/configurer_microblog.html deleted file mode 100644 index 59ff968..0000000 --- a/microblog/formulaires/configurer_microblog.html +++ /dev/null @@ -1,134 +0,0 @@ -<!-- nom=microblog --> - -<div class="formulaire_spip formulaire_editer formulaire_cfg"> - <h2 class="titrem">Microblog</h2> - [<p class='reponse_formulaire reponse_formulaire_erreur'>(#ENV*{message_erreur})</p>] - [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] - <form method="post" action="#ENV{action}"><div> - #ACTION_FORMULAIRE{SELF} - <ul> - <li class="fieldset"> - <fieldset> - <legend><:microblog:compte_defaut:> <code><tt>microblog()</tt></code></legend> - <p class="explication"><:microblog:creer_compte_services:> :</p> - - <ul> - <li> - <label>laconi.ca</label> - <a href="http://spip.org/main/register">http://spip.org/main/register</a>, <:microblog:presentation_spipo:><br /> - <a href="http://identi.ca/main/register">http://identi.ca/main/register</a>, <:microblog:presentation_laconica:> - </li> - <li> - <label>Twitter</label> - <a href="https://twitter.com/signup">https://twitter.com/signup</a>, twitter.com - </li> - </ul> - - <ul> - <li> - <label for="service"><:microblog:service:></label> - <p class="explication"><:microblog:compte_tests:> : twitter | spipotest spipotest1</p> - <select name="service" id="service"> - <option value="">(<:microblog:choisir:>)</option> - <option value="" disabled="disabled">- laconica -</option> - <option value="spipo"[ - (#ENV{service}|=={spipo}|?{selected="selected"})]>SPIP.org (spipo)</option> - <option value="identica"[ - (#ENV{service}|=={identica}|?{selected="selected"})]>Identi.ca (identica)</option> - <option value="" disabled="disabled"></option> - <option value="" disabled="disabled">- twitter -</option> - <option value="twitter"[ - (#ENV{service}|=={twitter}|?{selected="selected"})]>Twitter.com</option> - </select> - </li> - <li> - <label for="user">Username</label> - <input type="text" name="user" value="[(#ENV{user})]" id="user" class="text" /> - </li> - <li> - <label for="password"><:entree_mot_passe:></label> - <input type="password" name="pass" value="[(#ENV{pass})]" id="pass" class="text" /> - </li> - </ul> - </fieldset> - </li> - <li class="fieldset"> - <fieldset> - <legend><:microblog:invite:></legend> - <ul> - <li> - <label><:microblog:invite_statut:></label> - <p class="explication"><:microblog:invite_statut_explications:></p> - <div class="choix"> - <input type="checkbox" name="invite"[ - (#ENV{invite}|?{checked="checked"})] id="invite" /> - <label for="invite"><:microblog:invite_afficher:></label> - </div> - </li> - </ul> - </fieldset> - </li> - <li class="fieldset"> - <fieldset> - <legend><:microblog:notifications:></legend> - <ul> - <li> - <label><:microblog:notifications_publiques:></label> - <p class="explication"><:microblog:elements_signaler:> :</p> - <div class="choix"> - <input type="checkbox" name="evt_forumposte"[ - (#ENV{evt_forumposte}|?{checked="checked"})] id="evt_forumposte" /> - <label for="evt_forumposte"><:microblog:poster_forums:></label> - </div> - <div class="choix"> - <input type="checkbox" name="evt_proposerarticles"[ - (#ENV{evt_proposerarticles}|?{checked="checked"})] id="evt_proposerarticles" /> - <label for="evt_proposerarticles"><:microblog:proposer_articles:></label> - </div> - <div class="choix"> - <input type="checkbox" name="evt_publierarticles"[ - (#ENV{evt_publierarticles}|?{checked="checked"})] id="evt_publierarticles" /> - <label for="evt_publierarticles"><:microblog:publier_articles:></label> - <div id="evt_publierarticles_options"[(#ENV{evt_publierarticles}|non)style="display:none;"]> - [(#CONFIG{post_dates}|=={non}|oui) - <div class="choix"> - <input type="radio" name="evt_publierarticlesfutur" id="evt_publierarticlesfutur_validation" value="validation"[ - (#ENV{evt_publierarticlesfutur}|=={publication}|?{'',checked="checked"})] /> - <label for="evt_publierarticlesfutur_validation"><:microblog:publier_articles_futurs_immediatement:></label> - </div> - <div class="choix"> - <input type="radio" name="evt_publierarticlesfutur" id="evt_publierarticlesfutur_publication" value="publication"[ - (#ENV{evt_publierarticlesfutur}|=={publication}|?{checked="checked"})] /> - <label for="evt_publierarticlesfutur_publication"><:microblog:publier_articles_futurs_visibles:></label> - </div> - ] - <div class="choix"> - <input type="checkbox" name="short_url" id="short_url" value="1"[ - (#ENV{short_url,''}|oui)checked="checked"] /> - <label for="short_url"><:microblog:publier_articles_shorturl:></label> - </div> - </div> - <script type="text/javascript"> - function affiche_bloc_synchro(){ - if (jQuery("#evt_publierarticles").attr("checked")) - jQuery("#evt_publierarticles_options").show('fast'); - else - jQuery("#evt_publierarticles_options").hide('fast'); - } - jQuery(document).ready(function(){ - jQuery("#evt_publierarticles").click(affiche_bloc_synchro); - }); - </script> - </div> - </li> - </ul> - </fieldset> - </li> - </ul> - <p class="boutons"> - <input type="submit" name="_cfg_ok" value="<:ok:>" class="submit" /> - <input type="reset" value="<:reset:>" class="submit" /> - <input type="submit" name="_cfg_delete" value="<:supprimer:>" class="submit" /> - </p> - </div></form> -</div> \ No newline at end of file diff --git a/microblog/formulaires/microbloguer.html b/microblog/formulaires/microbloguer.html deleted file mode 100644 index e5e3ad7..0000000 --- a/microblog/formulaires/microbloguer.html +++ /dev/null @@ -1,45 +0,0 @@ -[(#REM) - - formulaire microbloguer - (c) 2009 Cerdic - Distribue sous licence GPL - -] -[<div class='ajax'> -<div class="formulaire_spip formulaire_#FORM"> - [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>] - (#ENV{editable}) - <form method='post' action='#ENV{action}' enctype='multipart/form-data'><div> - [(#REM) declarer les hidden qui declencheront le service du formulaire - parametre : url d'action ] - #ACTION_FORMULAIRE{#ENV{action}} - <ul> - #SET{fl,microblog} - #SET{name,status}#SET{erreurs,#ENV**{erreurs}|table_valeur{#GET{name}}}#SET{obli,'obligatoire'} - <li class="editer_[(#GET{name})][ (#GET{obli})][ (#GET{erreurs}|oui)erreur]">[ - <span class='erreur_message'>(#GET{erreurs})</span> - ]<label for="#GET{name}"><em>[(#VAL{140}|moins{#ENV{status}|strlen})]</em>[(#GET{fl}|concat{':label_',#GET{name}}|_T)]</label> - <textarea name="#GET{name}" id="#GET{name}">#ENV{status}</textarea> - </li> - </ul> - [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ] - <!--extra--> - <p class='boutons'><span class='image_loading'></span><input type='submit' class='submit' value='<:microblog:bouton_envoyer:>' /></p> - </div></form> - [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>] -</div></div>] -<script type="text/javascript"> -function status_length_count(){ - jQuery('#status').keyup(function(){ - var maxlen = 140; - var l = maxlen-jQuery(this).val().length; - jQuery(this).parent().find('label>em').html(l).removeClass(l>=0?'nok':'ok').addClass(l>=0?'ok':'nok'); - }); -} -jQuery('document').ready(status_length_count); -onAjaxLoad(status_length_count); -</script> -<style type="text/css"> - .formulaire_microbloguer .editer_status label em {font-style:normal;display:block;float:right;color:#aaa;} - .formulaire_microbloguer .editer_status label em.nok {color:red;} -</style> \ No newline at end of file diff --git a/microblog/formulaires/microbloguer.php b/microblog/formulaires/microbloguer.php deleted file mode 100644 index 9a373dc..0000000 --- a/microblog/formulaires/microbloguer.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/* - * Plugin spip|microblog - * (c) Fil 2009-2010 - * - * envoyer des micromessages depuis SPIP vers twitter ou laconica - * distribue sous licence GNU/LGPL - * - */ - - -if (!defined("_ECRIRE_INC_VERSION")) return; - -// chargement des valeurs par defaut des champs du formulaire -function formulaires_microbloguer_charger_dist(){ - return - array( - 'status' => '', - ); -} - -// chargement des valeurs par defaut des champs du formulaire -function formulaires_microbloguer_verifier_dist(){ - $erreurs = array(); - if (!$status = _request('status')){ - $erreurs['status'] = _T('info_obligatoire'); - } - elseif (strlen($status)>140){ - $erreurs['status'] = _T('microblog:longueur_maxi_status'); - } - - return - $erreurs; -} - - -function formulaires_microbloguer_traiter_dist(){ - $res = array(); - if ($status = _request('status')){ - include_spip('inc/microblog'); - microblog($status); - set_request('status',''); - $res = array('message_ok'=>$status,'editable'=>true); - } - else - $res = array('message_erreur'=>'???','editable'=>true); - - return - $res; -} - -?> diff --git a/microblog/genie/microblog.php b/microblog/genie/microblog.php deleted file mode 100644 index aa77bdf..0000000 --- a/microblog/genie/microblog.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php -/* - * Plugin spip|microblog - * (c) Fil 2009-2010 - * - * envoyer des micromessages depuis SPIP vers twitter ou laconica - * distribue sous licence GNU/LGPL - * - */ - -// -// Alerte sur les articles publies post-dates -// -// http://doc.spip.org/@genie_visites_dist -function genie_microblog_dist($last) { - $cfg = @unserialize($GLOBALS['meta']['microblog']); - // si le site utilise les articles postdates - // et que l'on a configurer pour alerter a la publication uniquement - // il faut surveiller les articles publies - // $last est la date de la dernier occurence du cron, si vaut zero on ne fait rien - if ($GLOBALS['meta']["post_dates"]=='non' - AND $cfg['evt_publierarticlesfutur']=='publication' - AND $last){ - include_spip('inc/abstract_sql'); - $deja_annonces = explode(',',$GLOBALS['meta']['microblog_annonces']); - $deja_annonces = array_map('intval',$deja_annonces); - - $res = sql_select("id_article,statut","spip_articles", - array( - "statut='publie'", - "date>".sql_quote(date("Y-m-d H:i:s",$last)), - "date<=".sql_quote(date("Y-m-d H:i:s")), - sql_in('id_article',$deja_annonces,"NOT") - )); - include_spip('inc/micro_notifications'); - include_spip('inc/microblog'); - while($row = sql_fetch($res)){ - $status = Microblog_annonce('instituerarticle',array('id_article'=>$row['id_article'])); - envoyer_microblog($status,array('objet'=>'article','id_objet'=>$row['id_article'])); - } - // raz des annonces deja faites - include_spip('inc/meta'); - ecrire_meta('microblog_annonces','0'); - } - - return 1; -} - -function microblog_taches_generales_cron($taches_generales){ - if ($GLOBALS['meta']["post_dates"]=='non' - AND $cfg = @unserialize($GLOBALS['meta']['microblog']) - AND $cfg['evt_publierarticlesfutur']=='publication'){ - // surveiller toutes les heures les publications post-dates - $taches_generales['microblog'] = 3600; - } - return $taches_generales; -} - -?> \ No newline at end of file diff --git a/microblog/images/microblog-24.png b/microblog/images/microblog-24.png deleted file mode 100644 index 620f5dd5304b44d844640a01c5733327edf28a07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1095 zcmV-N1i1T&P)<h;3K|Lk000e1NJLTq000;O000pP1^@s6$9QZo0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#=}AOERCwB)R9k2qRT%!ynKNf*c6V~m zCc8;PQfV4(5^2dprHEQD1r1mPMX359jklr_6qTayVjmjNQbe#41EPpF6!pcnk<wZy zG_i%WjY*SDHfhpi)9httXZD;k$FpfGwAqJ{GY`X@;s3t>^8Fu@Qo?%9mBjI`;qm^@ zT`y&}ZR-BHtF5Qcq!p|G63c0rTFgRq*o5}RntS5NdcfyW!|mrskDO)Pp$HSWJo(eE zNT^<apyBC5oM*uE!+_LN>frSdj86U1>lM-zV|^8fXeNwI4SaZM@&}w+o&X-G+tT>! zBk)-!f|2(BH!=wL*Ox5+kD2z(_0IsM5x|N-!)Rj!vFaV?g=8S505CBWeoTP-=0*GR z!LLXD`R3^B$*lL$#l*seL@M*@h6ob#XI=`MwW+WfO%Y^x;#6w&o)=s+a_qZzhG!N( zU3R=KMe_Xpu_Oq1@ogcD`;ZK%6agSYi{Wr`fkRsa!xP&-IXgZ(w8sv|RlhxJqSN|z zbn^JKdNJ_f9kVs{Rllb+8SQAS9auwvZchiP`d@Z~AT+;_RXrtO*d`qP*MpwT8tjQT z^(#4Nipkg{p4oZuv$x#T(idJb`Dn+x@9p!$dd_5Fs4EYxss4^k@q-9Sdg_Kp-aeg$ zg=<MD?`#Dlq(ga<!J;ql);j@$7l4*k&pdwk@c!h`&{Huh?mA=nV^LzdRW;gy<X93G z=5K;K?}E4F0g)0viB%U=5wyE81ewPW><d@GlImQODvS#Wue4YSy667n9FAgxxjFZQ zJD2a)%k&kN=N~i4ay-vp<hOzY4J{2{5~twzPP_cMkqm-M839Me6|z9EH?BeN785#( z%PJ8qwMSQmufE^h&|FR|!daG8a7Vo0q}~3NvGiB*ipFT&rn)z9$iOFB%dGDeO5wL8 z2S<Su2w;CRg{?NaS!w8p0w8~uQkO<Gsh5$fSVMksmf6W{AI_miR0R|lXNzGsVnGg2 z5CTn;(;&sB>2v{Bd=5=E1)Jh?N>aNJ)}X`=!MVY|p>2B`uz7Z2Wg^qHY8Mr9VEo#| z?pS#|UKOwWiv)^EY5~F=ZBqhmt;C|qkoh!sSyT`^s-~b4SzXgL1f4rOK{tqT>qa_y zw}n#3ZAe3?z<p3{tGsJ=GQf~UfSrhK59*W#hG7)Fp{|tMdLW=Ul<f7KQn$47i(c(* zts_uFo)JuJp%EQ4L#4J}yS~Spq<BcN?`2GcQNZfwPA<KsvL#r<+~=MqSb$7wf!z}R zfWQWh!EmYod^VqRVuEwWh|x1NLS(??ua;&;{FOooVF+|v@BdGL0RS5JxjX>g<U9ZX N002ovPDHLkV1m1t5d{DM diff --git a/microblog/images/microblog-64.png b/microblog/images/microblog-64.png deleted file mode 100644 index 4429c94ac3d20bf6f45eeadc26624b23a3678c07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4309 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 DUUL=t diff --git a/microblog/images/microblog.png b/microblog/images/microblog.png deleted file mode 100644 index 3971011cedc71680698d5e50bb0a7355a36d827a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10000 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 a0t^5!U6URP^Rk2h0000<MNUMnLSTa2R05Fz diff --git a/microblog/inc/micro_notifications.php b/microblog/inc/micro_notifications.php deleted file mode 100644 index 4332756..0000000 --- a/microblog/inc/micro_notifications.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/* - * Plugin spip|microblog - * (c) Fil 2009-2010 - * - * envoyer des micromessages depuis SPIP vers twitter ou laconica - * distribue sous licence GNU/LGPL - * - */ - -if (!defined("_ECRIRE_INC_VERSION")) return; - -/* - * Buzzer les notifications - */ - -function Microblog_notifications($x) { - include_spip('inc/filtres_mini'); - include_spip('inc/texte'); - - $status = null; - $cfg = @unserialize($GLOBALS['meta']['microblog']); - switch($x['args']['quoi']) { - case 'forumposte': // post forums - if ($cfg['evt_forumposte'] - AND $id = intval($x['args']['id'])) { - $status = Microblog_annonce('forumposte',array('id_forum'=>$id)); - envoyer_microblog($status,array('objet'=>'forum','id_objet'=>$id)); - } - break; - - case 'instituerarticle': // publier | proposer articles - if ($id = intval($x['args']['id']) - AND ( - // publier - ($cfg['evt_publierarticles'] - AND $x['args']['options']['statut'] == 'publie' - AND $x['args']['options']['statut_ancien'] != 'publie' - AND ($GLOBALS['meta']["post_dates"]=='oui' - OR strtotime($x['args']['options']['date'])<=time() - OR $cfg['evt_publierarticlesfutur']!='publication' - ) - ) - OR - // proposer - ($cfg['evt_proposerarticles'] - AND $x['args']['options']['statut'] == 'prop' - AND $x['args']['options']['statut_ancien'] != 'publie' - ) - ) - ) { - // si on utilise aussi le cron pour annoncer les articles post-dates - // noter ceux qui sont deja annonces ici (pour eviter double annonce) - if ($x['args']['options']['statut'] == 'publie' - AND $GLOBALS['meta']["post_dates"]=='non' - AND $cfg['evt_publierarticlesfutur']=='publication' - ){ - include_spip('inc/meta'); - ecrire_meta('microblog_annonces',$GLOBALS['meta']['microblog_annonces'].','.$id); - } - $status = Microblog_annonce('instituerarticle',array('id_article'=>$id)); - envoyer_microblog($status,array('objet'=>'article','id_objet'=>$id)); - } - break; - } - - return $x; -} - -function Microblog_annonce($quoi,$contexte){ - return trim(recuperer_fond("modeles/microblog_$quoi",$contexte)); -} - -function envoyer_microblog($status,$liens=array()){ - if (!is_null($status)) { - if (!function_exists('job_queue_add')){ - include_spip('inc/microblog'); - microblog($status); - } - else{ - $id_job = job_queue_add('microblog',"microblog : $status",array($status),'inc/microblog',true,time()+60); - if ($liens) - job_queue_link($id_job,$liens); - } - } -} - -?> \ No newline at end of file diff --git a/microblog/inc/microblog.php b/microblog/inc/microblog.php deleted file mode 100644 index fe0d6b6..0000000 --- a/microblog/inc/microblog.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php -/* - * Plugin spip|microblog - * (c) Fil 2009-2010 - * - * envoyer des micromessages depuis SPIP vers twitter ou laconica - * distribue sous licence GNU/LGPL - * - */ - -if (!defined("_ECRIRE_INC_VERSION")) return; - - -/* - * Envoyer un microblog sur une des plateformes disponibles - * $status : ce qu'on veut ecrire - * $user, $pass : identifiants - * $service : quel service - * $api : si on est vraiment desespere :-) - */ -function microblog($status, $user=null, $pass=null, $service=null, $api=null){ - $cfg = @unserialize($GLOBALS['meta']['microblog']); - - // Certains define prennent le pas sur le reste (mode TEST) - if (defined('_TEST_MICROBLOG_SERVICE')) { - if (_TEST_MICROBLOG_SERVICE == '') { - spip_log('microblog desactive par _TEST_MICROBLOG_SERVICE'); - return false; - } - else - $service = _TEST_MICROBLOG_SERVICE; - } - if (defined('_TEST_MICROBLOG_USER')) $user = _TEST_MICROBLOG_USER; - if (defined('_TEST_MICROBLOG_PASS')) $pass = _TEST_MICROBLOG_PASS; - - - // services connus - $apis = array( - 'spipo' => 'http://%user%:%pass%@spip.org/api/statuses/update.xml', - 'identica' => 'http://%user%:%pass%@identi.ca/api/statuses/update.xml', - 'twitter' => 'http://%user%:%pass%@twitter.com/statuses/update.xml' - ); - - // Choix de l'API - if (!isset($api)) { - if (!isset($service)) - $service = $cfg['service']; - if (!isset($apis[$service])) - return false; - $api = $apis[$service]; - } - - if (!isset($user)) - $user = $cfg['user']; - if (!isset($pass)) - $pass = $cfg['pass']; - - // Inserer les credits d'authentification - $api = str_replace(array('%user%','%pass%'), array(urlencode($user),urlencode($pass)), $api); - - // Preparer le message (utf8 < 140 caracteres) - include_spip('inc/charsets'); - $status = trim(preg_replace(',\s+,', ' ', $status)); - $status = unicode2charset(charset2unicode($status), 'utf-8'); - $status = substr($status, 0, 140); - - if (!strlen($status)) - return false; - - $datas = array('status' => $status); - - // anti-begaiment - $begaie = md5("$service $user $status"); - if ($begaie == $GLOBALS['meta']['microblog_begaie']) { - spip_log("begaie $service $user $status", 'microblog'); - return false; - } else - ecrire_meta('microblog_begaie', $begaie); - - // ping et renvoyer la reponse xml - include_spip('inc/distant'); - $ret = recuperer_page($api, false, false, null, $datas); - spip_log("$service $user $status ".strlen($ret), 'microblog'); - return $ret; -} - - -function microblog_affiche_droite($flux){ - if (autoriser('microbloguer','status') - AND isset($GLOBALS['meta']['microblog']) - AND is_array($cfg = @unserialize($GLOBALS['meta']['microblog'])) - AND $cfg['invite']) { - $flux['data'] .= recuperer_fond('modeles/microblog_update',array()); - } - return $flux; -} \ No newline at end of file diff --git a/microblog/lang/microblog_fr.php b/microblog/lang/microblog_fr.php deleted file mode 100644 index f5107d4..0000000 --- a/microblog/lang/microblog_fr.php +++ /dev/null @@ -1,55 +0,0 @@ -<?php -// This is a SPIP language file -- Ceci est un fichier langue de SPIP -if (!defined("_ECRIRE_INC_VERSION")) return; - -$GLOBALS[$GLOBALS['idx_lang']] = array( - - // A - 'article' => 'article', - - // B - 'bouton_envoyer' => 'Envoyer', - - // C - 'choisir' => 'choisir', - 'compte_tests' => 'Compte de tests', - 'compte_defaut' => 'Compte par défaut pour la fonction', - 'creer_compte_services' => 'Vous pouvez créer un compte pour votre site SPIP sur l\'un des services suivants', - - // E - 'elements_signaler' => 'Elements à signaler sur le flux public ci-dessus', - - // I - 'invite' => 'Invite', - 'invite_statut' => 'Invite de statut', - 'invite_statut_explications' => 'Le plugin peut afficher dans l\'espace privé une invite de statut. Voulez-vous afficher une invite de statut pour les rédacteurs autorisés (par défaut : les administrateurs du site) ?', - 'invite_afficher' => 'Afficher l\'invite de statut', - - - // L - 'label_status' => 'Quoi de neuf ?', - - // P - 'presentation_spipo' => 'le site de la communauté SPIP', - 'presentation_laconica' => 'le site public du logiciel laconi.ca', - - // N - 'notifications' => 'Notifications', - 'notifications_publiques' => 'Notifications publiques', - - // P - 'poster_forums' => 'Forums postés', - 'proposer_articles' => 'Articles proposés', - 'propose' => 'proposé', - 'publier_articles' => 'Articles publiés', - 'publie' => 'publié', - 'publier_articles_futurs_immediatement'=>'Annoncer les articles quelle que soit leur date de publication', - 'publier_articles_futurs_visibles'=>'Ne pas annoncer les articles avant la date de publication fixée', - 'publier_articles_shorturl'=>'Utiliser des urls courtes (necessite un .htaccess)', - - // S - 'service' => 'Service' - -); - -?> diff --git a/microblog/microblog_fonctions.php b/microblog/microblog_fonctions.php deleted file mode 100644 index 0f4e573..0000000 --- a/microblog/microblog_fonctions.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/* - * Plugin spip|microblog - * (c) Fil 2009-2010 - * - * envoyer des micromessages depuis SPIP vers twitter ou laconica - * distribue sous licence GNU/LGPL - * - */ - -function generer_url_microblog($id, $entite, $args, $ancre, $public, $type){ - include_spip('inc/filtres_mini'); - $config = unserialize($GLOBALS['meta']['microblog']); - - if (!$public - OR $entite!=='article' - OR !$config['short_url']) - return url_absolue(generer_url_entite($id, $entite, $args, $ancre, $public, $type)); - else - return $GLOBALS['meta']['adresse_site'].'/'.$id; -} - - -?> \ No newline at end of file diff --git a/microblog/modeles/microblog_forumposte.html b/microblog/modeles/microblog_forumposte.html deleted file mode 100644 index af4d13d..0000000 --- a/microblog/modeles/microblog_forumposte.html +++ /dev/null @@ -1,12 +0,0 @@ -[(#REM) - - Squelette - (c) 2009 xxx - Distribue sous licence GPL - -] -<BOUCLE_forum(FORUMS){id_forum}{statut?}{tout}> - #SET{url,(#VAL{'#forum '}|concat{#URL_FORUM|url_absolue})} - [(#SET{len,#VAL{120}|moins{#GET{url}|strlen}})] - [(#TITRE|concat{' | ',#TEXTE}|couper{#GET{len}}|concat{' ',#GET{url}})] -</BOUCLE_forum> \ No newline at end of file diff --git a/microblog/modeles/microblog_instituerarticle.html b/microblog/modeles/microblog_instituerarticle.html deleted file mode 100644 index 4384c9b..0000000 --- a/microblog/modeles/microblog_instituerarticle.html +++ /dev/null @@ -1,12 +0,0 @@ -[(#REM) - - Squelette - (c) 2009 xxx - Distribue sous licence GPL - -] -<BOUCLE_art(ARTICLES){id_article}{statut?}{tout}> - #SET{url,(#ID_ARTICLE|generer_url_microblog{article,'','',#STATUT|=={publie}|?{#EVAL{true}}})} - [(#SET{len,#VAL{120}|moins{#GET{url}|strlen}})] - [(#TITRE|concat{[, par (#LESAUTEURS)]}|couper{#GET{len}}|concat{' ',#GET{url}})] -</BOUCLE_art> \ No newline at end of file diff --git a/microblog/modeles/microblog_update.html b/microblog/modeles/microblog_update.html deleted file mode 100644 index 7b14bce..0000000 --- a/microblog/modeles/microblog_update.html +++ /dev/null @@ -1,8 +0,0 @@ -[(#REM) - - Squelette - (c) 2009 xxx - Distribue sous licence GPL - -] -#FORMULAIRE_MICROBLOGUER \ No newline at end of file diff --git a/microblog/plugin.xml b/microblog/plugin.xml deleted file mode 100644 index d3c8865..0000000 --- a/microblog/plugin.xml +++ /dev/null @@ -1,30 +0,0 @@ -<plugin> - <nom>Microblog</nom> - <auteur>Fil © 2009-2010</auteur> - <licence>GNU/LGPL</licence> - <version>0.3.1</version> - <etat>stable</etat> - <description> - Envoyer des micromessages vers les plateformes laconica, twitter, spip.org etc. Fournit une fonction <code>microblog($statut, $user, $pass, $service);</code>. - </description> - <lien>http://www.spip-contrib.net/Microblog</lien> - <prefix>microblog</prefix> - <icon>images/microblog.png</icon> - - <fonctions>microblog_fonctions.php</fonctions> - <pipeline> - <nom>notifications</nom> - <inclure>inc/micro_notifications.php</inclure> - </pipeline> - <pipeline> - <nom>taches_generales_cron</nom> - <inclure>genie/microblog.php</inclure> - </pipeline> - <pipeline> - <nom>affiche_droite</nom> - <inclure>inc/microblog.php</inclure> - </pipeline> - - <necessite id="SPIP" version="[2.0;]" /> - <!-- en vrai http://trac.rezo.net/trac/spip/changeset/14036 --> -</plugin> diff --git a/microblog/prive/exec/configurer_microblog.html b/microblog/prive/exec/configurer_microblog.html deleted file mode 100644 index dec594e..0000000 --- a/microblog/prive/exec/configurer_microblog.html +++ /dev/null @@ -1,6 +0,0 @@ -<h1 class="grostitre">Microblog</h1> -<div class="ajax"> -#FORMULAIRE_CONFIGURER_MICROBLOG -</div> - - diff --git a/microblog/prive/style_prive_plugin_microblog.html b/microblog/prive/style_prive_plugin_microblog.html deleted file mode 100644 index 09436ca..0000000 --- a/microblog/prive/style_prive_plugin_microblog.html +++ /dev/null @@ -1,24 +0,0 @@ -[(#REM) - - Ce squelette definit les styles de l'espace prive - - Note: l'entete "Vary:" sert a repousser l'entete par - defaut "Vary: Cookie,Accept-Encoding", qui est (un peu) - genant en cas de "rotation du cookie de session" apres - un changement d'IP (effet de clignotement). - - ATTENTION: il faut absolument le charset sinon Firefox croit que - c'est du text/html ! -] -#CACHE{3600*100,cache-client} -#HTTP_HEADER{Content-Type: text/css; charset=iso-8859-15} -#HTTP_HEADER{Vary: Accept-Encoding} - -#SET{claire,##ENV{couleur_claire,edf3fe}} -#SET{foncee,##ENV{couleur_foncee,3874b0}} -#SET{left,#ENV{ltr}|choixsiegal{left,left,right}} -#SET{right,#ENV{ltr}|choixsiegal{left,right,left}} - -.formulaire_spip.formulaire_microbloguer { border-color: #33CCFF; } -.formulaire_spip.formulaire_microbloguer li.obligatoire, -.formulaire_spip.formulaire_microbloguer .boutons { background-color: #DBEFFA; } \ No newline at end of file -- GitLab