1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/emailpoubelle_ynh.git synced 2024-09-03 18:26:29 +02:00

Postfix & sources

Use clean postfix regen #6
Use ynh_setup_source
This commit is contained in:
Krakinou 2019-03-04 21:10:34 +01:00
parent 5749ece16e
commit dedfae73e8
59 changed files with 108 additions and 3687 deletions

View file

@ -12,6 +12,7 @@ Of course, once uninstalled, everything get back to normal.
TODO :
------
- [X] move to 2.0
- [ ] check nginx conf
- [X] insert clean index.php

3
conf/app.src Normal file
View file

@ -0,0 +1,3 @@
SOURCE_URL=https://github.com/kepon85/emailPoubelle.php/archive/d9f444c7687e3d4597d6d95c33fa96fd1332c1de.zip
SOURCE_SUM=3ab236748b1b912c03ddf4e09c4e7f0304467adadc0012c9b8f434353fe26e46
SOURCE_FORMAT=zip

View file

@ -7,7 +7,7 @@
"fr": "Créez des adresses email jetables qui redirigent les mails vers votre adresse réelle"
},
"url": "https://framagit.org/kepon/emailPoubellePhp/",
"version": "2.0~ynh3",
"version": "2.0~ynh4",
"license": "Beerware",
"maintainer": {
"name": "krakinou",
@ -63,13 +63,13 @@
"example": "AveryStrongPassword"
},
{
"name": "public_site",
"name": "is_public",
"type": "boolean",
"ask": {
"en": "Should this application be public ?",
"fr": "Est-ce que cette application doit être visible publiquement ?"
"en": "Is it a public application?",
"fr": "Est-ce une application publique ?"
},
"choices": ["Yes", "No"],
"default": "No"
"default": false
}
]
}

View file

@ -62,5 +62,4 @@ ynh_backup "/etc/cron.d/$app"
# BACKUP POSTFIX & ALIASES
#=================================================
ynh_backup $postfix
ynh_backup /etc/aliases

View file

@ -66,8 +66,10 @@ locale-gen
#INSTALL SOURCES
#===============================================
# Copy source files
sudo mkdir -p $final_path
sudo cp -R ../src/* $final_path
ynh_print_info "Downloading sources to $final_path"
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source "$final_path"
sudo cp ../conf/index_source.php $final_path/www/index.php
ynh_replace_string "Template-exemple" "$domain" $final_path/www/index.php
@ -106,9 +108,9 @@ sudo chmod o-r $final_path/conf.php
ynh_mysql_create_db $db_user $db_user $db_pwd
#setting postfix to use virtual aliases file
sudo cp $postfix $postfix.emailpoubelle.bak #backup it eventually if that causes some issues
ynh_replace_string "^virtual_alias_maps" "#virtual_alias_maps" $postfix
echo "virtual_alias_maps = hash:$final_path/var/virtual" | sudo tee -a $postfix
# Add postfix configuration hook and regen postfix conf
cp -R ../sources/hooks/conf_regen/98-postfix_emailpoubelle /usr/share/yunohost/hooks/conf_regen/
yunohost service regen-conf postfix
#create the virtual aliases file
sudo touch $final_path/var/virtual
@ -133,12 +135,19 @@ sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
# Create a dedicated nginx config
#ynh_add_nginx_config
# If app is public, add url to SSOWat conf as skipped_uris
if [ "$is_public" = "Yes" ];
#=================================================
# SETUP SSOWAT
#=================================================
# Make app public if necessary
if [ $is_public -eq 1 ]
then
sudo yunohost app setting $app skipped_uris -v "/"
# unprotected_uris allows SSO credentials to be passed anyway.
ynh_app_setting_set $app unprotected_uris "/"
fi
#A verifier? A integrer dans dépendances?
#adding php-cli for cron
sudo apt-get update -qq

View file

@ -21,10 +21,8 @@ sudo rm -f /etc/nginx/conf.d/$domain.d/emailpoubelle.conf
#removing aliases
sudo sed -i "/devnull:\/dev\/null/d" /etc/aliases
sudo newaliases
#efface le nouvel virtual alias
sudo sed -i "/virtual_alias_maps = hash:\/var\/www\/emailpoubelle\/var\/virtual/d" $postfix
#reactive le nouveau
ynh_replace_string "^#virtual_alias_maps" "virtual_alias_maps" $postfix
# Remove hook for postfix conf
ynh_secure_remove "/usr/share/yunohost/hooks/conf_regen/98-postfix_emailpoubelle"
#remove cronjob
sudo rm -f /etc/cron.d/emailpoubelle

View file

@ -1,5 +1,5 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
@ -81,8 +81,9 @@ locale-gen
#=================================================
# RESTORE POSTFIX ALIASES
#=================================================
cp -R ../sources/hooks/conf_regen/98-postfix_emailpoubelle /usr/share/yunohost/hooks/conf_regen/
yunohost service regen-conf postfix
ynh_restore_file $postfix
#=================================================
# RESTORE THE CRON FILE

View file

@ -46,47 +46,47 @@ path_url=$(ynh_normalize_url_path $path_url)
#=================================================
#check for matlink's version
#=================================================
cat /etc/yunohost/apps/$app/status.json | grep "matlink"
if [[ $?==0 ]]; then
#deprecated - not maintained for more than a year...
#cat /etc/yunohost/apps/$app/status.json | grep "matlink"
#if [[ $?==0 ]]; then
#add missing info in settings
final_path=/var/www/$app
db_name=emailPoubelle
ynh_app_setting_set $app db_name $db_name
ynh_app_setting_set $app final_path $final_path
# final_path=/var/www/$app
# db_name=emailPoubelle
# ynh_app_setting_set $app db_name $db_name
# ynh_app_setting_set $app final_path $final_path
#install geoip dependencies
ynh_install_app_dependencies $pkg_dependencies
# ynh_install_app_dependencies $pkg_dependencies
#install locale packages
for i in $lang ; do
ynh_replace_string "# $i" "$i" /etc/locale.gen
done
locale-gen
# for i in $lang ; do
# ynh_replace_string "# $i" "$i" /etc/locale.gen
# done
# locale-gen
#change folder locale => lang as per src2.0
rm -rf $final_path/locale
mkdir -p $final_path/lang
# rm -rf $final_path/locale
# mkdir -p $final_path/lang
#add new index.php
cp ../conf/index_source.php $final_path/www/index.php
# cp ../conf/index_source.php $final_path/www/index.php
#switch from previous (modified) conf.php to new one (emailpoubelle original)
cp ../src/conf-dist.php $final_path/conf-dist.new.php
# cp ../src/conf-dist.php $final_path/conf-dist.new.php
#insert domain in line 24, DB in line 31, DBUSER in line 32, etc.
rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DOMAIN',")
sed -i "24s/.*/${rep}/" $final_path/conf-dist.new.php
rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DB',")
sed -i "31s/.*/${rep}/" $final_path/conf-dist.new.php
rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBUSER',")
sed -i "32s/.*/${rep}/" $final_path/conf-dist.new.php
rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBPASS',")
sed -i "33s/.*/${rep}/" $final_path/conf-dist.new.php
# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DOMAIN',")
# sed -i "24s/.*/${rep}/" $final_path/conf-dist.new.php
# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DB',")
# sed -i "31s/.*/${rep}/" $final_path/conf-dist.new.php
# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBUSER',")
# sed -i "32s/.*/${rep}/" $final_path/conf-dist.new.php
# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBPASS',")
# sed -i "33s/.*/${rep}/" $final_path/conf-dist.new.php
#replace old conf and process with install command
mv $final_path/conf.php $final_path/conf.php.old
mv $final_path/conf-dist.new.php $final_path/conf.php
ynh_replace_string "define('DB', 'sqlite:'" "//define('DB', 'sqlite:'" $final_path/conf.php
ynh_replace_string "define('ALIASLIMITBYMAIL" "//define('ALIASLIMITBYMAIL" $final_path/conf.php
#setting conf file not world-readable (dude, there is a plain-text password !)
sudo chmod o-r $final_path/conf.php
# mv $final_path/conf.php $final_path/conf.php.old
# mv $final_path/conf-dist.new.php $final_path/conf.php
# ynh_replace_string "define('DB', 'sqlite:'" "//define('DB', 'sqlite:'" $final_path/conf.php
# ynh_replace_string "define('ALIASLIMITBYMAIL" "//define('ALIASLIMITBYMAIL" $final_path/conf.php
# #setting conf file not world-readable (dude, there is a plain-text password !)
# sudo chmod o-r $final_path/conf.php
fi
#fi
#=================================================
@ -101,7 +101,6 @@ ynh_replace_string "index index.php;" "index www/ndex.php;" /etc/yunohost/$domai
ynh_replace_string "Template-exemple" "$domain" $final_path/www/index.php
#mysqlpwd setting was implemented in ynh2 - check if saved and if not implement
db_pass=$(ynh_app_setting_get $app mysqlpwd)
if [ -z $db_pass]; then
@ -112,15 +111,9 @@ if [ -z $db_pass]; then
fi
# Copy source files
cp -a ../src/bin/. $final_path/bin
cp -a ../src/lib/. $final_path/lib
cp -a ../src/lang/. $final_path/lang
cp -a ../src/www/. $final_path/www
cp ../src/emailPoubelle.php $final_path/emailPoubelle.php
cp ../src/emailPoubelleAdmin.php $final_path/emailPoubelleAdmin.php
cp ../src/README.md $final_path/README.md
cp ../src/CHANGELOG.md $final_path/CHANGELOG.md
cp ../src/conf-dist.php $final_path/conf-dist.php
ynh_print_info "Downloading sources to $final_path"
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source "$final_path"
cp ../conf/index_source.php $final_path/www/index.php
test -e $final_path/template-exemple
if [[ ! $? -eq 0 ]]; then

View file

@ -0,0 +1,42 @@
#!/bin/bash
set -e
do_pre_regen() {
pending_dir=$1
# Patch postfix conf
postfix_main_cf="${pending_dir}/../postfix/etc/postfix/main.cf"
# FIXME : check this file actually exists to not crash when only running this
# hook alone
sudo sed -e "s@^alias_maps\s*=\s*\(.*\)@alias_maps = \1,hash:/var/lib/mailman/data/aliases@"\
-e "s@^virtual_alias_maps\s*=\s*\(.*\)@virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman,\1@"\
-i $postfix_main_cf
}
do_post_regen() {
regen_conf_files=$1
}
FORCE=${2:-0}
DRY_RUN=${3:-0}
case "$1" in
pre)
do_pre_regen $4
;;
post)
do_post_regen $4
;;
*)
echo "hook called with unknown argument \`$1'" >&2
exit 1
;;
esac
exit 0

9
src/.gitignore vendored
View file

@ -1,9 +0,0 @@
/postfix
virtual
virtual.db
checkupdate
conf.php
test*
var/database*
var/.htaccess
devToProd.sh

View file

@ -1,66 +0,0 @@
## X (future)
- support postfix-mysql (not plain text virtual file)
- javascript checkupgrade in admin page
## 2.0 (2018-11)
- Internationnalisation, traduction possible (fichier source dans lang/messages.pot)
- Traduction anglais / français (merci à https://github.com/matlink pour l'anglais)
## 1.4 (2018-03-19)
- Interface admin avec stats, top user, possibilité de nettoyer, blacklister...
## 1.2 (2018-03-19)
- Ne pas permettre la création d'un alias depuis un alias
- Limiter le nombre d'alias possible
## 1.0.1 (2014-01-06)
Bugfixes:
- fixe ListeAlias no send email if error
## 1.0 (2013-10-02)
Features:
- add database with PDO (remove plain text)
support mysql, sqlite, postgresql...
- add multi-domain support
- add memory email (with cookies)
- add life for alias (optional)
- add comment for alias (optional)
- add template for example
- add javascript in form (noscript compatible)
- add cron for expir life email
- add maintenance mode
- add basic form anti-spam
- add disable/enable alias function
- pass UTF-8 encode
## 0.3 (2013-08-08) (without database)
- add blacklist.txt regex
- add function "alias list"
- add shell statistique script
- add readme
## 0.2 (2012-08-05)
Features:
- add aliasdeny.txt regex
- migrate to Net_DNS2
- check email exist with DNS (check MX)
Bugfixes:
- fixe http://forge.zici.fr/p/emailpoubelle-php/issues/4/
## 0.1b (2012-03-20)
- start project

View file

@ -1,44 +0,0 @@
emailPoubelle.php
=============
Un script pour un petit service d'email jetable
* [Démo](http://poubelle.zici.fr/)
* [Page du projet](http://forge.zici.fr/p/emailpoubelle-php/)
* [Download](http://forge.zici.fr/p/emailpoubelle-php/source/download/master/)
* [Bug report](http://forge.zici.fr/p/emailpoubelle-php/issues/)
Installation
-----------
Installation des dépendances :
pear install Net_DNS2
Télécharger & décompresser les sources :
mkdir -p /www/emailPoubelle/postfix
cd /tmp
wget -O emailPoubelle.zip https://framagit.org/kepon/emailPoubellePhp/-/archive/master/emailPoubellePhp-master.zip
unzip emailPoubelle.zip
cp -r emailpoubelle-php-master/* /var/www/emailPoubelle
Configure apache virtualhost (ou autres serveur http)
[...]
DocumentRoot /var/www/emailPoubelle/www
[...]
Configurer Postfix :
vi /etc/postfix/main.cf
[...]
virtual_alias_maps = hash:/www/emailPoubelle/var/virtual
touch /www/emailPoubelle/var/virtual
/usr/sbin/postmap /www/emailPoubelle/var/virtual
chown www-data /www/emailPoubelle/var/virtual
chown www-data /www/emailPoubelle/var/virtual.db
Ajouter dans le fichier /etc/aliases le devnull
echo "devnull: /dev/null" >> /etc/aliases
newaliases

View file

@ -1,80 +0,0 @@
#!/usr/bin/php
<?php
include('../conf.php');
# pour migrer du plain-text vers la base de donnée
// Connect DB
try {
if (preg_match('/^sqlite/', DB)) {
$dbco = new PDO(DB);
} else {
$dbco = new PDO(DB, DBUSER, DBPASS);
}
$dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch ( PDOException $e ) {
die('Connexion à la base '.$e->getMessage());
}
// postmap command
function UpdateVirtualDB_migrateTo10() {
global $dbco;
try {
$selectcmd = $dbco->prepare("SELECT alias, email
FROM ".DBTABLEPREFIX."alias
WHERE status = 5
ORDER BY id ASC");
$selectcmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
$file_content=null;
while($alias_db = $selectcmd->fetch()) {
$file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
}
$alias_file=fopen(FICHIERALIAS,'w');
fputs($alias_file, $file_content);
fclose($alias_file);
exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
}
// add new alias
function AjouterAlias_migrateTo10($status, $alias,$email, $life, $comment) {
global $dbco;
$dateCreat=date('Y-m-d H:i:s', 0);
$dateExpir=NULL;
try {
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
$insertcmd->bindParam('status', $status, PDO::PARAM_INT);
$insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
$insertcmd->bindParam('email', $email, PDO::PARAM_STR);
$insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
$insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
$insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
$insertcmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
return $dbco->lastInsertId();
}
$handle = fopen(FICHIERALIAS, 'r');
while (!feof($handle)) {
$buffer = fgets($handle);
if ($buffer) {
$bufferExplode = explode(' ', $buffer);
if (!preg_match('/^(#|$|;)/', $buffer)) {
echo $bufferExplode[0].' -> '.$bufferExplode[1]."\n";
AjouterAlias_migrateTo10(5, trim($bufferExplode[0]), trim($bufferExplode[1]), null, null);
}
}
}
fclose($handle);
UpdateVirtualDB_migrateTo10();
?>

View file

@ -1,98 +0,0 @@
<?php
//-----------------------------------------------------------
// emailPoubelle config
// Licence : GNU GPL v3 : http://www.gnu.org/licenses/gpl.html
// Créateur : David Mercereau - david [aro] mercereau [.] info
// Home : http://poubelle.zici.fr
//-----------------------------------------------------------
// writable for script
define('DATA', '../var');
// include directory
define('INC', '../lib');
define('URLINC', './lib'); // or http://mondomaine.tld/lib
define('LANG', '../lang');
// include function
include_once(INC.'/ep_function.php');
include_once(INC.'/ep_header.php');
define('DEBUG', false);
// Domain email (separe with ; exemple : exemple.com;zici.fr;exemple.fr)
define('DOMAIN', 'exemple.fr');
//define('DOMAIN', 'exemple.com;zici.fr;exemple.fr');
// Nombre d'alias poubelle limite par email
define('ALIASLIMITBYMAIL', 30);
// PDO stucture
// Exemple pour MYSQL :
// define('DB', 'mysql:host=127.0.0.1;dbname=baseMysql');
// define('DBUSER', 'utilisateurMysql');
// define('DBPASS', 'motdepassedefou');
// Exemple pour Sqlite :
// define('DB', 'sqlite:./data/emailPoubelle.sqlite');
define('DB', 'sqlite:'.DATA.'/database.sdb');
// table prefix
define('DBTABLEPREFIX', 'ep_');
// Use cron (true/false) for life expire email (recomanded)
// If use true add in crontab :
// 0 */2 * * * /usr/bin/wget -q -t 1 -T 7200 -O /dev/null 'http://exemple.com/page.php?act=cron' >/dev/null 2>&1
define('CRON', false);
// Fichier d'alias postfix
define('FICHIERALIAS', DATA.'/virtual');
define('BIN_POSTMAP', '/usr/sbin/postmap');
define('URLPAGE', 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]);
// Email
define('EMAILTAGSUJET', '[EmailPoubelle]');
// From de l'email
define('EMAILFROM', '"NO REPLY emailPoubelle" <emailpoubelle@exemple.com>');
define('EMAILEND', 'emailPoubelle.zici.fr');
// Alisas interdit : (regex ligne par ligne) - commenter pour désactiver
define('ALIASDENY', DATA.'/aliasdeny.txt');
// Blackliste d'email : (regex ligne par ligne) - commenter pour désactiver
define('BLACKLIST', DATA.'/blacklist.txt');
// Depend pear Net/DNS2
define('CHECKMX', false);
if (CHECKMX) {
require_once('Net/DNS2.php');
// Serveur DNS pour la résolution/vérification du nom de domaine
define('NS1', 'ns1.fdn.org');
define('NS2', '8.8.8.8');
}
// A indiquer si vous utiliser les URL's rewriting
// Exemple avec un htaccess
// RewriteRule ^ep-([a-z]+)-([a-zA-Z0-9+/=]+)\.html$ switch.php?page=emailPoubelle&act=$1&value=$2 [L]
//define('URLREWRITE_START', 'http://poubelle.zici.fr/ep-');
//define('URLREWRITE_MIDDLE', '-');
//define('URLREWRITE_END', '.html');
// Désactiver
define('URLREWRITE_START', false);
define('URLREWRITE_MIDDLE', false);
define('URLREWRITE_END', false);
// check update :
// enable : in seconds
// disable : false
define('CHECKUPDATE', 86400);
// Maintenance mode
define('MAINTENANCE_MODE', false);
// No maintenance for this ip (admin ip)
define('MAINTENANCE_IP', '10.0.0.1');
// Mot de passe par défaut "admin" :
define('ADMIN_PASSWORD', 'admin');
?>

View file

@ -1,373 +0,0 @@
<?php
//-----------------------------------------------------------
// Title : Email Poubelle
// Licence : GNU GPL v3 : http://www.gnu.org/licenses/gpl.html
// Author : David Mercereau - david [aro] mercereau [.] info
// Home : http://poubelle.zici.fr
// Date : 08/2018
// Version : 2.0
// Depend : Postifx (postmap command) php-pdo, http serveur
//-----------------------------------------------------------
//////////////////
// Init & check
//////////////////
define('VERSION', '2.0');
if (DEBUG) {
error_reporting(E_ALL);
ini_set('display_errors', 'On');
echo '<div class="highlight-2">'._("Debug enabled") .'<br />';
echo print_r($_REQUEST);
echo '</div>';
}
if (!defined('DOMAIN') || !defined('DATA') || !defined('DEBUG') || !defined('FICHIERALIAS') || !defined('DB')) {
echo '<div class="highlight-1">'._("Error : the configuration file conf.php might not be included because the constants are not declared").'.</div>';
// check writable work directory
} else if (!is_writable(DATA)) {
echo '<div class="highlight-1">'._("Error : the working directory cannot be written. Please contact the admin").'</div>';
// check alias file is_writable
} else if (!is_writable(FICHIERALIAS)) {
echo '<div class="highlight-1">'._("Error : the alias file cannot be written. Please contact the admin").'</div>';
// check blacklist file is_writable
} else if (defined('BLACKLIST') && !is_readable(BLACKLIST)) {
echo '<div class="highlight-1">'._("Error : the blacklist file cannot be read. Please contact the admin").'</div>';
// check aliasdeny file is_writable
} else if (defined('ALIASDENY') && !is_readable(ALIASDENY)) {
echo '<div class="highlight-1">'._("Error : the forbidden aliases file cannot be read. Please contact the admin").'</div>';
// maintenance mod
} else if (MAINTENANCE_MODE == true && MAINTENANCE_IP != $_SERVER["REMOTE_ADDR"]) {
echo '<div class="highlight-2">'._("Service under maintenance").'</div>';
} else {
if (MAINTENANCE_MODE == true) {
echo '<div class="highlight-2">'._("Service under maintenance").'</div>';
}
// Connect DB
try {
if (preg_match('/^sqlite/', DB)) {
$dbco = new PDO(DB);
} else {
$dbco = new PDO(DB, DBUSER, DBPASS);
}
$dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch ( PDOException $e ) {
die('._("Connexion à la base ").'.$e->getMessage());
}
// Create DB if not exists
try {
// status : 0=not verified - 3=disable - 5=active
if (preg_match('/^sqlite/', DB)) {
$create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias (
id INTEGER PRIMARY KEY,
status INTEGER(1) NOT NULL,
alias CHAR(150) NOT NULL UNIQUE,
email CHAR(150) NOT NULL,
dateCreat DATETIME NOT NULL,
dateExpir DATETIME,
comment TEXT);");
} else {
$create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
status INTEGER(1) NOT NULL,
alias CHAR(150) NOT NULL UNIQUE,
email CHAR(150) NOT NULL,
dateCreat DATETIME NOT NULL,
dateExpir DATETIME,
comment TEXT);");
}
} catch ( PDOException $e ) {
echo '<div class="highlight-1">'._("Error initializing tables. Please contact the admin");
if (DEBUG) { $e->getMessage(); }
echo '</div>';
die();
}
//////////////////
// Start program
//////////////////
// get process "act" (action)
$action = isset($_GET['act']) ? $_GET['act'] : '';
switch ($action) {
case "validemail" :
$get_value = urlUnGen($_GET['value']);
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$get_value['id']."' AND status = 0")->fetchColumn() != 0) {
UpdateStatusAlias($get_value['id'], $get_value['alias_full'], 5);
echo '<div class="highlight-3">'._("Your trash email address").' <b>'.$get_value['alias_full'].'</b> '._("is now enabled").'</div>';
} else {
echo '<div class="highlight-1">'._("Error : unknown ID or already validated").'</div>';
}
break;
case "disable" :
$get_value = urlUnGen($_GET['value']);
DisableAlias($get_value['id'], $get_value['alias_full'], null);
break;
case "enable" :
$get_value = urlUnGen($_GET['value']);
EnableAlias($get_value['id'], $get_value['alias_full'], null);
break;
case "delete" :
$get_value = urlUnGen($_GET['value']);
DeleteAlias($get_value['id'], $get_value['alias_full']);
break;
case "cron" :
if (CRON) {
echo '<div class="highlight-2">'._("The scheduled task is running").'</div>';
LifeExpire();
} else {
echo '<div class="highlight-1">'._("You didn't allow the scheduled job").'</div>';
}
break;
}
// Form
if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spam
echo 'Hello you';
} else if (isset($_POST['list'])) {
$email=strtolower(StripCleanToHtml($_POST['email']));
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '<div class="highlight-1">'._("Error : email address incorrect").'</div>';
} else if (! VerifMXemail($email)) {
echo '<div class="highlight-1">'._("Error : email address incorrect").' (2)</div>';
} else if (ListeAlias($email)) {
echo '<div class="highlight-3">'._("An email has been sent to you").'</div>';
} else {
echo '<div class="highlight-1">'._("Error : no known active trash email").'</div>';
}
} else if (isset($_POST['email']) && isset($_POST['alias'])) {
$alias=strtolower(StripCleanToHtml($_POST['alias']));
$email=strtolower(StripCleanToHtml($_POST['email']));
$domain=StripCleanToHtml($_POST['domain']);
$life=$_POST['life'];
$comment=StripCleanToHtml($_POST['comment']);
$alias_full=$alias.'@'.$domain;
// Check form
if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '<div class="highlight-1">'._("Error : email address incorrect").'</div>';
} else if (! VerifMXemail($email)) {
echo '<div class="highlight-1">'._("Error : email address incorrect").' (2)</div>';
} else if (! preg_match('#^[\w.-]+$#',$alias)) {
echo '<div class="highlight-1">'._("Error : trash email address syntax incorrect").'</div>';
} else if (!domainePresent($domain)) {
echo '<div class="highlight-1">'._("Error : this domain cannot be used").'</div>';
} else if (emailIsAlias($email)) {
echo '<div class="highlight-1">'._("Error : Your email can not contain a trash domain").'</div>';
} else if (AliasDeny($alias)) {
echo '<div class="highlight-1">'._("Error : trash email address forbidden").'</div>';
} else if (BlacklistEmail($email)) {
echo '<div class="highlight-1">'._("Error : you have been blacklisted").'</div>';
// add
} elseif (isset($_POST['add'])) {
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."'")->fetchColumn() != 0) {
echo '<div class="highlight-1">'._("Error : this trash email already exists").'</div>';
} else if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() > ALIASLIMITBYMAIL) {
echo '<div class="highlight-1">'._("Error: You have reached your limit quota on this app. You can <a href=\"http://forge.zici.fr/p/emailpoubelle-php/\"> install this script </a> on a personal server if you want more quota").'.</div>';
} else {
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) {
AjouterAlias(5, $alias_full, $email, $life, $comment);
echo '<div class="highlight-3">'._("Your trash email address").'<b> '.$alias_full.' > '.$email.'</b> '._("is now enabled").'</div>';
} else {
$lastId=AjouterAlias(0, $alias_full, $email, $life, $comment);
$message= _("Confirmation of the creation of your trash email :")."\n";
$message= $alias_full.' => '.$email."\n";
$message= _("Click on the link below to validate :")."\n";
$message.= "\t * ".urlGen('validemail',$lastId,$alias_full)."\n";
$message.= "\n";
$message.= _("To delete this trash email, click on the link below :")."\n";
$message.= "\t * ".urlGen('delete',$lastId,$alias_full)."\n";
$message.= "\n";
$message.= _("After confirmation, you will be able to temporary suspend you trash email using the link below :")."\n";
$message.= "\t * ".urlGen('disable',$lastId,$alias_full)."\n";
SendEmail($email,_("Alias confirmation")." ".$alias,$message);
echo '<div class="highlight-2">'._("Your email address").' ('.$email.') '._("is unknown, a confirmation has been sent to you.").'</div>';
}
}
// delete
} else if (isset($_POST['del'])) {
if ($id = $dbco->query("SELECT id FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND alias = '".$alias_full."'")->fetchColumn()) {
$message= _("Confirmation of the removal of your trash email : ")."\n";
$message= $alias_full.' => '.$email."\n";
$message= _("Click on the link below to validate the deletion :")."\n";
$message.= "\t * ".urlGen('delete',$id,$alias_full)."\n\n";
$message.= _("If you would like to temporary suspend this trash email, you can follow the link bellow :")."\n";
$message.= "\t * ".urlGen('disable',$id,$alias_full)."\n";
SendEmail($email,_("Alias deletion")." ".$alias,$message);
echo '<div class="highlight-2">'._("An email has been sent to you").'.</div>';
} else {
echo '<div class="highlight-1">'._("Error : unknown trash email").'</div>';
}
// disable
} else if (isset($_POST['disable'])) {
DisableAlias(null, $alias_full, $email);
// enable
} else if (isset($_POST['enable'])) {
EnableAlias(null, $alias_full, $email);
}
// memory email
if (isset($_POST['memory'])) {
setcookie ("email", StripCleanToHtml($email), time() + 31536000);
} else if (isset($_COOKIE['email'])) {
unset($_COOKIE['email']);
}
}
//////////////////
// Printing form
//////////////////
?>
<?php languesSwitch(); ?>
<form action="<?= URLPAGE?>" method="post">
<div id="onglet" style="display: none;">
<input type="button" value=<?php echo _("Add") ?> id="onglet-add" onClick="ongletChange(this.id)" />
<input type="button" id="onglet-list" value=<?php echo _("List") ?> onClick="ongletChange(this.id)" />
<input type="button" id="onglet-del" value=<?php echo _("Delete") ?> onClick="ongletChange(this.id)" />
<input type="button" id="onglet-dis" value=<?php echo _("Suspend") ?> onClick="ongletChange(this.id)" />
<input type="button" id="onglet-en" value=<?php echo _("Resume") ?> onClick="ongletChange(this.id)" />
<input type="hidden" name="onglet-actif" id="onglet-actif" value="onglet-add" />
</div>
<div id="form-email">
<label for="email"><?php echo _("Your real email address") ?> : </label>
<input type="text" name="email" <?php if (isset($_COOKIE['email'])) { echo 'value="'.$_COOKIE['email'].'"'; } ?> id="input-email" size="24" border="0" onkeyup="printForm()" onchange="printForm()" />
<input class="button2" type="submit" name="list" id="button-list" value="Lister" />
<input type="checkbox" name="memory" id="check-memory" <?php if (isset($_COOKIE['email'])) { echo 'checked="checked" '; } ?>/> <?php echo _("Remember")?>
</div>
<div id="form-alias">
<label for="alias"><?php echo _("Name of your trash email address")?> : </label>
<input type="text" name="alias" id="input-alias" size="24" border="0" onkeyup="printForm()" onchange="printForm()" placeholder=<?php echo _("Ex : john_shop") ?>/> @<?php
$domains = explode(';', DOMAIN);
if (count($domains) == 1) {
echo DOMAIN.'<input type="hidden" value="'.DOMAIN.'" name="domain" id="input-domain" />';
} else {
echo '<select name="domain" id="input-domain">';
foreach ($domains as $one_domain) {
echo '<option value="'.$one_domain.'">'.$one_domain.'</option>';
}
echo '</select>';
}
?>
<select name="life" id="input-life">
<option value="0"><?php echo _("Unlimited time")?></option>
<option value="7200"><?php echo _("2 hours")?></option>
<option value="21600"><?php echo _("6 hours")?></option>
<option value="86400"><?php echo _("1 day")?></option>
<option value="604800"><?php echo _("7 days")?></option>
<option value="1296000"><?php echo _("15 days")?></option>
<option value="2592000"><?php echo _("30 days")?></option>
<option value="7776000"><?php echo _("90 days")?></option>
</select>
</div>
<div id="form-comment">
<label for="comment"><?php echo _("Comment for this trash email (for your to remember)")?></label>
<input type="text" name="comment" size="54" placeholder=<?php echo _("Ex : Inscription sur zici.fr") ?>/>
</div>
<div id="form-submit">
<input class="button" type="submit" id="button-add" name="add" value=<?php echo _("Activate") ?> />
<input class="button" type="submit" id="button-del" name="del" value=<?php echo _("Delete") ?> />
<input class="button" type="submit" id="button-enable" name="enable" value=<?php echo _("Suspend") ?> />
<input class="button" type="submit" id="button-disable" name="disable" value=<?php echo _("Resume") ?> />
</div>
<div id="lePecheur" style="display: none;">
<input name="username" type="text" />
</div>
</form>
<script type="text/javascript">
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
function printForm() {
if (validateEmail(document.getElementById('input-email').value) && document.getElementById('input-alias').value != '') {
document.getElementById('input-alias').disabled = false;
document.getElementById('input-domain').disabled = false;
document.getElementById('button-list').disabled = false;
document.getElementById('button-add').disabled = false;
document.getElementById('button-disable').disabled = false;
document.getElementById('button-enable').disabled = false;
document.getElementById('button-del').disabled = false;
document.getElementById('input-life').disabled = false;
if (document.getElementById('onglet-actif').value == 'onglet-add') {
document.getElementById('form-comment').style.display = "block" ;
}
} else if (validateEmail(document.getElementById('input-email').value)) {
document.getElementById('input-alias').disabled = false;
document.getElementById('input-domain').disabled = false;
document.getElementById('button-list').disabled = false;
document.getElementById('input-life').disabled = false;
document.getElementById('form-comment').style.display = "display" ;
document.getElementById('button-add').disabled = true;
document.getElementById('button-disable').disabled = true;
document.getElementById('button-enable').disabled = true;
document.getElementById('button-del').disabled = true;
document.getElementById('input-life').disabled = true;
document.getElementById('form-comment').style.display = "none" ;
} else {
document.getElementById('input-alias').disabled = true;
document.getElementById('input-domain').disabled = true;
document.getElementById('button-list').disabled = true;
document.getElementById('button-add').disabled = true;
document.getElementById('button-disable').disabled = true;
document.getElementById('button-enable').disabled = true;
document.getElementById('button-del').disabled = true;
document.getElementById('input-life').disabled = true;
document.getElementById('form-comment').style.display = "none" ;
}
}
function ongletPrint() {
var ongletActif = document.getElementById('onglet-actif').value;
document.getElementById('onglet-add').className = "close" ;
document.getElementById('onglet-del').className = "close" ;
document.getElementById('onglet-list').className = "close" ;
document.getElementById('onglet-en').className = "close" ;
document.getElementById('onglet-dis').className = "close" ;
document.getElementById(ongletActif).className = "open" ;
document.getElementById('input-life').style.display = "none" ;
document.getElementById('form-alias').style.display = "inline-block" ;
document.getElementById('button-add').style.display = "none" ;
document.getElementById('button-del').style.display = "none" ;
document.getElementById('button-list').style.display = "none" ;
document.getElementById('button-disable').style.display = "none" ;
document.getElementById('button-enable').style.display = "none" ;
if (ongletActif == 'onglet-add') {
document.getElementById('button-add').style.display = "inline-block" ;
document.getElementById('input-life').style.display = "inline-block" ;
} else if (ongletActif == 'onglet-del') {
document.getElementById('button-del').style.display = "inline-block" ;
} else if (ongletActif == 'onglet-en') {
document.getElementById('button-enable').style.display = "inline-block" ;
} else if (ongletActif == 'onglet-dis') {
document.getElementById('button-disable').style.display = "inline-block" ;
} else if (ongletActif == 'onglet-list') {
document.getElementById('button-list').style.display = "inline-block" ;
document.getElementById('form-alias').style.display = "none" ;
}
}
function ongletChange(ongletValue) {
document.getElementById('onglet-actif').value = ongletValue;
ongletPrint();
}
document.getElementById('onglet').style.display = "block" ;
ongletPrint();
printForm();
</script>
<p><?php echo _("Version")?> <?= VERSION ?> - <?php echo _("Created by David Mercereau under licence GNU GPL v3")?></p>
<p><?php echo _("Download and use this script on the project website")?> <a target="_blank" href="https://framagit.org/kepon/emailPoubellePhp/">emailPoubelle.php</a></p>
<?php
// execute lifeExpir if isn't in crontab
if (!CRON) { LifeExpire(); }
// Close connexion DB
$dbco = null;
// checkupdate
echo CheckUpdate();
} // end maintenance mod
?>

View file

@ -1,174 +0,0 @@
<?php
//-----------------------------------------------------------
// Title : Email Poubelle
// Licence : GNU GPL v3 : http://www.gnu.org/licenses/gpl.html
// Author : David Mercereau - david [aro] mercereau [.] info
// Home : http://poubelle.zici.fr
// Date : 08/2013
// Version : 1.0
// Depend : Postifx (postmap command) php-pdo
//-----------------------------------------------------------
session_start();
$auth=false;
if (isset($_POST['adminPassword'])) {
$_SESSION['adminPasswordHash'] = password_hash($_POST['adminPassword'], PASSWORD_DEFAULT);
}
if (isset($_SESSION['adminPasswordHash'])) {
if (password_verify(ADMIN_PASSWORD, $_SESSION['adminPasswordHash'])) {
$auth=true;
} else {
$auth=false;
}
}
if (isset($_POST['adminPassword']) && $auth==false) {
echo '<div class="highlight-1">'._('Error: Incorrect password').'</div>';
}
if (empty($_SESSION['adminPasswordHash']) || $auth == false) {
echo '<form action="#" method="post">
<label>'.('The admin password').' : </label>
<input type="password" name="adminPassword" />
<input type="submit" />
</form>';
}
// Test connexion, si c'est ok :
if ($auth==true) {
languesSwitch();
// Connect DB
try {
if (preg_match('/^sqlite/', DB)) {
$dbco = new PDO(DB);
} else {
$dbco = new PDO(DB, DBUSER, DBPASS);
}
$dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch ( PDOException $e ) {
die('DB connect error : '.$e->getMessage());
}
if (isset($_POST['action'])) {
if ($_POST['action'] == 'DeleteEmail' && isset($_POST['email'])) {
DeleteEmail($_POST['email']);
}
if ($_POST['action'] == 'AddBlacklistEmail' && isset($_POST['email'])) {
AddBlacklistEmail($_POST['email']);
}
if ($_POST['action'] == 'DeleteAlias' && isset($_POST['id']) && isset($_POST['alias'])) {
DeleteAlias($_POST['id'], $_POST['alias']);
}
if ($_POST['action'] == 'DisableAlias' && isset($_POST['id']) && isset($_POST['alias'])) {
DisableAlias($_POST['id'], $_POST['alias'], $_POST['email']);
}
}
?>
<script>
function confirmation(idForm, idAction, action) {
if (confirm(action + " : êtes-vous sûr ?")) {
document.getElementById(idAction).value = action;
document.getElementById(idForm).submit();
}
}
</script>
<?php
echo '<p>'._('Statistics').' : </p>';
echo '<ul>';
echo '<li>'._('Total alias').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias")->fetchColumn().'</li>';
echo '<li>'._('Active alias').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 5")->fetchColumn().'</li>';
echo '<li>'._('Alias suspended').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 3")->fetchColumn().'</li>';
echo '<li>'._('Alias not verified').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 0")->fetchColumn().'</li>';
//echo '<li>Email différent : '.$dbco->query("SELECT DISTINCT count(email) FROM ".DBTABLEPREFIX."alias WHERE status = 5")->fetchColumn().'</li>';
echo '</ul>';
echo '<h3 id="user">User info</h3>';
echo '<form action="#" method="post">
<label>'._('User email').' : </label>
<input type="text" value="'.$_POST['email'].'" name="email" />
<input type="submit" />
</form>';
if (isset($_POST['email'])) {
$requestUtilisateur = $dbco->query("SELECT * FROM ".DBTABLEPREFIX."alias WHERE email='".$_POST['email']."' ORDER BY dateCreat DESC")->fetchAll() ;
echo '<p>User '.$_POST['email'].' : ';
if (count($requestUtilisateur) != 0) {
echo '<img onclick="confirmation(\'uniqemail_'.$_POST['email'].'\', \'uniqaction_'.$_POST['email'].'\', \'DeleteEmail\')" src="'.URLINC.'/sup.png" alt="sup" />';
if (!BlacklistEmail($_POST['email'])) {
echo '<img onclick="confirmation(\'uniqemail_'.$_POST['email'].'\', \'uniqaction_'.$_POST['email'].'\', \'AddBlacklistEmail\')" src="'.URLINC.'/blk.png" alt="blk" />';
}
} else {
echo 'Not found !';
}
echo '<form style="display: none" method="post" action="#" id="uniqemail_'.$_POST['email'].'">
<input type="hidden" name="email" value="'.$_POST['email'].'" />
<input type="hidden" id="uniqaction_'.$_POST['email'].'" name="action" value="" />
</form>';
echo '</p>';
if (count($requestUtilisateur) != 0) {
echo '<table>';
echo '<tr>
<th>Status</th>
<th>Alias</th>
<th>DateCreat</th>
<th>DateExpir</th>
<th>Comment</th>
</tr>';
foreach ($requestUtilisateur as $utilisateur) {
echo '<tr>
<td><img src="'.URLINC.'/status'.$utilisateur['status'].'.png" alt="'.$utilisateur['status'].'" /></td>
<td>'.$utilisateur['alias'].'
<br /><form style="display: none" method="post" action="#" id="alias'.$utilisateur['id'].'">
<input type="hidden" name="id" value="'.$utilisateur['id'].'" />
<input type="hidden" name="alias" value="'.$utilisateur['alias'].'" />
<input type="hidden" name="email" value="'.$_POST['email'].'" />
<input type="hidden" id="action'.$utilisateur['id'].'" name="action" value="" />
</form>
<img onclick="confirmation(\'alias'.$utilisateur['id'].'\', \'action'.$utilisateur['id'].'\', \'DeleteAlias\')" src="'.URLINC.'/sup.png" alt="sup" />';
if ($utilisateur['status'] == 5) {
echo '<img onclick="confirmation(\'alias'.$utilisateur['id'].'\', \'action'.$utilisateur['id'].'\', \'DisableAlias\')" src="'.URLINC.'/status3.png" alt="Suspendre" />';
}
echo '</td>
<td>'.$utilisateur['dateCreat'].'</td>
<td>'.$utilisateur['dateExpir'].'</td>
<td>'.$utilisateur['comment'].'</td>
</tr>';
}
echo '</table>';
}
}
echo '<h3 id="top">Top user </h3>';
$recordActifs = $dbco->query("SELECT email, count(alias) calias FROM ".DBTABLEPREFIX."alias WHERE status=5 GROUP BY email ORDER BY calias DESC LIMIT 40")->fetchAll();
echo '<table>';
echo '<tr>
<th>Email</th>
<th style="text-align: center">Number of alias</th>
<th style="text-align: center">Action</th>
</tr>';
foreach ($recordActifs as $recordActif) {
echo '<tr>
<td>';
if (BlacklistEmail($recordActif['email'])) {
echo '<img src="'.URLINC.'/blk.png" alt="blk" /> ';
}
echo $recordActif['email'].'</td>
<td style="text-align: center">'.$recordActif['calias'].'</td>
<td style="text-align: center">
<form style="display: none" method="post" action="#" id="email_'.$recordActif['email'].'">
<input type="hidden" name="email" value="'.$recordActif['email'].'" />
<input type="hidden" id="action_'.$recordActif['email'].'" name="action" value="" />
</form>
<img onclick="confirmation(\'email_'.$recordActif['email'].'\', \'action_'.$recordActif['email'].'\', \'DeleteEmail\')" src="'.URLINC.'/sup.png" alt="sup" />';
if (!BlacklistEmail($recordActif['email'])) {
echo '<img onclick="confirmation(\'email_'.$recordActif['email'].'\', \'action_'.$recordActif['email'].'\', \'AddBlacklistEmail\')" src="'.URLINC.'/blk.png" alt="blk" />';
}
echo '
</td>
</tr>';
}
echo '</table>';
}
?>

Binary file not shown.

View file

@ -1,369 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-16 12:45+0100\n"
"PO-Revision-Date: 2018-11-16 13:02+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-msgstr-Bugs-To: \n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: emailPoubelleAdmin.php:27
msgid "Error: Incorrect password"
msgstr "Erreur : mot de passe incorrect"
#: emailPoubelleAdmin.php:75
msgid "Statistics"
msgstr "Statistique"
#: emailPoubelleAdmin.php:77
msgid "Total alias"
msgstr "Alias total"
#: emailPoubelleAdmin.php:78
msgid "Active alias"
msgstr "Alias actif"
#: emailPoubelleAdmin.php:79
msgid "Alias suspended"
msgstr "Alias suspendu"
#: emailPoubelleAdmin.php:80
msgid "Alias not verified"
msgstr "Alias non vérifié"
#: emailPoubelleAdmin.php:86
msgid "User email"
msgstr "Email de l'utilisateur"
#: emailPoubelle.php:22
msgid "Debug enabled"
msgstr "Debug activé"
#: emailPoubelle.php:28
msgid "Error : the configuration file conf.php might not be included because the constants are not declared"
msgstr "Erreur : Il ne semble pas que le fichier de configuration conf.php soit inclue car les constantes ne sont pas présentes"
#: emailPoubelle.php:31
msgid "Error : the working directory cannot be written. Please contact the admin"
msgstr "Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter l\\'administrateur"
#: emailPoubelle.php:34
msgid "Error : the alias file cannot be written. Please contact the admin"
msgstr "Erreur : le fichier d\\'alias ne peut pas être écrit. Merci de contacter l\\'administrateur"
#: emailPoubelle.php:37
msgid "Error : the blacklist file cannot be read. Please contact the admin"
msgstr "Erreur : un fichier de blacklist est renseigné mais n\\'est pas lisible. Merci de contacter l\\'administrateur"
#: emailPoubelle.php:40
msgid "Error : the forbidden aliases file cannot be read. Please contact the admin"
msgstr "Erreur : un fichier d\\'alias interdit est renseigné mais n\\'est pas lisible. Merci de contacter l\\'administrateur"
#: emailPoubelle.php:43 emailPoubelle.php:47
msgid "Service under maintenance"
msgstr "Le service est en maintenance"
#: emailPoubelle.php:85
msgid "Error initializing tables. Please contact the admin"
msgstr "Erreur à l\\'initialisation des tables. Merci de contacter l'administrateur"
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "Your trash email address"
msgstr "Votre email poubelle"
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "is now enabled"
msgstr "est maintenant actif"
#: emailPoubelle.php:104
msgid "Error : unknown ID or already validated"
msgstr "Erreur : ID introuvable ou déjà validé"
#: emailPoubelle.php:121
msgid "The scheduled task is running"
msgstr "La tâche planifié est lancé"
#: emailPoubelle.php:124
msgid "You didn't allow the scheduled job"
msgstr "Vous n\\'avez pas autorisé le lancement par tâche planifié"
#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
#: emailPoubelle.php:153
msgid "Error : email address incorrect"
msgstr "Erreur : Adresse email incorrect"
#: emailPoubelle.php:138 emailPoubelle.php:200
msgid "An email has been sent to you"
msgstr "Un email vient de vous être envoyé"
#: emailPoubelle.php:140
msgid "Error : no known active trash email"
msgstr "Erreur : aucun email actif connu"
#: emailPoubelle.php:155
msgid "Error : trash email address syntax incorrect"
msgstr "Erreur : Format de l\\'email poubelle incorrect"
#: emailPoubelle.php:157
msgid "Error : this domain cannot be used"
msgstr "Erreur : ce domain n\\'est pas pris en charge"
#: emailPoubelle.php:159
msgid "Error : Your email can not contain a trash domain"
msgstr "Erreur : votre email ne peut pas être un email poubelle"
#: emailPoubelle.php:161
msgid "Error : trash email address forbidden"
msgstr "Erreur : email poubelle interdit"
#: emailPoubelle.php:163
msgid "Error : you have been blacklisted"
msgstr "Erreur : vous avez été blacklisté sur ce service"
#: emailPoubelle.php:167
msgid "Error : this trash email already exists"
msgstr "Erreur : cet email poubelle est déjà utilisé"
#: emailPoubelle.php:169
msgid "Error: You have reached your limit quota on this app. You can <a href=\"http://forge.zici.fr/p/emailpoubelle-php/\"> install this script </a> on a personal server if you want more quota"
msgstr "Erreur : Vous avez atteind votre quota limite d'alias sur cette application. Vous pouvez <a href=\"http://forge.zici.fr/p/emailpoubelle-php/\">installer ce script</a> sur un serveur personnel si vous voulez plus de quota"
#: emailPoubelle.php:176
msgid "Confirmation of the creation of your trash email :"
msgstr "Confirmation de la création de votre email poubelle :"
#: emailPoubelle.php:178
msgid "Click on the link below to validate :"
msgstr "Cliquer sur le lien ci-dessous pour confirmer :"
#: emailPoubelle.php:181
msgid "To delete this trash email, click on the link below :"
msgstr "Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
#: emailPoubelle.php:184
msgid "After confirmation, you will be able to temporary suspend you trash email using the link below :"
msgstr "Après confirmation, vous pourrez suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
#: emailPoubelle.php:186
msgid "Alias confirmation"
msgstr "Confirmation alias"
#: emailPoubelle.php:187
msgid "Your email address"
msgstr "Votre email"
#: emailPoubelle.php:187
msgid "is unknown, a confirmation has been sent to you."
msgstr "nous étant inconnu, une confirmation vous a été envoyé par email."
#: emailPoubelle.php:193
msgid "Confirmation of the removal of your trash email : "
msgstr "Confirmation de la suppression de votre email poubelle "
#: emailPoubelle.php:195
msgid "Click on the link below to validate the deletion :"
msgstr "Cliquer sur le lien ci-dessous pour confirmer la suppression :"
#: emailPoubelle.php:197
msgid "If you would like to temporary suspend this trash email, you can follow the link bellow :"
msgstr "Sinon pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
#: emailPoubelle.php:199
msgid "Alias deletion"
msgstr "Suppression de l'alias"
#: emailPoubelle.php:202
msgid "Error : unknown trash email"
msgstr "Erreur : impossible de trouver cet email poubelle"
#: emailPoubelle.php:230
msgid "Add"
msgstr "Ajouter"
#: emailPoubelle.php:231
msgid "List"
msgstr "Lister"
#: emailPoubelle.php:232 emailPoubelle.php:274
msgid "Delete"
msgstr "Supprimer"
#: emailPoubelle.php:233 emailPoubelle.php:275
msgid "Suspend"
msgstr "Suspendre"
#: emailPoubelle.php:234 emailPoubelle.php:276
msgid "Resume"
msgstr "Reprendre"
#: emailPoubelle.php:238
msgid "Your real email address"
msgstr "Votre email réel"
#: emailPoubelle.php:241
msgid "Remember"
msgstr "Mémoriser"
#: emailPoubelle.php:244
msgid "Name of your trash email address"
msgstr "Nom de l'email poubelle"
#: emailPoubelle.php:245
msgid "Ex : john_shop"
msgstr "Ex : jean-petiteannonce"
#: emailPoubelle.php:258
msgid "Unlimited time"
msgstr "Illimité"
#: emailPoubelle.php:259
msgid "2 hours"
msgstr "2 heure"
#: emailPoubelle.php:260
msgid "6 hours"
msgstr "6 heures"
#: emailPoubelle.php:261
msgid "1 day"
msgstr "1 jour"
#: emailPoubelle.php:262
msgid "7 days"
msgstr "7 jours"
#: emailPoubelle.php:263
msgid "15 days"
msgstr "15 jours"
#: emailPoubelle.php:264
msgid "30 days"
msgstr "30 jours"
#: emailPoubelle.php:265
msgid "90 days"
msgstr "90 jours"
#: emailPoubelle.php:269
msgid "Comment for this trash email (for your to remember)"
msgstr "Un commentaire pour l'ajout ? (pour votre mémoire)"
#: emailPoubelle.php:270
msgid "Ex : Inscription sur zici.fr"
msgstr "Ex : Inscription sur zici.fr"
#: emailPoubelle.php:273
msgid "Activate"
msgstr "Activer"
#: emailPoubelle.php:362
msgid "Version"
msgstr "Version"
#: emailPoubelle.php:362
msgid "Created by David Mercereau under licence GNU GPL v3"
msgstr "Créé par David Mercereau sous licence GNU GPL v3"
#: emailPoubelle.php:363
msgid "Download and use this script on the project website"
msgstr "Télécharger et utiliser ce script sur le site du projet"
#: ep_function.php:93
msgid "has been deleted with all these aliases"
msgstr "a été supprimé avec tout ces alias"
#: ep_function.php:99
msgid "Erreur"
msgstr "Erreur"
#: ep_function.php:99
msgid "has not been deleted"
msgstr "n'a pas été supprimé"
#: ep_function.php:120
msgid "has been deleted"
msgstr "a bien été supprimé"
#: ep_function.php:126
msgid "Error: email trash unknown"
msgstr "Erreur : email poubelle inconnu"
#: ep_function.php:145 ep_function.php:173
msgid "Error: Can not find this trash email"
msgstr "Erreur : impossible de trouver cet email poubelle"
#: ep_function.php:148 ep_function.php:150 ep_function.php:152
#: ep_function.php:176 ep_function.php:178 ep_function.php:180
msgid "The reception on"
msgstr "La réception sur"
#: ep_function.php:148
msgid "is active again"
msgstr "est maintenant activé"
#: ep_function.php:150
msgid "is already active"
msgstr "est déjà activé"
#: ep_function.php:152
msgid "has not been confirmed by email"
msgstr "n\\'à pas été confirmé par email"
#: ep_function.php:154 ep_function.php:182
msgid "Error: unknown status"
msgstr "Erreur : statu inconnu"
#: ep_function.php:176
msgid "is now suspended"
msgstr "est maintenant suspendu"
#: ep_function.php:178
msgid "is already suspended"
msgstr "est déjà suspendu"
#: ep_function.php:180
msgid "can not be suspended because it has not been activated yet"
msgstr "ne peut pas être suspendu car il n'a pas encore été activé"
#: ep_function.php:254
msgid "List trash email activate"
msgstr "Liste de vos email poubelles actif"
#: ep_function.php:257
msgid "List trash email disable"
msgstr "Liste de vos email poubelles désactivé"
#: ep_function.php:259
msgid "Create "
msgstr "Créer le "
#: ep_function.php:261
msgid "and expires on"
msgstr "an expire le"
#: ep_function.php:265
msgid "Comment :"
msgstr "Commentaire :"
#: ep_function.php:268
msgid "Disable :"
msgstr "Désactivé :"
#: ep_function.php:271
msgid "Activate :"
msgstr "Activé :"
#: ep_function.php:274
msgid "Delete :"
msgstr "Supprimé :"
#: ep_function.php:280
msgid "List trash email"
msgstr "Liste email poubelle"

View file

@ -1,312 +0,0 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2018-11-16 12:57+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr_FR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Report-msgstr-Bugs-To: \n"
"X-Generator: Poedit 2.0.6\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"POT-Creation-Date: \n"
msgid "1 hours"
msgstr "1 hour"
msgid "15 hours"
msgstr "15 hours"
msgid "2 hours"
msgstr "2 heure"
msgid "30 hours"
msgstr "30 hours"
msgid "6 hours"
msgstr "6 heures"
msgid "7 hours"
msgstr "7 hours"
msgid "90 hours"
msgstr "90 hours"
msgid "Activate"
msgstr "Activer"
msgid "Activate :"
msgstr "Activé : "
msgid "Active alias"
msgstr "Alias actif"
msgid "Add"
msgstr "Ajouter"
msgid ""
"After confirmation, you will be able to temporary suspend you trash email "
"using the link below :"
msgstr ""
"Après confirmation, vous pourrez suspendre temporairement cet email poubelle "
"vous pouvez vous rendre sur le lien ci-dessous : "
msgid "Alias confirmation"
msgstr "Confirmation alias "
msgid "Alias deletion"
msgstr "Suppression de l\\'alias "
msgid "Alias not verified"
msgstr "Alias non vérifié"
msgid "Alias suspended"
msgstr "Alias suspendu"
msgid "An email has been sent to you"
msgstr "Un email vient de vous être envoyé"
msgid "Click on the link below to validate :"
msgstr "Cliquer sur le lien ci-dessous pour confirmer"
msgid "Click on the link below to validate the deletion :"
msgstr "Cliquer sur le lien ci-dessous pour confirmer la suppression : "
msgid "Comment :"
msgstr "Commentaire"
msgid "Comment for this trash email (for your to remember)"
msgstr "Un commentaire pour l'ajout ? (pour votre mémoire)"
msgid "Confirmation of the creation of your trash email :"
msgstr "Confirmation de la création de votre email poubelle"
msgid "Confirmation of the removal of your trash email : "
msgstr "Confirmation de la suppression de votre email poubelle"
msgid "Created by David Mercereau under licence GNU GPL v3"
msgstr "Créé par David Mercereau sous licence GNU GPL v3"
msgid "Créé le"
msgstr "Crée le"
msgid "Debug enabled"
msgstr "Debug activé"
msgid "Delete"
msgstr "Supprimer"
msgid "Delete :"
msgstr "Supprimé : "
msgid "Disable :"
msgstr "Désactivé : "
msgid "Download and use this script on the project website"
msgstr "Télécharger et utiliser ce script sur le site du projet"
msgid "Erreur"
msgstr "Erreur"
msgid "Error : Your email can not contain a trash domain"
msgstr "Erreur : votre email ne peut pas être un email poubelle"
msgid "Error : email address incorrect"
msgstr "Erreur : Adresse email incorrect"
msgid "Error : no known active trash email"
msgstr "Erreur : aucun email actif connu"
msgid "Error : the alias file cannot be written. Please contact the admin"
msgstr ""
"Erreur : le fichier d\\'alias ne peut pas être écrit. Merci de contacter l"
"\\'administrateur"
msgid "Error : the blacklist file cannot be read. Please contact the admin"
msgstr ""
"Erreur : un fichier de blacklist est renseigné mais n\\'est pas lisible. "
"Merci de contacter l\\'administrateur"
msgid ""
"Error : the configuration file conf.php might not be included because the "
"constants are not declared"
msgstr ""
"Erreur : Il ne semble pas que le fichier de configuration conf.php soit "
"inclue car les constantes ne sont pas présentes"
msgid ""
"Error : the forbidden aliases file cannot be read. Please contact the admin"
msgstr ""
"Erreur : un fichier d\\'alias interdit est renseigné mais n\\'est pas "
"lisible. Merci de contacter l\\'administrateur"
msgid ""
"Error : the working directory cannot be written. Please contact the admin"
msgstr ""
"Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter "
"l\\'administrateur"
msgid "Error : this domain cannot be used"
msgstr "Erreur : ce domain n\\'est pas pris en charge"
msgid "Error : this trash email already exists"
msgstr "Erreur : cet email poubelle est déjà utilisé"
msgid "Error : trash email address forbidden"
msgstr "Erreur : email poubelle interdit"
msgid "Error : trash email address syntax incorrect"
msgstr "Erreur : Format de l\\'email poubelle incorrect"
msgid "Error : unknown ID or already validated"
msgstr "Erreur : ID introuvable ou déjà validé"
msgid "Error : unknown trash email"
msgstr "Erreur : impossible de trouver cet email poubelle"
msgid "Error : you have been blacklisted"
msgstr "Erreur : vous avez été blacklisté sur ce service"
msgid "Error initializing tables. Please contact the admin"
msgstr ""
"Erreur à l\\'initialisation des tables. Merci de contacter l"
"\\'administrateur "
msgid "Error: Can not find this trash email"
msgstr "Erreur : impossible de trouver cet email poubelle"
msgid "Error: Incorrect password"
msgstr "Erreur : mot de passe incorrect"
msgid ""
"Error: You have reached your limit quota on this app. You can <a href="
"\"http://forge.zici.fr/p/emailpoubelle-php/\"> install this script </a> on a "
"personal server if you want more quota"
msgstr ""
"Erreur : Vous avez atteind votre quota limite d'alias sur cette "
"application. Vous pouvez <a href=\"http://forge.zici.fr/p/emailpoubelle-php/"
"\">installer ce script</a> sur un serveur personnel si vous voulez plus de "
"quota."
msgid "Error: email trash unknown"
msgstr "Erreur : email poubelle inconnu"
msgid "Error: unknown status"
msgstr "Erreur : statu inconnu"
msgid "Ex : Inscription sur zici.fr"
msgstr "Ex : Inscription sur zici.fr"
msgid "Ex : john_shop"
msgstr "Ex : jean-petiteannonce"
msgid ""
"If you would like to temporary suspend this trash email, you can follow the "
"link bellow :"
msgstr ""
"Sinon pour suspendre temporairement cet email poubelle vous pouvez vous "
"rendre sur le lien ci-dessous : "
msgid "List"
msgstr "Lister"
msgid "List trash email"
msgstr "Liste email poubelle"
msgid "List trash email activate"
msgstr "Liste de vos email poubelles actif"
msgid "List trash email disable"
msgstr "Liste de vos email poubelles désactivé"
msgid "Name of your trash email address"
msgstr "Nom de l'email poubelle"
msgid "Remember"
msgstr "Mémoriser"
msgid "Resume"
msgstr "Reprendre"
msgid "Service under maintenance"
msgstr "Le service est en maintenance"
msgid "Statistics"
msgstr "Statistique"
msgid "Suspend"
msgstr "Suspendre"
msgid "The reception on"
msgstr "La réception sur"
msgid "The scheduled task is running"
msgstr "La tâche planifié est lancé"
msgid "To delete this trash email, click on the link below :"
msgstr ""
"Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-"
"dessous :"
msgid "Total alias"
msgstr "Alias total"
msgid "Unlimited time"
msgstr "Illimité"
msgid "User email"
msgstr "Email de l'utilisateur"
msgid "Version"
msgstr "Version"
msgid "You didn't allow the scheduled job"
msgstr "Vous n\\'avez pas autorisé le lancement par tâche planifié"
msgid "Your email address"
msgstr "Votre email "
msgid "Your real email address"
msgstr "Votre email réel"
msgid "Your trash email address"
msgstr "Votre email poubelle"
msgid "can not be suspended because it has not been activated yet"
msgstr "ne peut pas être suspendu car il n'a pas encore été activé"
msgid "et expire le"
msgstr "et expire le"
msgid "has been deleted"
msgstr "a bien été supprimé"
msgid "has been deleted with all these aliases"
msgstr "a été supprimé avec tout ces alias"
msgid "has not been confirmed by email"
msgstr "n\\'à pas été confirmé par email"
msgid "has not been deleted"
msgstr "n'a pas été supprimé"
msgid "is active again"
msgstr "est maintenant activé"
msgid "is already active"
msgstr "est déjà activé"
msgid "is already suspended"
msgstr "Est déjà suspendu"
msgid "is now enabled"
msgstr "est maintenant actif"
msgid "is now suspended"
msgstr "Est maintenant suspendu"
msgid "is unknown, a confirmation has been sent to you."
msgstr "nous étant inconnu, une confirmation vous a été envoyé par email."

Binary file not shown.

View file

@ -1,399 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-16 12:45+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: it_IT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: emailPoubelleAdmin.php:27
msgid "Error: Incorrect password"
msgstr "Errore : Password è errata"
#: emailPoubelleAdmin.php:75
msgid "Statistics"
msgstr "Statistica"
#: emailPoubelleAdmin.php:77
msgid "Total alias"
msgstr "Alias Total"
#: emailPoubelleAdmin.php:78
msgid "Active alias"
msgstr "Alias attivi"
#: emailPoubelleAdmin.php:79
msgid "Alias suspended"
msgstr "Alias Sospesi"
#: emailPoubelleAdmin.php:80
msgid "Alias not verified"
msgstr "Alias non verificati"
#: emailPoubelleAdmin.php:86
msgid "User email"
msgstr "Email dell'utente"
#: emailPoubelle.php:22
msgid "Debug enabled"
msgstr "Debug abilitato"
#: emailPoubelle.php:28
msgid ""
"Error : the configuration file conf.php might not be included because the "
"constants are not declared"
msgstr ""
"Errore : Il file di configurazione conf.php forse non è incluso "
" perché i constanti non sono dichiarate"
#: emailPoubelle.php:31
msgid ""
"Error : the working directory cannot be written. Please contact the admin"
msgstr ""
"Errore : il directory corrente non puo essere modificato. "
"Contatta l'amministratore per favore."
#: emailPoubelle.php:34
msgid "Error : the alias file cannot be written. Please contact the admin"
msgstr "Errore : il alias file non puo essere modificato. "
"Contatta l'amministratore per favore."
#: emailPoubelle.php:37
msgid "Error : the blacklist file cannot be read. Please contact the admin"
msgstr "Errore : il file della lista nera non puo essere modificato. "
"Contatta l'amministratore per favore."
#: emailPoubelle.php:40
msgid ""
"Error : the forbidden aliases file cannot be read. Please contact the admin"
msgstr ""
"Errore : Il proibito alias file non puo essere modificato."
"Contatta l'amministratore per favore."
#: emailPoubelle.php:43 emailPoubelle.php:47
msgid "Service under maintenance"
msgstr "Servizio in manutenzione"
#: emailPoubelle.php:85
msgid "Error initializing tables. Please contact the admin"
msgstr "Errore per inizializzare le tabelle. Per favore contatta "
"l'amministratore"
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "Your trash email address"
msgstr "Il tuo email rifiuti indirizzo"
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "is now enabled"
msgstr "è adesso attivo"
#: emailPoubelle.php:104
msgid "Error : unknown ID or already validated"
msgstr "Errore : ID non è conosciuto o già validato"
#: emailPoubelle.php:121
msgid "The scheduled task is running"
msgstr "L'attività pianificate è in esecuzione "
#: emailPoubelle.php:124
msgid "You didn't allow the scheduled job"
msgstr "L'attività pianificate non è autorizata"
#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
#: emailPoubelle.php:153
msgid "Error : email address incorrect"
msgstr "Errore : Indirizzo email errato"
#: emailPoubelle.php:138 emailPoubelle.php:200
msgid "An email has been sent to you"
msgstr "Ti è stata inviata un'email"
#: emailPoubelle.php:140
msgid "Error : no known active trash email"
msgstr "Errore : Nessun'email rifiuti attiva conosciuta"
#: emailPoubelle.php:155
msgid "Error : trash email address syntax incorrect"
msgstr "Errore : La sintassi dell'indorizzo email rifiuti è errata"
#: emailPoubelle.php:157
msgid "Error : this domain cannot be used"
msgstr "Errore : Il dominio non puo essere utilizzato"
#: emailPoubelle.php:159
msgid "Error : Your email can not contain a trash domain"
msgstr "Errore : La tua email non puo contenare un dominio rifiuti"
#: emailPoubelle.php:161
msgid "Error : trash email address forbidden"
msgstr "Errore : Indirizzo email rifiuti vietato"
#: emailPoubelle.php:163
msgid "Error : you have been blacklisted"
msgstr "Errore : Sei stato nella lista nera"
#: emailPoubelle.php:167
msgid "Error : this trash email already exists"
msgstr "Errore : Questo email rifiuti esista già"
#: emailPoubelle.php:169
msgid ""
"Error: You have reached your limit quota on this app. You can <a href="
"\"http://forge.zici.fr/p/emailpoubelle-php/\"> install this script </a> on a "
"personal server if you want more quota"
msgstr ""
"Errore : Hai raggiunto la tua limite su questa app. Puoi <a href="
"\"http://forge.zici.fr/p/emailpoubelle-php/\"> installare questo script </a> "
"su un server personale se vuoi più quota"
#: emailPoubelle.php:176
msgid "Confirmation of the creation of your trash email :"
msgstr "Confirmazione della creazione della tua email rifiuti"
#: emailPoubelle.php:178
msgid "Click on the link below to validate :"
msgstr "Clicca sul link sottostante per confermare"
#: emailPoubelle.php:181
msgid "To delete this trash email, click on the link below :"
msgstr "per sopprimere questa email rifiuti, clicca sul link sottostante"
#: emailPoubelle.php:184
msgid ""
"After confirmation, you will be able to temporary suspend you trash email "
"using the link below :"
msgstr ""
"Doppo confermazione, sara possibile di temporanea sospendere la tua email"
"rifiuti con il link sottostante"
#: emailPoubelle.php:186
msgid "Alias confirmation"
msgstr "Alias confermazione"
#: emailPoubelle.php:187
msgid "Your email address"
msgstr "Il tuo indirizzo email"
#: emailPoubelle.php:187
msgid "is unknown, a confirmation has been sent to you."
msgstr "non è conosciuto, una confermazione richiesta ti es stata inviata"
#: emailPoubelle.php:193
msgid "Confirmation of the removal of your trash email : "
msgstr "Confermazione per la soppressione della tua email rifiuti"
#: emailPoubelle.php:195
msgid "Click on the link below to validate the deletion :"
msgstr "Clicca sul link sottostante per confermare la soppressione"
#: emailPoubelle.php:197
msgid ""
"If you would like to temporary suspend this trash email, you can follow the "
"link bellow :"
msgstr ""
"Se vuoi temporeano sospendere la tua email rifiuti, clicca sul link "
"sottostante"
#: emailPoubelle.php:199
msgid "Alias deletion"
msgstr "Alias cancellatura"
#: emailPoubelle.php:202
msgid "Error : unknown trash email"
msgstr "Errore : Email rifiuti non è conosciuta"
#: emailPoubelle.php:230
msgid "Add"
msgstr "Aggiungere"
#: emailPoubelle.php:231
msgid "List"
msgstr "Listare"
#: emailPoubelle.php:232 emailPoubelle.php:274
msgid "Delete"
msgstr "Sopprimere"
#: emailPoubelle.php:233 emailPoubelle.php:275
msgid "Suspend"
msgstr "Sospendere"
#: emailPoubelle.php:234 emailPoubelle.php:276
msgid "Resume"
msgstr "Riprendere"
#: emailPoubelle.php:238
msgid "Your real email address"
msgstr "Il tuo vero email indirizzo"
#: emailPoubelle.php:241
msgid "Remember"
msgstr "Ricordarsi"
#: emailPoubelle.php:244
msgid "Name of your trash email address"
msgstr "Il nome dello tuo email rifiuti indirizzo"
#: emailPoubelle.php:245
msgid "Ex : john_shop"
msgstr "Ex : john_shop"
#: emailPoubelle.php:258
msgid "Unlimited time"
msgstr "Tempo illimitato"
#: emailPoubelle.php:259
msgid "2 hours"
msgstr "2 ore"
#: emailPoubelle.php:260
msgid "6 hours"
msgstr "6 ore"
#: emailPoubelle.php:261
msgid "1 day"
msgstr "1 giorno"
#: emailPoubelle.php:262
msgid "7 days"
msgstr "7 giorni"
#: emailPoubelle.php:263
msgid "15 days"
msgstr "15 giorni"
#: emailPoubelle.php:264
msgid "30 days"
msgstr "30 giorni"
#: emailPoubelle.php:265
msgid "90 days"
msgstr "90 giorni"
#: emailPoubelle.php:269
msgid "Comment for this trash email (for your to remember)"
msgstr "Commento su questa email rifiuti (per ricordarti)"
#: emailPoubelle.php:270
msgid "Ex : Inscription sur zici.fr"
msgstr "Ex: Iscrizione su zici.fr"
#: emailPoubelle.php:273
msgid "Activate"
msgstr "Attivare"
#: emailPoubelle.php:362
msgid "Version"
msgstr "Versione"
#: emailPoubelle.php:362
msgid "Created by David Mercereau under licence GNU GPL v3"
msgstr "Creato da David Mercereau sotto la licenza GNU GPL v3"
#: emailPoubelle.php:363
msgid "Download and use this script on the project website"
msgstr "Scarica é utiliza questo script sul website del projetto"
#: ep_function.php:93
msgid "has been deleted with all these aliases"
msgstr "e stato cancellato con tutti i alias"
#: ep_function.php:99
msgid "Erreur"
msgstr "Errore"
#: ep_function.php:99
msgid "has not been deleted"
msgstr "non e stato cancellato"
#: ep_function.php:120
msgid "has been deleted"
msgstr "e stato cancellato"
#: ep_function.php:126
msgid "Error: email trash unknown"
msgstr "Errore : Email rifiuti non è conosciuta"
#: ep_function.php:145 ep_function.php:173
msgid "Error: Can not find this trash email"
msgstr "Errore : Questa email rifiuti non è stata trovata"
#: ep_function.php:148 ep_function.php:150 ep_function.php:152
#: ep_function.php:176 ep_function.php:178 ep_function.php:180
msgid "The reception on"
msgstr "La ricezione su"
#: ep_function.php:148
msgid "is active again"
msgstr "è riattivata"
#: ep_function.php:150
msgid "is already active"
msgstr "è gia attivata"
#: ep_function.php:152
msgid "has not been confirmed by email"
msgstr "non è stata confermata da email"
#: ep_function.php:154 ep_function.php:182
msgid "Error: unknown status"
msgstr "Errore : Stato sconosciuto"
#: ep_function.php:176
msgid "is now suspended"
msgstr "è addesso sospesa"
#: ep_function.php:178
msgid "is already suspended"
msgstr "è gia sospesa"
#: ep_function.php:180
msgid "can not be suspended because it has not been activated yet"
msgstr "non puo essere sospesa perchè non è stata ancora attivata"
#: ep_function.php:254
msgid "List trash email activate"
msgstr "La lista di email rifiuti è attivata"
#: ep_function.php:257
msgid "List trash email disable"
msgstr "La lista di email rifiuti è disattivata"
#: ep_function.php:259
msgid "Create "
msgstr "Creare"
#: ep_function.php:261
msgid "and expires on"
msgstr "e scade alle"
#: ep_function.php:265
msgid "Comment :"
msgstr "Commento :"
#: ep_function.php:268
msgid "Disable :"
msgstr "Disattivare :"
#: ep_function.php:271
msgid "Activate :"
msgstr "Attivare :"
#: ep_function.php:274
msgid "Delete :"
msgstr "Cancellare :"
#: ep_function.php:280
msgid "List trash email"
msgstr "Listare email rifiuti"

View file

@ -1,383 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-11-16 12:45+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: emailPoubelleAdmin.php:27
msgid "Error: Incorrect password"
msgstr ""
#: emailPoubelleAdmin.php:75
msgid "Statistics"
msgstr ""
#: emailPoubelleAdmin.php:77
msgid "Total alias"
msgstr ""
#: emailPoubelleAdmin.php:78
msgid "Active alias"
msgstr ""
#: emailPoubelleAdmin.php:79
msgid "Alias suspended"
msgstr ""
#: emailPoubelleAdmin.php:80
msgid "Alias not verified"
msgstr ""
#: emailPoubelleAdmin.php:86
msgid "User email"
msgstr ""
#: emailPoubelle.php:22
msgid "Debug enabled"
msgstr ""
#: emailPoubelle.php:28
msgid ""
"Error : the configuration file conf.php might not be included because the "
"constants are not declared"
msgstr ""
#: emailPoubelle.php:31
msgid ""
"Error : the working directory cannot be written. Please contact the admin"
msgstr ""
#: emailPoubelle.php:34
msgid "Error : the alias file cannot be written. Please contact the admin"
msgstr ""
#: emailPoubelle.php:37
msgid "Error : the blacklist file cannot be read. Please contact the admin"
msgstr ""
#: emailPoubelle.php:40
msgid ""
"Error : the forbidden aliases file cannot be read. Please contact the admin"
msgstr ""
#: emailPoubelle.php:43 emailPoubelle.php:47
msgid "Service under maintenance"
msgstr ""
#: emailPoubelle.php:85
msgid "Error initializing tables. Please contact the admin"
msgstr ""
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "Your trash email address"
msgstr ""
#: emailPoubelle.php:102 emailPoubelle.php:173
msgid "is now enabled"
msgstr ""
#: emailPoubelle.php:104
msgid "Error : unknown ID or already validated"
msgstr ""
#: emailPoubelle.php:121
msgid "The scheduled task is running"
msgstr ""
#: emailPoubelle.php:124
msgid "You didn't allow the scheduled job"
msgstr ""
#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
#: emailPoubelle.php:153
msgid "Error : email address incorrect"
msgstr ""
#: emailPoubelle.php:138 emailPoubelle.php:200
msgid "An email has been sent to you"
msgstr ""
#: emailPoubelle.php:140
msgid "Error : no known active trash email"
msgstr ""
#: emailPoubelle.php:155
msgid "Error : trash email address syntax incorrect"
msgstr ""
#: emailPoubelle.php:157
msgid "Error : this domain cannot be used"
msgstr ""
#: emailPoubelle.php:159
msgid "Error : Your email can not contain a trash domain"
msgstr ""
#: emailPoubelle.php:161
msgid "Error : trash email address forbidden"
msgstr ""
#: emailPoubelle.php:163
msgid "Error : you have been blacklisted"
msgstr ""
#: emailPoubelle.php:167
msgid "Error : this trash email already exists"
msgstr ""
#: emailPoubelle.php:169
msgid ""
"Error: You have reached your limit quota on this app. You can <a href="
"\"http://forge.zici.fr/p/emailpoubelle-php/\"> install this script </a> on a "
"personal server if you want more quota"
msgstr ""
#: emailPoubelle.php:176
msgid "Confirmation of the creation of your trash email :"
msgstr ""
#: emailPoubelle.php:178
msgid "Click on the link below to validate :"
msgstr ""
#: emailPoubelle.php:181
msgid "To delete this trash email, click on the link below :"
msgstr ""
#: emailPoubelle.php:184
msgid ""
"After confirmation, you will be able to temporary suspend you trash email "
"using the link below :"
msgstr ""
#: emailPoubelle.php:186
msgid "Alias confirmation"
msgstr ""
#: emailPoubelle.php:187
msgid "Your email address"
msgstr ""
#: emailPoubelle.php:187
msgid "is unknown, a confirmation has been sent to you."
msgstr ""
#: emailPoubelle.php:193
msgid "Confirmation of the removal of your trash email : "
msgstr ""
#: emailPoubelle.php:195
msgid "Click on the link below to validate the deletion :"
msgstr ""
#: emailPoubelle.php:197
msgid ""
"If you would like to temporary suspend this trash email, you can follow the "
"link bellow :"
msgstr ""
#: emailPoubelle.php:199
msgid "Alias deletion"
msgstr ""
#: emailPoubelle.php:202
msgid "Error : unknown trash email"
msgstr ""
#: emailPoubelle.php:230
msgid "Add"
msgstr ""
#: emailPoubelle.php:231
msgid "List"
msgstr ""
#: emailPoubelle.php:232 emailPoubelle.php:274
msgid "Delete"
msgstr ""
#: emailPoubelle.php:233 emailPoubelle.php:275
msgid "Suspend"
msgstr ""
#: emailPoubelle.php:234 emailPoubelle.php:276
msgid "Resume"
msgstr ""
#: emailPoubelle.php:238
msgid "Your real email address"
msgstr ""
#: emailPoubelle.php:241
msgid "Remember"
msgstr ""
#: emailPoubelle.php:244
msgid "Name of your trash email address"
msgstr ""
#: emailPoubelle.php:245
msgid "Ex : john_shop"
msgstr ""
#: emailPoubelle.php:258
msgid "Unlimited time"
msgstr ""
#: emailPoubelle.php:259
msgid "2 hours"
msgstr ""
#: emailPoubelle.php:260
msgid "6 hours"
msgstr ""
#: emailPoubelle.php:261
msgid "1 day"
msgstr ""
#: emailPoubelle.php:262
msgid "7 days"
msgstr ""
#: emailPoubelle.php:263
msgid "15 days"
msgstr ""
#: emailPoubelle.php:264
msgid "30 days"
msgstr ""
#: emailPoubelle.php:265
msgid "90 days"
msgstr ""
#: emailPoubelle.php:269
msgid "Comment for this trash email (for your to remember)"
msgstr ""
#: emailPoubelle.php:270
msgid "Ex : Inscription sur zici.fr"
msgstr ""
#: emailPoubelle.php:273
msgid "Activate"
msgstr ""
#: emailPoubelle.php:362
msgid "Version"
msgstr ""
#: emailPoubelle.php:362
msgid "Created by David Mercereau under licence GNU GPL v3"
msgstr ""
#: emailPoubelle.php:363
msgid "Download and use this script on the project website"
msgstr ""
#: ep_function.php:93
msgid "has been deleted with all these aliases"
msgstr ""
#: ep_function.php:99
msgid "Erreur"
msgstr ""
#: ep_function.php:99
msgid "has not been deleted"
msgstr ""
#: ep_function.php:120
msgid "has been deleted"
msgstr ""
#: ep_function.php:126
msgid "Error: email trash unknown"
msgstr ""
#: ep_function.php:145 ep_function.php:173
msgid "Error: Can not find this trash email"
msgstr ""
#: ep_function.php:148 ep_function.php:150 ep_function.php:152
#: ep_function.php:176 ep_function.php:178 ep_function.php:180
msgid "The reception on"
msgstr ""
#: ep_function.php:148
msgid "is active again"
msgstr ""
#: ep_function.php:150
msgid "is already active"
msgstr ""
#: ep_function.php:152
msgid "has not been confirmed by email"
msgstr ""
#: ep_function.php:154 ep_function.php:182
msgid "Error: unknown status"
msgstr ""
#: ep_function.php:176
msgid "is now suspended"
msgstr ""
#: ep_function.php:178
msgid "is already suspended"
msgstr ""
#: ep_function.php:180
msgid "can not be suspended because it has not been activated yet"
msgstr ""
#: ep_function.php:254
msgid "List trash email activate"
msgstr ""
#: ep_function.php:257
msgid "List trash email disable"
msgstr ""
#: ep_function.php:259
msgid "Create "
msgstr ""
#: ep_function.php:261
msgid "and expires on"
msgstr ""
#: ep_function.php:265
msgid "Comment :"
msgstr ""
#: ep_function.php:268
msgid "Disable :"
msgstr ""
#: ep_function.php:271
msgid "Activate :"
msgstr ""
#: ep_function.php:274
msgid "Delete :"
msgstr ""
#: ep_function.php:280
msgid "List trash email"
msgstr ""

View file

@ -1,11 +0,0 @@
cp lib/ep_function.php .
xgettext *.php -o lang/messages.pot --from-code="UTF-8"
msgmerge --no-wrap -N lang/fr/LC_MESSAGES/messages.po lang/messages.pot > lang/fr/LC_MESSAGES/messages-new.po
# Edit lang/fr/LC_MESSAGES/messages-new.po
mv lang/fr/LC_MESSAGES/messages-new.po lang/fr/LC_MESSAGES/messages.po
mv lang/fr/LC_MESSAGES/messages-new.mo lang/fr/LC_MESSAGES/messages.mo
rm ep_function.php
msgfmt -o lang/fr/LC_MESSAGES/messages.mo -v lang/fr/LC_MESSAGES/messages.po

Binary file not shown.

Before

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1,492 +0,0 @@
<?php
//////////////////
// Function
//////////////////
// Status explication :
// 0=not verified - 3=disable - 5=active
// Verification des emails
function VerifMXemail($email) {
if (CHECKMX) {
$domaine=explode('@', $email);
$r = new Net_DNS2_Resolver(array('nameservers' => array(NS1, NS2)));
try {
$result = $r->query($domaine[1], 'MX');
} catch(Net_DNS2_Exception $e) {
return false;
}
if ($result->answer) {
return true;
} else {
return false;
}
} else {
return true;
}
}
// postmap command
function UpdateVirtualDB() {
global $dbco;
try {
$selectcmd = $dbco->prepare("SELECT status, alias, email
FROM ".DBTABLEPREFIX."alias
WHERE status > 0
ORDER BY alias ASC");
$selectcmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
$file_content=null;
while($alias_db = $selectcmd->fetch()) {
if ($alias_db['status'] == 5) {
$file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
} else if ($alias_db['status'] == 3) {
$file_content .= $alias_db['alias']." devnull\n";
}
}
$alias_file=fopen(FICHIERALIAS,'w');
fputs($alias_file, $file_content);
fclose($alias_file);
exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
}
// add new alias
function AjouterAlias($status, $alias,$email, $life, $comment) {
global $dbco;
$dateCreat=date('Y-m-d H:i:s');
if ($life == 0) {
$dateExpir=NULL;
} else {
$dateExpir=date('Y-m-d H:i:s', time()+$life);
}
try {
$insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
$insertcmd->bindParam('status', $status, PDO::PARAM_INT);
$insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
$insertcmd->bindParam('email', $email, PDO::PARAM_STR);
$insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
$insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
$insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
$insertcmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
UpdateVirtualDB();
if (preg_match('/^sqlite/', DB)) {
return $dbco->lastInsertId();
} else {
$stmt = $dbco->query("SELECT LAST_INSERT_ID()");
return $stmt->fetchColumn();
}
}
// delete email
function DeleteEmail($email) {
global $dbco;
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() != 0) {
try {
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE email = :email");
$deletecmd->bindParam('email', $email, PDO::PARAM_STR);
$deletecmd->execute();
echo '<div class="highlight-3"><b>'.$email.'</b> '._('has been deleted with all these aliases').'.</div>';
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
} else {
echo '<div class="highlight-1">'._('Erreur').' : <b>'.$email.'</b> '._('has not been deleted').'.</div>';
}
UpdateVirtualDB();
}
function AddBlacklistEmail($email) {
$contenu = '/^'.$email.'$/';
$fichier = fopen(BLACKLIST, 'a');
fwrite($fichier, $contenu."\n");
fclose($fichier);
echo '<div class="highlight-3">La mention '.$contenu.' a été ajouté au fichier de blackliste '.BLACKLIST.'</div>';
}
// delete alias
function DeleteAlias($id, $alias_full) {
global $dbco;
if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."' AND id = ".$id)->fetchColumn() != 0) {
try {
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
$deletecmd->bindParam('id', $id, PDO::PARAM_INT);
$deletecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
$deletecmd->execute();
echo '<div class="highlight-3"><b>'.$alias_full.'</b> '._('has been deleted').'</div>';
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
} else {
echo '<div class="highlight-1">'._('Error: email trash unknown').'</div>';
}
UpdateVirtualDB();
}
// enable alias
function EnableAlias($id, $alias_full, $email) {
global $dbco;
if ($id == null) {
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
} else {
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
}
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
$selectcmd->execute();
$alias_fetch = $selectcmd->fetch();
if (! $alias_fetch) {
echo '<div class="highlight-1">'._('Error: Can not find this trash email').'</div>';
} else if ($alias_fetch['status'] == 3) {
UpdateStatusAlias($alias_fetch['id'], $alias_full, 5);
echo '<div class="highlight-3">'._('The reception on').' <b>'.$alias_full.'</b> '._('is active again').'.</div>';
} else if ($alias_fetch['status'] == 5) {
echo '<div class="highlight-2">'._('The reception on').' <b>'.$alias_full.'</b> '._('is already active').'.</div>';
} else if ($alias_fetch['status'] == 0) {
echo '<div class="highlight-1">'._('The reception on').' <b>'.$alias_full.'</b '._('has not been confirmed by email').'.</div>';
} else {
echo '<div class="highlight-1">'._('Error: unknown status').'</div>';
}
UpdateVirtualDB();
}
// disable alias
function DisableAlias($id, $alias_full, $email) {
global $dbco;
if ($id == null) {
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE email = :email AND alias = :alias_full");
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
} else {
$selectcmd = $dbco->prepare("SELECT id,status FROM ".DBTABLEPREFIX."alias WHERE id = :id AND alias = :alias_full");
$selectcmd->bindParam('id', $id, PDO::PARAM_INT);
}
$selectcmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
$selectcmd->execute();
$alias_fetch = $selectcmd->fetch();
if (! $alias_fetch) {
echo '<div class="highlight-1">'._('Error: Can not find this trash email').'</div>';
} else if ($alias_fetch['status'] == 5) {
UpdateStatusAlias($alias_fetch['id'], $alias_full, 3);
echo '<div class="highlight-3">'._('The reception on').' <b>'.$alias_full.'</b> '._('is now suspended').'.</div>';
} else if ($alias_fetch['status'] == 3) {
echo '<div class="highlight-2">'._('The reception on').' <b>'.$alias_full.'</b> '._('is already suspended').'.</div>';
} else if ($alias_fetch['status'] == 0) {
echo '<div class="highlight-1">'._('The reception on').' <b>'.$alias_full.'</b> '._('can not be suspended because it has not been activated yet').'.</div>';
} else {
echo '<div class="highlight-1">'._('Error: unknown status').'</div>';
}
UpdateVirtualDB();
}
// update alias status
function UpdateStatusAlias($id, $alias_full, $status) {
global $dbco;
try {
$updatecmd = $dbco->prepare("UPDATE ".DBTABLEPREFIX."alias SET status = $status WHERE id = :id AND alias = :alias_full");
$updatecmd->bindParam('id', $id, PDO::PARAM_INT);
$updatecmd->bindParam('alias_full', $alias_full, PDO::PARAM_STR);
$updatecmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
UpdateVirtualDB();
}
// parse file for blacklist and aliasdeny
function parseFileRegex($file, $chaine) {
$return=false;
$handle = fopen($file, 'r');
while (!feof($handle)) {
$buffer = fgets($handle);
$buffer = str_replace("\n", "", $buffer);
if ($buffer) {
if (!preg_match('/^(#|$|;)/', $buffer) && preg_match($buffer, $chaine)) {
$return=true;
break;
}
}
}
fclose($handle);
return $return;
}
// check blacklistemail
function BlacklistEmail($email) {
if (defined('BLACKLIST')) {
return parseFileRegex(BLACKLIST, $email);
} else {
return false;
}
}
// check aliasdeny
function AliasDeny($alias) {
if (defined('ALIASDENY')) {
return parseFileRegex(ALIASDENY, $alias);
} else {
return false;
}
}
// list alias
function ListeAlias($email) {
global $dbco;
try {
$selectcmd = $dbco->prepare("SELECT id, status, alias, dateCreat, dateExpir, comment
FROM ".DBTABLEPREFIX."alias
WHERE email = :email AND status > 0
ORDER BY status DESC");
$selectcmd->bindParam('email', $email, PDO::PARAM_STR);
$selectcmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
$nb_alias=0;
$nb_alias_disable=0;
$message= "## "._('List trash email activate')." : \n\n";
while($alias_db = $selectcmd->fetch()) {
if ($alias_db['status'] == 3 && $nb_alias_disable == 0) {
$message.= "## "._('List trash email disable')." : \n\n";
}
$message.=" * ".$alias_db['alias']." "._('Create ')." ".$alias_db['dateCreat'];
if ($alias_db['dateExpir']) {
$message.=" "._('and expires on')." ".$alias_db['dateExpir'];
}
$message.="\n";
if ($alias_db['comment']) {
$message.="\t"._('Comment :')." ".$alias_db['comment']."\n";
}
if ($alias_db['status'] == 5) {
$message.="\t"._('Disable :')." ".urlGen('disable',$alias_db['id'],$alias_db['alias'])."\n";
$nb_alias++;
} else {
$message.="\t"._('Activate :')." ".urlGen('enable',$alias_db['id'],$alias_db['alias'])."\n";
$nb_alias_disable++;
}
$message.="\t"._('Delete :')." ".urlGen('delete',$alias_db['id'],$alias_db['alias'])."\n\n";
}
$nb_alias_total = $nb_alias + $nb_alias_disable;
if ($nb_alias_total == 0) {
return false;
} else {
SendEmail($email,_('List trash email'),$message);
return true;
}
}
function SendEmail($recipient, $sujet, $message) {
$header = "From: ".EMAILFROM."\n";
$header.= "MIME-Version: 1.0\n";
/*
if (preg_match('#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#', $recipient)) {
$header = str_replace("\n", "\r\n", $header);
$message = str_replace("\n", "\r\n", $header);
}
*/
$message="Bonjour,\n\n".$message."\n\n".
mail($recipient,EMAILTAGSUJET.' '.$sujet,$message,$header);
}
function urlGen($act,$id,$alias_full) {
$idUrl=base64_encode($id.';'.$alias_full);
if (URLREWRITE_START && URLREWRITE_MIDDLE && URLREWRITE_END) {
return URLREWRITE_START.$act.URLREWRITE_MIDDLE.$idUrl.URLREWRITE_END;
} else {
return URLPAGE."?act=".$act."&value=".$idUrl;
}
}
function urlUnGen($get_value) {
$explode_get_value = explode(';', base64_decode($get_value));
$return['id']=$explode_get_value[0];
$return['alias_full']=$explode_get_value[1];
return $return;
}
// Source http://css-tricks.com/serious-form-security/
function StripCleanToHtml($s){
// Restores the added slashes (ie.: " I\'m John " for security in output, and escapes them in htmlentities(ie.: &quot; etc.)
// Also strips any <html> tags it may encouter
// Use: Anything that shouldn't contain html (pretty much everything that is not a textarea)
return htmlentities(trim(strip_tags(stripslashes($s))), ENT_NOQUOTES, "UTF-8");
}
function CleanToHtml($s){
// Restores the added slashes (ie.: " I\'m John " for security in output, and escapes them in htmlentities(ie.: &quot; etc.)
// It preserves any <html> tags in that they are encoded aswell (like &lt;html&gt;)
// As an extra security, if people would try to inject tags that would become tags after stripping away bad characters,
// we do still strip tags but only after htmlentities, so any genuine code examples will stay
// Use: For input fields that may contain html, like a textarea
return strip_tags(htmlentities(trim(stripslashes($s))), ENT_NOQUOTES, "UTF-8");
}
//////////////////
// Admin function
//////////////////
function CheckUpdate() {
if (CHECKUPDATE) {
if (! is_file(DATA.'/checkupdate') || filemtime(DATA.'/checkupdate') + CHECKUPDATE < time()) {
$ep_get_version = @file_get_contents('http://poubelle.zici.fr/ep_checkupdate');
$ep_version_file=fopen(DATA.'/checkupdate','w');
fputs($ep_version_file, $ep_get_version);
fclose($ep_version_file);
if (DEBUG) { echo 'ep_checkupdate_downloaded : '.file_get_contents(DATA.'/checkupdate').'\n'; }
}
$file_current_version = trim(file_get_contents(DATA.'/checkupdate'));
if ($file_current_version != '' && $file_current_version != VERSION) {
return '<p>Upgrade note: Your version is in '.VERSION.' while the current version is in '.$file_current_version.'</p>';
} else {
return false;
}
}
}
function LifeExpire() {
global $dbco;
try {
$deletecmd = $dbco->prepare("DELETE FROM ".DBTABLEPREFIX."alias WHERE dateExpir IS NOT NULL AND dateExpir < '".date('Y-m-d H:i:s')."'");
$deletecmd->execute();
} catch ( PDOException $e ) {
echo "DB error : ", $e->getMessage();
die();
}
}
// Vérifie que le domaine de l'alias est bien dans la configuration
function domainePresent($postDom) {
$domains = explode(';', DOMAIN);
$return=true;
if (count($domains) == 1) {
if (!preg_match('#'.$postDom.'#',DOMAIN)) {
$return=false;
}
} else {
foreach ($domains as $one_domain) {
if (!preg_match('#'.$postDom.'#',$one_domain)) {
$return=false;
}
}
}
return $return;
}
// Vérifie que l'email n'est pas un alias avec un domain "poubelle" (éviter boucle forward)
function emailIsAlias($postemail) {
$domains = explode(';', DOMAIN);
$return=false;
if (count($domains) == 1) {
if (preg_match('#'.DOMAIN.'$#',$postemail)) {
$return=true;
}
} else {
foreach ($domains as $one_domain) {
if (preg_match('#'.$one_domain.'$#',$postemail)) {
$return=true;
}
}
}
return $return;
}
function get_ip() {
// IP si internet partagé
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
return $_SERVER['HTTP_CLIENT_IP'];
}
// IP derrière un proxy
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
// Sinon : IP normale
else {
return (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
}
}
// Fonction langues :
function languesSwitch() {
echo '<script>
function langSwitch(lang) {
document.getElementById(\'langSwitch\').value = lang;
document.getElementById(\'fromLangueSwitch\').submit();
}
</script>
<div class="eplangswitch" style="float: right">
<form id="fromLangueSwitch" action="#" method="post">
<input type="hidden" name="langSwitch" value="" id="langSwitch" />
<img alt="fr" src="'.URLINC.'/fr.png" onclick="langSwitch(\'fr\');" />
<img alt="it" src="'.URLINC.'/it.png" onclick="langSwitch(\'it\');" />
<img alt="en" src="'.URLINC.'/en.png" onclick="langSwitch(\'en\');" />
</form>
</div>';
}
function lang2locale($langue) {
global $langueEtLocalDispo;
if ($langueEtLocalDispo[$langue] != '') {
return $langueEtLocalDispo[$langue];
} else {
// par défaut
return 'en_US';
}
}
function locale2lang($localeRecherche) {
global $langueEtLocalDispo;
foreach($langueEtLocalDispo as $code=>$locale) {
if ($locale == $localeRecherche) {
return $code;
break;
}
}
// par défaut
return 'en';
}
// Ajoute la langue à une URL qui n'en a pas
function addLang2url($lang) {
global $_SERVER;
$URIexplode=explode('?', $_SERVER['REQUEST_URI']);
if ($URIexplode[1] != '') {
return $URIexplode[0].$URIexplode[1].'&langue='.$lang;
} else {
return $URIexplode[0].'?langue='.$lang;
}
}
function replaceLang2url($lang) {
global $_SERVER;
$URIexplode=explode('?', $_SERVER['REQUEST_URI']);
$debutUrl=substr($URIexplode[0], 0, -langCountChar($URIexplode[0]));
if ($URIexplode[1] != '') {
return $debutUrl.$lang.'?'.$URIexplode[1];
} else {
return $debutUrl.$lang;
}
}
function langCountChar($url) {
// $url reçu c'est l'URL avant la query : ?machin=1
if (preg_match('#/sr-Cyrl-ME$#',$url)) {
return 10;
} elseif (preg_match('#/[a-z]{2}-[A-Z]{2}$#',$url)) {
return 5;
} elseif (preg_match('#/[a-z]{3}-[A-Z]{2}$#',$url)) {
return 6;
} elseif (preg_match('#/[a-z]{3}$#',$url)) {
return 3;
} elseif (preg_match('#/[a-z]{2}$#',$url)) {
return 2;
}
}
?>

View file

@ -1,67 +0,0 @@
<?php
$country = @geoip_country_code_by_name(get_ip());
$HTTP_ACCEPT_LANGUAGE=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang_from_http_accept = explode(',', $HTTP_ACCEPT_LANGUAGE);
$lang = $lang_from_http_accept[0];
// Dans les URL on utilisera les codes langues https://support.crowdin.com/api/language-codes/
// On a une fonction pour retrouve le local à partir (et vis et versa)
// CODE LOCALE (locale -a)
$langueEtLocalDispo=array(
'fr' => 'fr_FR',
'en' => 'en_US',
'it' => 'it_IT',
);
// Détection et redirection (langue toujours)
if (isset($_POST['langSwitch'])) {
$locale = lang2locale($_POST['langSwitch']);
$localeshort=locale2lang($locale);
if ($_COOKIE['langue'] != $localeshort) {
setcookie("langue",$localeshort,strtotime( '+1 year' ));
}
} elseif (isset($_COOKIE['langue'])) {
$locale = lang2locale($_COOKIE['langue']);
$lang=locale2lang($locale);
//header('Location: '.addLang2url($lang));
} else {
$HTTP_ACCEPT_LANGUAGE=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
//echo $HTTP_ACCEPT_LANGUAGE.'<br />';
$lang_from_http_accept = explode(',', $HTTP_ACCEPT_LANGUAGE);
//echo $lang_from_http_accept[0].'<br />';
$locale = lang2locale($lang_from_http_accept[0]);
if (substr($locale,0,2) != substr($lang_from_http_accept[0],0,2)) {
//echo "Non trouvé, 2ème tentative";
$lang_from_http_accept = explode('-', $lang_from_http_accept[0]);
//echo $lang_from_http_accept[0].'<br />';
$locale = lang2locale($lang_from_http_accept[0]);
}
//echo $locale.'<br />';
$lang = locale2lang($locale);
//echo $lang.'<br />';
}
// Définition de la langue :
$results=putenv("LC_ALL=$locale.utf8");
if (!$results) {
exit ('putenv failed');
}
$results=putenv("LC_LANG=$locale.utf8");
if (!$results) {
exit ('putenv failed');
}
$results=putenv("LC_LANGUAGE=$locale.utf8");
if (!$results) {
exit ('putenv failed');
}
$results=setlocale(LC_ALL, "$locale.utf8");
if (!$results) {
exit ('setlocale failed: locale function is not available on this platform, or the given local does not exist in this environment');
}
bindtextdomain("messages", LANG);
textdomain("messages");
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 901 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 311 B

View file

@ -1,22 +0,0 @@
/^root$/
/^mail$/
/^email$/
/^test$/
/^toto$/
/^www-data$/
/^www-owne$/
/^manager$/
/^admin$/
/postmaster/
/^MAILER-DAEMON$/
/^abuse$/
/^spam$/
/^backup$/
/^list$/
/^nobody$/
/^vmail$/
/^mysql$/
/^web$/
/^git$/
/^mail$/
/^[1-9]+$/

View file

@ -1,7 +0,0 @@
/^exemple@exemple.com$/
/.pl$/
/^exemple[1-9]+@toto.fr$/
/@yopmail.com$/
/^harou/
/@gmx.com$/
/^sportnet/

View file

@ -1,197 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>emailPoubelle Admin - Template-exemple</title>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="robots" content="index,follow,noarchive">
<link rel="stylesheet" href="template-exemple/style.css">
<!--[if IE]><script src="template-exemple/html5-ie.js"></script><![endif]-->
</head>
<body>
<!--[if lte IE 6]>
<div class="alert-ie6" style="padding: 1em; background: #900; font-size: 1.1em; color: #fff;">
<p><strong>Attention ! </strong> Votre navigateur (Internet Explorer 6 ou 7) présente de sérieuses lacunes en terme de sécurité et de performances, dues à son obsolescence (il date de 2001).<br />En conséquence, ce site sera consultable mais de manière moins optimale qu'avec un navigateur récent (<a href="http://www.browserforthebetter.com/download.html" style="color: #fff;">Internet Explorer 8</a>, <a href="http://www.mozilla-europe.org/fr/firefox/" style="color: #fff;">Firefox 3</a>, <a href="http://www.google.com/chrome?hl=fr" style="color: #fff;">Chrome</a>, <a href="http://www.apple.com/fr/safari/download/" style="color: #fff;">Safari</a>,...)</p>
</div>
<![endif]-->
<div id="a">
<header>
<a href="/" title="Startseite"><strong>OWMX-2</strong> HTML5 &amp; CSS3</a>
</header>
<div id="b">
<article>
<h1><?= _('Emails trash free') ?> - <?= _('Admin space') ?></h1>
<p><?= _('Generate trash emails without lifetime constraint') ?>. </p>
<?php
// Intégration dans votre site :
if (file_exists('../conf.php')) {
include('../conf.php');
} else {
include('../conf-dist.php');
}
include('../emailPoubelleAdmin.php');
?>
<h3>Let the Show Begin - Pre and Code</h3>
<p>This is how it looks if you use <code>pre</code> and <code>code</code> together, for example to highlight and nicely markup a piece of code:</p>
<pre><code>pre {<br /> font-size : 12px;<br /> background : #F0F0F0;<br />}</code></pre>
<h3>Example Blockquote</h3>
<p>If you want to quote somebody, you can use this perfectly semantic example for a blockquote:</p>
<cite>Jonas Jacek</cite>
<blockquote cite="http://www.rield.com/">
During my years in the Internet Marketing business I have seen and done many things I never thought would be of interest to me or anyone else.
</blockquote>
<h3>Examples Alerts, Notice &amp; Confirmation</h3>
<p>These sample styles for alerts and notices are useful if you want to use the template in content management systems.</p>
<p class="highlight-1"><strong>Alert:</strong> This is how an alert looks like.</p>
<p class="highlight-2"><strong>Notice:</strong> This is how a notice looks like.</p>
<p class="highlight-3"><strong>Confirmation:</strong> This is how a confirmation looks like.</p>
<h3>Example Table</h3>
<p>The following is the design for a table. The style is simple and user-friendly. Some of the effects were made with CSS3.</p>
<table>
<caption>Mini HTML5 Reference Guide</caption>
<tbody>
<tr>
<th>Tag</th>
<th>Info</th>
<th>Attributes</th>
</tr>
<tr>
<td>&lt;abbr&gt;</td>
<td>abbreviation</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;area&gt;</td>
<td>in an image map</td>
<td> alt, coords, href, hreflang, media, ping, rel, shape, target, type</td>
</tr>
<tr>
<td>&lt;article&gt;</td>
<td>article/ content</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;aside&gt;</td>
<td>sidebar</td>
<td>global attributes**</td>
</tr>
<tr>
<td>&lt;audio&gt;</td>
<td>sound content</td>
<td>autobuffer, autoplay, controls, loop, src</td>
</tr>
<tr>
<td>&lt;b&gt;</td>
<td>bold text</td>
<td>global attributes**</td>
</tr>
</tbody>
</table>
<h3>Example hCalendar</h3>
<p>The following is a definition list in combination with the hCalendar microformat. </p>
<dl class="vevent">
<dt class="dtstart"><abbr title="2010-11-18" class="dtstart">11-18-2010</abbr></dt>
<dd class="summary">Conference Name</dd>
<dd><a href="#" class="url">http://www.conference-website.com/</a></dd>
<dd class="description">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi nec eleifend diam. Fusce lobortis odio ac sem scelerisque sed iaculis purus ornare.</dd>
</dl>
<h3>Example Video</h3>
<p>You can put your Video-Files here...</p>
<video src="movie.ogg" controls>your browser does not support the video tag</video>
<h3>Example Audio</h3>
<p>You can put your Audio-Files here...</p>
<audio src="file.ogg" controls>your browser does not support the audio tag</audio>
<h3>Example Lists</h3>
<p>Two different kinds of lists were styled: Ordered lists (ol) and unordered (ul) lists.</p>
<ol>
<li>This is</li>
<li>The Ordered</li>
<li>Listing</li>
</ol>
<ul>
<li>This is</li>
<li>The Unordered</li>
<li>Listing</li>
</ul>
<h3>Example Form</h3>
<p>This is how a form will look like in this template.</p>
<form action="#">
<label>Name</label>
<input name="#" type="text" value="Your Name">
<label>Email</label>
<input name="#" type="text" value="Your Email">
<label>Your Comments</label>
<textarea>This is a Comment...</textarea>
<br>
<input class="button" type="submit">
</form>
<section class="meta">
<p>Author: <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a> | Date: 2010-01-21 | Comments: <a href="#">7</a></p>
<p>Tags: <a href="#" rel="tag">quisquam</a>, <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">dolorem</a> <a href="#" rel="tag">Tags</a>, <a href="#" rel="tag">Tags</a></p>
</section>
</article>
<aside>
<h4>Search</h4>
<form action="#" class="s">
<input name="search" type="text" value="Type term and hit enter...">
</form>
<h4>About the Author</h4>
<div id="c">
<img src="template-exemple/jonas-jacek.png" alt="Jonas Jacek">
<p>Hi, my name is <a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a>.<br> Welcome to my new HTML5 / CSS3 blog.</p>
<p>I am a web designer, web developer and Internet marketing enthusiast.</p>
<p>I strongly believe in open-source software and open standards.</p>
</div>
<nav>
<h4>Navigation</h4>
<ul>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li class="active"><a href="#">Dolor Sit</a>
<ul>
<li><a href="#">Amet</a></li>
<li><a href="#">Amet</a></li>
</ul>
</li>
<li><a href="#">Downloads</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
<h4>Example Gallery</h4>
<ul class="gallery">
<li><a href="index.html"><img src="template-exemple/img1.png"/></a></li>
<li><a href="index.html"><img src="template-exemple/img2.png"/></a></li>
<li><a href="index.html"><img src="template-exemple/img3.png"/></a></li>
</ul>
<ul class="gallery">
<li><a href="index.html"><img src="template-exemple/img4.png"/></a></li>
<li><a href="index.html"><img src="template-exemple/img5.png"/></a></li>
<li><a href="index.html"><img src="template-exemple/img6.png"/></a></li>
</ul>
<h4>AdSpace</h4>
<div class="adspace">
<a href="http://www.jabz.biz/" rel="me"><img src="template-exemple/jabz-logo.png" alt="Jabz Internet Marketing GmbH" title="Jabz Internet Marketing GmbH"/></a>
</div>
<h4>Example Blogroll</h4>
<ul>
<li><a href="http://www.jabz.biz/">Jabz Internet Marketing GmbH</a></li>
<li><a href="http://www.jabz.info/contact/jonas-jared-jacek/">Jonas Jacek</a></li>
<li><a href="http://www.w3.org/">World Wide Web Consortium</a></li>
<li><a href="http://www.getfirefox.com/">Firefox Web Browser</a></li>
</ul>
<h4>Example Tag Cloud</h4>
<ul id="tagcloud">
<li class="tagcloudsize-1"><a href="#">Lorem</a></li>
<li class="tagcloudsize-2"><a href="#">Ipsum</a></li>
<li class="tagcloudsize-3"><a href="#">Dolor</a></li>
<li class="tagcloudsize-2"><a href="#">Sit Amet</a></li>
<li class="tagcloudsize-1"><a href="#">Consectetur</a></li>
</ul>
</aside>
</div>
<footer>
<p>Template Design &amp; Markup by <a href="http://www.jabz.info/contact/jonas-jared-jacek/" title="Profile of Jonas Jacek">Jonas Jacek</a> for <a href="http://www.owmx.com/" title="Free HTML5 &amp; CSS3 Web Template | owmx.com">Free HTML5 &amp; CSS3 Web Templates</a>.</p>
</footer>
</div>
</html>

View file

@ -1,36 +0,0 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<title>emailPoubelle - Template-exemple</title>
<meta charset="UTF-8">
<meta name="description" content="">
<meta name="robots" content="index,follow,noarchive">
<link rel="stylesheet" href="template-exemple/style.css">
<!--[if IE]><script src="template-exemple/html5-ie.js"></script><![endif]-->
</head>
<body>
<!--[if lte IE 6]>
<div class="alert-ie6" style="padding: 1em; background: #900; font-size: 1.1em; color: #fff;">
<p><strong>Attention ! </strong> Votre navigateur (Internet Explorer 6 ou 7) présente de sérieuses lacunes en terme de sécurité et de performances, dues à son obsolescence (il date de 2001).<br />En conséquence, ce site sera consultable mais de manière moins optimale qu'avec un navigateur récent (<a href="http://www.browserforthebetter.com/download.html" style="color: #fff;">Internet Explorer 8</a>, <a href="http://www.mozilla-europe.org/fr/firefox/" style="color: #fff;">Firefox 3</a>, <a href="http://www.google.com/chrome?hl=fr" style="color: #fff;">Chrome</a>, <a href="http://www.apple.com/fr/safari/download/" style="color: #fff;">Safari</a>,...)</p>
</div>
<![endif]-->
<div id="a">
<header>
<a href="/" title="Startseite"><strong>OWMX-2</strong> HTML5 &amp; CSS3</a>
</header>
<div id="b">
<article>
<h1><?= _('Emails trash free') ?></h1>
<p><?= _('Generate trash emails without lifetime constraint') ?>. </p>
<?php
// Intégration dans votre site :
if (file_exists('../conf.php')) {
include('../conf.php');
} else {
include('../conf-dist.php');
}
include('../emailPoubelle.php');
?>
</div>
</div>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

View file

@ -1,10 +0,0 @@
document.createElement("header");
document.createElement("footer");
document.createElement("section");
document.createElement("aside");
document.createElement("nav");
document.createElement("article");
document.createElement("figure");
document.createElement("figcaption");
document.createElement("hgroup");
document.createElement("time");

Binary file not shown.

Before

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1,34 +0,0 @@
####################################################
# License #
####################################################
This W3C-compliant, CSS-based website template has a
Creative Commons Attribution-Share Alike 3.0
Unported License.
>> http://creativecommons.org/licenses/by-sa/3.0/
####################################################
# What You Can Do #
####################################################
Feel free to remix, copy, distribute and transmit
this template. All I ask is that you keep the
footer links in the template intact. Also, if you
alter, transform, or build upon this work, you
may distribute the resulting work only under the
same, similar or a compatible license.
####################################################
# Feedback & Action #
####################################################
I'd love to get your feedback on the template.
Please contact me with your critics, ideas, etc.
>> http://www.jabz.info/contact/jonas-jared-jacek/
If you like to contribute your remix, I will be
more than happy to put your version on owmx.com
and credit you in http://www.owmx.com/credits/.

View file

@ -1,442 +0,0 @@
/*==================================================
Template: OWMX-2
Resource: http://www.owmx.com/
Version: 1.0
Date: 2010-09-13
Editor: Jonas Jacek
License: CC Attribution-Share Alike 3.0 Unported
==================================================*/
/* Reset */
header, footer, article, nav, section, aside, time, hgroup {
display : block;
}
html, body, header, footer, article, nav, section, aside, time, h1, h2, h3, p, a, ul, li, dl, dd, dt, table, thead, tfoot, tbody, th, tr, td {
border : 0;
font : 12px/22px Verdana, sans-serif;
margin : 0;
outline : 0;
padding : 0;
}
/* BASICS */
BODY {
background : #FFF;
border-top : 5px solid #FFF;
color : #444;
}
A {
color : #0A647C;
text-decoration : none;
}
A:HOVER {
color : #DB0202;
}
H1, H3, H4, H5, H6 {
background : url(./ai4.png) no-repeat 0 7px;
border-bottom : 1px dotted #B5B3A9;
color : #333;
font-weight : bold;
margin : 0 0 10px;
padding : 0 0 0 25px;
}
H1 {
background : url(./ai4.png) no-repeat 0 6px;
font-size : 15px;
}
H2 {
font-size : 14px;
margin : 0 0 20px 0;
}
H3 {
background : url(./ai5.png) no-repeat 0 7px;
}
H3, H4, H5, H6 {
font-size : 13px;
}
SUP {
top : -4px;
}
/* Header */
header {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
background : #006699 url(./hd.jpg) no-repeat top left;
margin : 0 0 10px 0;
padding : 10px 10px;
position : relative;
}
header a {
color : #FFF;
font-size : 16px;
}
header a:hover {
color : #FFF;
}
/* Article */
article {
border-left : 1px dotted #666;
float : right;
height : auto;
padding : 0 0 0 20px;
width : 560px;
}
article p {
margin : 0 0 20px 0;
}
article img {
float : left;
margin : 6px 10px 0 0;
}
/* Highlighted Paragraphs */
.highlight-1, .highlight-2, .highlight-3 {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
padding : 5px 10px;
}
.highlight-1 {
background : #FFCCCC;
border : 1px dotted #FF9966;
}
.highlight-2 {
background : #FFFF99;
border : 1px dotted #FFCC33;
}
.highlight-3 {
background : #CCFF99;
border : 1px dotted #CCCC33;
}
/* Citations & Quotes */
cite {
border-left: 2px solid #006699;
color : #666;
font-size : 10px;
font-style : normal;
font-weight : bold;
margin : 0;
padding : 5px 10px;
}
blockquote {
border-left: 2px solid #006699;
color : #666;
margin : 0 0 20px 0;
padding : 5px 10px;
}
/* Pre & Code */
pre {
color : #333;
font-size : 10px;
line-height : 15px; /*--Height of each line of code--*/
overflow : hidden; /*--If the Code exceeds the width, put "auto" and scrolling is available--*/
overflow-Y : hidden; /*--Hides vertical scroll created by IE--*/
}
pre code {
background : #EEE;
border-left : 2px solid #006699;
margin : 0 0 10px 0;
padding : 5px;
display : block;
}
/* Table */
table {
border-collapse : collapse;
text-align:left;
margin : 0 0 20px 0;
}
caption {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
background : #006699;
color : #FFF;
font-weight : bold;
}
tr:nth-child(odd) {
background : #FFF;
}
tr:nth-child(even) {
background : #DDD;
}
tr:hover td {
color : #006699;
}
td, th {
min-width : 120px;
padding : 0 5px;
vertical-align:top;
}
th {
background : #FFF;
border-bottom : 2px solid #006699;
color : #666;
font-size : 10px;
font-weight : bold;
}
td {
border-bottom : 1px solid #CCC;
font-size : 10px;
}
/* Calendar */
dl.vevent {
margin : -20px 0 20px 0;
padding : 0;
}
.vevent dt {
font-size : 10px;
position : relative;
left : 0;
top : 22px;
font-weight : bold;
}
.vevent dd
{
border-left : 2px solid #006699;
font-size : 11px;
margin : 0 0 0 80px;
padding : 0 0 0 10px;
}
dd.summary {
font-weight : bold;
}
.vevent a {
font-size : 11px;
}
/* Forms */
article form {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
background : #DDD;
margin : 0 0 20px;
padding : 10px;
}
article label {
color : #666;
display : block;
font-size : 10px;
font-weight : bold;
margin : 0 0 0 2px;
}
article input, article textarea {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border : 1px solid #CCC;
font-size : 11px;
padding : 4px 5px;
/*width : 458px;*/
}
article input {
margin : 0 0 10px;
}
article input.button, .btn {
background: #999;
border : 1px solid #888;
color: #FFF;
cursor : pointer;
font-weight : bold;
margin : 10px 0 0 0;
text-shadow : 0 -1px 1px rgba(0,0,0,0.25);
width : 25%;
}
article input.button:disabled, .btn{
color: #888;
}
article textarea {
height : 100px;
}
/* Lists */
article ul, aside ul {
list-style : none;
margin : 0 0 20px 0;
}
article ul {
margin : 0 0 20px 23px;
}
article ul li {
background : url(./ai2.png) no-repeat 0 8px;
padding : 0 0 0 17px;
}
/* Sidebar */
aside {
float : left;
margin : 0 0 20px 0;
width : 200px;
}
/* Search Box */
.s {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
margin : 0 0 20px 0;
padding : 10px;
width : 179px;
}
.s input {
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border : 1px solid #CCC;
color : #999;
font-size : 11px;
padding : 4px 5px;
width : 168px;
}
/* Navigation & Menu */
nav ul {
list-style : none;
}
nav li {
background : url(./ai1.png) no-repeat 0 8px;
padding : 0 0 0 15px;
}
nav li ul, aside li ul li ul {
margin : 0;
}
nav li li a {
font-size : 11px;
}
nav li li li a {
font-size : 10px;
}
nav li li li, aside li.active li li {
background : url(./ai8.png) no-repeat 0 10px;
}
nav li.active, aside li.active li {
background : url(./ai2.png) no-repeat 0 8px;
}
/* Gallery */
.gallery {
list-style : none;
margin : 0 0 10px;
}
.gallery li {
display: inline;
margin : 0 15px 0 0;
}
.gallery a img {
border : 1px solid #999;
height : 50px;
opacity: 0.8;
padding : 1px;
width : 50px;
}
.gallery li:last-child {
margin : 0 0 10px 0;
}
.gallery a img:hover{
opacity: 1;
}
/* Ad Space */
.adspace {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
-moz-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
-webkit-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
background : #EEE;
height : 100%;
margin : 0 0 20px 0;
padding : 5px 10px;
text-align : center;
width : 178px;
}
.adspace a img {
border : none;
}
/* Tag Cloud */
#tagcloud {
overflow : hidden;
width : 200px;
}
#tagcloud li {
display : inline;
margin : 0 10px 0 0;
}
.tagcloudsize-1 a {
font-size : 14px;
}
.tagcloudsize-2 a {
font-size : 16px;
}
.tagcloudsize-3 a {
font-size : 18px;
}
/* Footer */
footer {
border-top : 1px dotted #B5B3A9;
clear : both;
margin : 20px 0;
}
footer a, footer p {
color : #666;
display : inline;
font-size : 10px;
}
/* Wrappers */
#a, #b {
margin : 0 auto;
position : relative;
}
#a {
width : 800px;
}
#b {
overflow : hidden;
}
/* Shadow-Boxes*/
#c, .meta, .s {
-moz-border-radius : 4px;
-webkit-border-radius : 4px;
-moz-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
-webkit-box-shadow : 0 2px 2px rgba(0,0,0,0.3);
background : #EEE;
}
#c {
background : #EEE;
margin : 0 0 20px 0;
padding : 5px 10px;
width : 178px;
}
#c p, #c a {
font-size : 11px;
line-height : 15px;
}
#c p {
margin : 0 0 10px 0;
}
#c img {
float : left;
margin : 4px 10px 2px 0;
}
.meta {
margin : 20px 0 3px;
padding : 2px 5px;
}
.meta p, .meta a {
font-size : 10px;
margin : 0;
}
.open {
color : #CCC;
}
.close {
color : #0A647C;
}