diff --git a/.gitattributes b/.gitattributes index 166ef2f606679b74b0f65b432c58deab99ce8abe..fc4d38814aa9803ad5e26c9248cad83093b79895 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 8ae4ccc7cc0559889093c24040934694c48c7527..0000000000000000000000000000000000000000 --- 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 694269b6fe99532d0f7b23d571a660395fc70480..0000000000000000000000000000000000000000 --- 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 ace3aa93ddf284c103ee05bd00ffd9ff17c6bfdc..0000000000000000000000000000000000000000 --- 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 b8a8c191b46053aa4757629c24c44a3032f22293..0000000000000000000000000000000000000000 --- 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 21f4ee195506f874fe5b4eed02e042cbe0ecc787..0000000000000000000000000000000000000000 --- 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 3b5bbf1f61e5583f1d312349bbf934bb5cfb557c..0000000000000000000000000000000000000000 --- 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 e8953af1decd53637b7dbc56f995e67a20c6bba1..0000000000000000000000000000000000000000 --- 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 ce1bbf952fa522c49bbbd071c34d951366110ac2..0000000000000000000000000000000000000000 --- 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 b6b731e43671e67aa0e66ad2fba3e3d95c8ccd21..0000000000000000000000000000000000000000 --- 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 d914d8f95e36c340517f6b7fb27177fbdfde6f80..0000000000000000000000000000000000000000 --- 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 d0921203bca9ea3a8e2b3cbee25d5d6677fafda6..0000000000000000000000000000000000000000 --- 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 af4ab1a581a926db72c3d33ad4e5db5f67491917..0000000000000000000000000000000000000000 --- 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 19ef082fcb2680a903e5f1a347815c16b8c87fb4..0000000000000000000000000000000000000000 --- 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 5ebee4dbd21171922650efcfc3280fbe2ce13d8f..0000000000000000000000000000000000000000 --- 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 cc50302d24cb7710da726c0437d0298c4d8a01ab..0000000000000000000000000000000000000000 --- 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 6922e160e64e8ae18364b9c33f121d6cc9e47b1d..0000000000000000000000000000000000000000 --- 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 03851a3383020eeb8e586cab8073470f1bc2af6c..0000000000000000000000000000000000000000 --- 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 5c8d65807bdf5d0537fdd1c39e8719f873a7e85c..0000000000000000000000000000000000000000 --- 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 afb71b25f508057fb5f9f29c8b982cfca5c40ee6..0000000000000000000000000000000000000000 --- 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 0a6d8d45aa2859033e874c595d64f17bbdf4b781..0000000000000000000000000000000000000000 --- 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 be084a116e117b695b278ab460af49f3969763f6..0000000000000000000000000000000000000000 --- 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 c7f343ae2b392b2df3028f4e0367124c76eba70a..0000000000000000000000000000000000000000 --- 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 dece2256aff6152b62fdc5c16d9c3dc46a0be991..0000000000000000000000000000000000000000 --- 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 dfc8370efe5829b70049b1ca03a6d34c9ec192a6..0000000000000000000000000000000000000000 --- 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 5251402b0409299971fd11b576067615d1dab8a6..0000000000000000000000000000000000000000 --- 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 80b4eea1d8f6e61358d166cc0f3b882f683d02ab..0000000000000000000000000000000000000000 --- 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 7e23f4be07a928c29fb94d7ea741caf9149cbf70..0000000000000000000000000000000000000000 --- 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 120fd3bb4b4c2c21e5364fceca9b47e5fb2ef922..0000000000000000000000000000000000000000 --- 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 41906b1e7fc5b32ceea2660d37da82fca1528f13..0000000000000000000000000000000000000000 --- 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 b0d7d22e4dfb39e0e54f1e1f7dc745712a74ba4d..0000000000000000000000000000000000000000 --- 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 943680cd1e11d1781c8f5e7a147c075b4722c807..0000000000000000000000000000000000000000 --- 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 970ebc030da56e660029f24f0100f17ac9937a66..0000000000000000000000000000000000000000 --- 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 b09414b196b935b5f9940578419b4c01cf8e86df..0000000000000000000000000000000000000000 --- 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 b40ec215d4efba11ca6ecbbe4d89b900a3f0d02b..0000000000000000000000000000000000000000 --- 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 5fac38a09f04c1130625da9f753ac908a399b8e4..0000000000000000000000000000000000000000 --- 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 76a9f3a59c76b969e3538f3152d2d6a203e6b233..0000000000000000000000000000000000000000 --- 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 6848ca380f5c543128a668fdf6acd44e93c53948..0000000000000000000000000000000000000000 --- 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 269b1522a7c297da25ec4948216e54097aa140b3..0000000000000000000000000000000000000000 --- 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 184d8857f3d6eaf4ef7eaac0ffd943cbbf5cdfb9..0000000000000000000000000000000000000000 --- 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 bbc9cc9a8a14bddca171c75a0f9700a122e7919f..0000000000000000000000000000000000000000 --- 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 4c6a4683d1d483bf2b58dc7ffc82e0ea8233d4f0..0000000000000000000000000000000000000000 --- 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 bc2dc2d5e9519d5c7a4d03962b3f21ed0ab324ef..0000000000000000000000000000000000000000 --- 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 f9100a67fcdaaaf5cbe56b24991ebf3fb31f2b17..0000000000000000000000000000000000000000 --- 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 99c5ac421f36ff675c5b604188c7371fdd6ccd7f..0000000000000000000000000000000000000000 --- 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 31c10faae6cbe5a1aa250628e31803d23e2f72c7..0000000000000000000000000000000000000000 --- 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 b01d806f068574ad0b8b1417ede03f76b886c1f1..0000000000000000000000000000000000000000 --- 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 03851a3383020eeb8e586cab8073470f1bc2af6c..0000000000000000000000000000000000000000 --- 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 3670fb62bfd5b82230df4141bb0157e4b975c23f..0000000000000000000000000000000000000000 --- 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 9cdd0f31f01c5bcc52b75cc8221e64c9fc26cc0d..0000000000000000000000000000000000000000 --- 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 f9fd3b2edbd3a2b5b68e046d23aaea3e3a34c50a..0000000000000000000000000000000000000000 --- 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 c2ca1cb3b8842f9f65be1101baba75391e5aafb4..0000000000000000000000000000000000000000 --- 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 b7c5057d0c215ba84e655d19b5bb7f169b786711..0000000000000000000000000000000000000000 --- 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 7d64ce4d4cbe96afb35802c659eef4af9f87b9e2..0000000000000000000000000000000000000000 --- 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 1127567dc82c6af74a34234984dc1ae0d76c5dd7..0000000000000000000000000000000000000000 --- 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 31ebd861cbe61080ec3d584d6db29448ba59c4b1..0000000000000000000000000000000000000000 --- 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 f9589ca19d6f08b38db7d00b0daf9f46e538e461..0000000000000000000000000000000000000000 --- 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 165a86f4f716edaa5e8a6f1adc63f23435d4d6b4..0000000000000000000000000000000000000000 --- 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 59b58c0fcec37ff19e18ac2e6a2b79f785741bdc..0000000000000000000000000000000000000000 --- 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 f7d4286d07547df7aa2b980be58ead0d68656573..0000000000000000000000000000000000000000 --- 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 0b6982509c586732615c9f5c8f363566b2bedfbd..0000000000000000000000000000000000000000 --- 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 cf61779b08b437a094c4363b95c3c4c5631005b5..0000000000000000000000000000000000000000 --- 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 6d7dccee519b4742113b5410372e077dab0b566b..0000000000000000000000000000000000000000 --- 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 704c4772da74166c15a9a307923459cdb07e0f39..0000000000000000000000000000000000000000 --- 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 52e9ae2b998fa51050482fd48971daf4bed9ff1d..0000000000000000000000000000000000000000 --- 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 a26648484b4e42f8feb5bba3d283ae32bdbc18be..0000000000000000000000000000000000000000 --- 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 59bf4fb97858ab1c7934b793cdfdcfc45816205c..0000000000000000000000000000000000000000 --- 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 66da1b6a1d6166eca94f73fab393937eaf6b6047..0000000000000000000000000000000000000000 --- 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 355dcdc4994006ab2e2ac5c94e67c3db3808d7fd..0000000000000000000000000000000000000000 --- 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 bf2f84ee9bf83224732b28af56c5e1fdacd89b10..0000000000000000000000000000000000000000 --- 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 e8bd5124d7da78921ced0b600286d59ddcdae124..0000000000000000000000000000000000000000 --- 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 17cddb76b99c9d339a1f34841bb42c7d406200bc..0000000000000000000000000000000000000000 --- 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 295a56ef49e3e8b7d2333a9190354c0b518a2dd5..0000000000000000000000000000000000000000 --- 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 d459667f7d7d8572559c49602f90eeaab16fb99c..0000000000000000000000000000000000000000 --- 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 8a069d14d039386eabc62beec7d379b970356a98..0000000000000000000000000000000000000000 --- 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 fef66f8cb1573012d378a31bc44fe1e778bca430..0000000000000000000000000000000000000000 --- 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 b18840435978e7dfe17d01e6e28cf52d49233bae..0000000000000000000000000000000000000000 --- 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 eba610840863cd07268e74f48ecd1baf6ad6525a..0000000000000000000000000000000000000000 --- 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 85b6d1cb89897fb641ec643a35380c8b5c179a17..0000000000000000000000000000000000000000 --- 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 Binary files a/facteur/prive/images/facteur-24.png and /dev/null differ diff --git a/facteur/prive/images/facteur-48.png b/facteur/prive/images/facteur-48.png deleted file mode 100644 index 565b1b300af5788156dedc6570778115b456ce4e..0000000000000000000000000000000000000000 Binary files a/facteur/prive/images/facteur-48.png and /dev/null differ 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 Binary files a/facteur/prive/themes/spip/images/facteur-16.png and /dev/null differ diff --git a/microblog/fonds/cfg_microblog.html b/microblog/fonds/cfg_microblog.html deleted file mode 100644 index a3ab36cf0de4c598af32346ad8e8e75a459e0f46..0000000000000000000000000000000000000000 --- 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 59ff9688a78e4edf4e9b2fe279063155a6d86faf..0000000000000000000000000000000000000000 --- 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 e5e3ad725a120324e373032ed9469a081352b71c..0000000000000000000000000000000000000000 --- 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 9a373dcbff5fb231994d894ded2ade3c4e6562f5..0000000000000000000000000000000000000000 --- 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 aa77bdffeee8ea6e5d4e805d004ea266daf985b1..0000000000000000000000000000000000000000 --- 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 Binary files a/microblog/images/microblog-24.png and /dev/null differ diff --git a/microblog/images/microblog-64.png b/microblog/images/microblog-64.png deleted file mode 100644 index 4429c94ac3d20bf6f45eeadc26624b23a3678c07..0000000000000000000000000000000000000000 Binary files a/microblog/images/microblog-64.png and /dev/null differ diff --git a/microblog/images/microblog.png b/microblog/images/microblog.png deleted file mode 100644 index 3971011cedc71680698d5e50bb0a7355a36d827a..0000000000000000000000000000000000000000 Binary files a/microblog/images/microblog.png and /dev/null differ diff --git a/microblog/inc/micro_notifications.php b/microblog/inc/micro_notifications.php deleted file mode 100644 index 4332756eccd0e18e0cd4d2338e1ea539d196bdda..0000000000000000000000000000000000000000 --- 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 fe0d6b6dddfe6e379a845f425ca6b85328066f11..0000000000000000000000000000000000000000 --- 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 f5107d4ad39743cf95d6d2e62ee0187dcb1b8df1..0000000000000000000000000000000000000000 --- 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 0f4e5734b817de089443def33d2c82464c48aa5f..0000000000000000000000000000000000000000 --- 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 af4d13d47da1cbf292320612a6153382a1420d3c..0000000000000000000000000000000000000000 --- 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 4384c9b30c1521eeaf2ab7613e09d50584584abd..0000000000000000000000000000000000000000 --- 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 7b14bce63843e96513237d84d23ecdaac8826833..0000000000000000000000000000000000000000 --- 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 d3c886593ddfffe57b7a23c1f35bf4b0c03f1333..0000000000000000000000000000000000000000 --- 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 dec594efb366a0416826e918dd7fceee90a8438e..0000000000000000000000000000000000000000 --- 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 09436ca5c5209dacd61d5556e72cbf31eff43430..0000000000000000000000000000000000000000 --- 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