SF.net SVN: postfixadmin:[1906] trunk
Brought to you by:
christian_boltz,
gingerdog
From: <chr...@us...> - 2018-01-12 20:20:50
|
Revision: 1906 http://sourceforge.net/p/postfixadmin/code/1906 Author: christian_boltz Date: 2018-01-12 20:20:46 +0000 (Fri, 12 Jan 2018) Log Message: ----------- Delete all files and replace them with a README pointing to github Added Paths: ----------- trunk/README Removed Paths: ------------- trunk/ADDITIONS/README.TXT trunk/ADDITIONS/change_password.tgz trunk/ADDITIONS/cleanupdirs.pl trunk/ADDITIONS/convert-passwd-to-postfixadmin.pl trunk/ADDITIONS/cyrus/Changelog trunk/ADDITIONS/cyrus/README-ES.txt trunk/ADDITIONS/cyrus/README.txt trunk/ADDITIONS/cyrus/cyrus-mailbox-postcreation.pl trunk/ADDITIONS/cyrus/cyrus-mailbox-postdelete.pl trunk/ADDITIONS/cyrus/cyrus-mailbox-postedit.pl trunk/ADDITIONS/cyrus/cyrus.conf trunk/ADDITIONS/delete-mailq-by-domain.pl trunk/ADDITIONS/fetchmail.pl trunk/ADDITIONS/import_users_from_csv.py trunk/ADDITIONS/mailbox_remover.pl trunk/ADDITIONS/mkeveryone.pl trunk/ADDITIONS/pfa_maildir_cleanup.pl trunk/ADDITIONS/postfixadmin-domain-postdeletion.sh trunk/ADDITIONS/postfixadmin-mailbox-postcreation.sh trunk/ADDITIONS/postfixadmin-mailbox-postdeletion.sh trunk/ADDITIONS/quota_usage.pl trunk/ADDITIONS/squirrelmail-plugin/INSTALL trunk/ADDITIONS/squirrelmail-plugin/LICENSE.txt trunk/ADDITIONS/squirrelmail-plugin/README trunk/ADDITIONS/squirrelmail-plugin/common.php trunk/ADDITIONS/squirrelmail-plugin/config.php.sample trunk/ADDITIONS/squirrelmail-plugin/debian/README.Debian trunk/ADDITIONS/squirrelmail-plugin/debian/changelog trunk/ADDITIONS/squirrelmail-plugin/debian/conffiles trunk/ADDITIONS/squirrelmail-plugin/debian/control trunk/ADDITIONS/squirrelmail-plugin/debian/copyright trunk/ADDITIONS/squirrelmail-plugin/debian/docs trunk/ADDITIONS/squirrelmail-plugin/debian/files trunk/ADDITIONS/squirrelmail-plugin/debian/postfixadmin-squirrelmail.dirs trunk/ADDITIONS/squirrelmail-plugin/debian/postinst trunk/ADDITIONS/squirrelmail-plugin/debian/rules trunk/ADDITIONS/squirrelmail-plugin/functions.inc.php trunk/ADDITIONS/squirrelmail-plugin/index.php trunk/ADDITIONS/squirrelmail-plugin/locale/build.sh trunk/ADDITIONS/squirrelmail-plugin/locale/cs_CZ/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/cs_CZ/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/da_DK/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/da_DK/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/de_DE/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/de_DE/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/hu_HU/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/hu_HU/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/it_IT/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/nl_NL/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/nl_NL/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/pl_PL/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/pl_PL/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/locale/pt_BR/LC_MESSAGES/postfixadmin.mo trunk/ADDITIONS/squirrelmail-plugin/locale/pt_BR/LC_MESSAGES/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/po/postfixadmin.po trunk/ADDITIONS/squirrelmail-plugin/postfixadmin_changepass.php trunk/ADDITIONS/squirrelmail-plugin/postfixadmin_forward.php trunk/ADDITIONS/squirrelmail-plugin/postfixadmin_vacation.php trunk/ADDITIONS/squirrelmail-plugin/setup.php trunk/ADDITIONS/squirrelmail-plugin/version trunk/ADDITIONS/virtualmaildel.php trunk/CHANGELOG.TXT trunk/DOCUMENTS/BACKUP_MX.txt trunk/DOCUMENTS/DOVECOT.txt trunk/DOCUMENTS/FAQ.txt trunk/DOCUMENTS/HORDE.txt trunk/DOCUMENTS/LANGUAGE.txt trunk/DOCUMENTS/POSTFIXADMIN.txt trunk/DOCUMENTS/POSTFIX_CONF.txt trunk/DOCUMENTS/SECURITY.txt trunk/DOCUMENTS/SUPERADMIN.txt trunk/DOCUMENTS/UPGRADE.txt trunk/DOCUMENTS/screenshots/README.txt trunk/DOCUMENTS/screenshots/postfixadmin-admin-create-alias.jpg trunk/DOCUMENTS/screenshots/postfixadmin-admin-create-domain.jpg trunk/DOCUMENTS/screenshots/postfixadmin-admin-create-mailbox.jpg trunk/DOCUMENTS/screenshots/postfixadmin-admin-domain-list.jpg trunk/DOCUMENTS/screenshots/postfixadmin-admin-virtual-list.jpg trunk/DOCUMENTS/screenshots/postfixadmin-inital-welcome.jpg trunk/DOCUMENTS/screenshots/postfixadmin-mail-admin-login.jpg trunk/DOCUMENTS/screenshots/postfixadmin-user-change-forward.jpg trunk/DOCUMENTS/screenshots/postfixadmin-user-overview.jpg trunk/DOCUMENTS/screenshots/postfixadmin-user-vacation.jpg trunk/GPL-LICENSE.TXT trunk/INSTALL.TXT trunk/LICENSE.TXT trunk/README.moved_to_github trunk/VIRTUAL_VACATION/FILTER_README trunk/VIRTUAL_VACATION/INSTALL.TXT trunk/VIRTUAL_VACATION/index.php trunk/VIRTUAL_VACATION/tests/asterisk-email.txt trunk/VIRTUAL_VACATION/tests/facebook.txt trunk/VIRTUAL_VACATION/tests/mail-myself.txt trunk/VIRTUAL_VACATION/tests/mailing-list.txt trunk/VIRTUAL_VACATION/tests/spam.txt trunk/VIRTUAL_VACATION/tests/teodor-smtp-envelope-headers.txt trunk/VIRTUAL_VACATION/tests/test-email.txt trunk/VIRTUAL_VACATION/tests/test.sh trunk/VIRTUAL_VACATION/vacation.pl trunk/backup.php trunk/broadcast-message.php trunk/calendar.js trunk/common.php trunk/config.inc.php trunk/configs/menu.conf trunk/css/calendar.css trunk/css/default.css trunk/debian/README.Debian trunk/debian/README.source trunk/debian/README.txt trunk/debian/TODO trunk/debian/apache/postfixadmin.conf trunk/debian/changelog trunk/debian/compat trunk/debian/control trunk/debian/copyright trunk/debian/lighttpd/90-postfixadmin.conf trunk/debian/patches/0001-db_credentials.patch trunk/debian/patches/series trunk/debian/postfixadmin.apache2 trunk/debian/postfixadmin.config trunk/debian/postfixadmin.dirs trunk/debian/postfixadmin.docs trunk/debian/postfixadmin.examples trunk/debian/postfixadmin.install trunk/debian/postfixadmin.links trunk/debian/postfixadmin.maintscript trunk/debian/postfixadmin.postinst trunk/debian/postfixadmin.postrm trunk/debian/postfixadmin.prerm trunk/debian/rules trunk/debian/source/format trunk/debian/stamp-patched trunk/debian/watch trunk/delete.php trunk/edit.php trunk/editactive.php trunk/functions.inc.php trunk/images/arrow-l.png trunk/images/arrow-r.png trunk/images/arrow-u.png trunk/images/calendar/cal.gif trunk/images/calendar/next_mon.gif trunk/images/calendar/next_year.gif trunk/images/calendar/no_cal.gif trunk/images/calendar/pixel.gif trunk/images/calendar/prev_mon.gif trunk/images/calendar/prev_year.gif trunk/images/calendar/shade_bl.png trunk/images/calendar/shade_bm.png trunk/images/calendar/shade_br.png trunk/images/calendar/shade_mr.png trunk/images/calendar/shade_tr.png trunk/images/index.php trunk/images/logo-default.png trunk/images/mail_bg.gif trunk/images/postbox.png trunk/images/postfixadmin.png trunk/images/postfixadmin2.png trunk/images/postfixadmin2.xcf trunk/images/quota-colors.png trunk/index.php trunk/languages/bg.lang trunk/languages/ca.lang trunk/languages/cn.lang trunk/languages/cs.lang trunk/languages/da.lang trunk/languages/de.lang trunk/languages/en.lang trunk/languages/es.lang trunk/languages/et.lang trunk/languages/eu.lang trunk/languages/fi.lang trunk/languages/fo.lang trunk/languages/fr.lang trunk/languages/hr.lang trunk/languages/hu.lang trunk/languages/index.php trunk/languages/is.lang trunk/languages/it.lang trunk/languages/ja.lang trunk/languages/language-update.sh trunk/languages/language.php trunk/languages/lt.lang trunk/languages/mk.lang trunk/languages/nb.lang trunk/languages/nl.lang trunk/languages/nn.lang trunk/languages/pl.lang trunk/languages/pt-br.lang trunk/languages/ro.lang trunk/languages/ru.lang trunk/languages/sk.lang trunk/languages/sl.lang trunk/languages/sv.lang trunk/languages/tr.lang trunk/languages/tw.lang trunk/list-virtual.php trunk/list.php trunk/login.php trunk/main.php trunk/model/AdminHandler.php trunk/model/AdminpasswordHandler.php trunk/model/AliasHandler.php trunk/model/AliasdomainHandler.php trunk/model/CliDelete.php trunk/model/CliEdit.php trunk/model/CliHelp.php trunk/model/CliScheme.php trunk/model/CliView.php trunk/model/Config.php trunk/model/DomainHandler.php trunk/model/FetchmailHandler.php trunk/model/MailboxHandler.php trunk/model/PFAHandler.php trunk/model/VacationHandler.php trunk/scripts/postfixadmin-cli trunk/scripts/postfixadmin-cli.php trunk/scripts/shells/mailbox.php trunk/scripts/shells/shell.php trunk/scripts/snippets/crypt.php trunk/scripts/snippets/crypt_test.php trunk/scripts/snippets/dovecot_crypt.php trunk/sendmail.php trunk/setup.php trunk/smarty/COPYING.lib trunk/smarty/libs/Autoloader.php trunk/smarty/libs/Smarty.class.php trunk/smarty/libs/SmartyBC.class.php trunk/smarty/libs/debug.tpl trunk/smarty/libs/plugins/block.textformat.php trunk/smarty/libs/plugins/function.counter.php trunk/smarty/libs/plugins/function.cycle.php trunk/smarty/libs/plugins/function.fetch.php trunk/smarty/libs/plugins/function.html_checkboxes.php trunk/smarty/libs/plugins/function.html_image.php trunk/smarty/libs/plugins/function.html_options.php trunk/smarty/libs/plugins/function.html_radios.php trunk/smarty/libs/plugins/function.html_select_date.php trunk/smarty/libs/plugins/function.html_select_time.php trunk/smarty/libs/plugins/function.html_table.php trunk/smarty/libs/plugins/function.mailto.php trunk/smarty/libs/plugins/function.math.php trunk/smarty/libs/plugins/modifier.capitalize.php trunk/smarty/libs/plugins/modifier.date_format.php trunk/smarty/libs/plugins/modifier.debug_print_var.php trunk/smarty/libs/plugins/modifier.escape.php trunk/smarty/libs/plugins/modifier.needle.php trunk/smarty/libs/plugins/modifier.regex_replace.php trunk/smarty/libs/plugins/modifier.replace.php trunk/smarty/libs/plugins/modifier.spacify.php trunk/smarty/libs/plugins/modifier.truncate.php trunk/smarty/libs/plugins/modifiercompiler.cat.php trunk/smarty/libs/plugins/modifiercompiler.count_characters.php trunk/smarty/libs/plugins/modifiercompiler.count_paragraphs.php trunk/smarty/libs/plugins/modifiercompiler.count_sentences.php trunk/smarty/libs/plugins/modifiercompiler.count_words.php trunk/smarty/libs/plugins/modifiercompiler.default.php trunk/smarty/libs/plugins/modifiercompiler.escape.php trunk/smarty/libs/plugins/modifiercompiler.from_charset.php trunk/smarty/libs/plugins/modifiercompiler.indent.php trunk/smarty/libs/plugins/modifiercompiler.lower.php trunk/smarty/libs/plugins/modifiercompiler.noprint.php trunk/smarty/libs/plugins/modifiercompiler.string_format.php trunk/smarty/libs/plugins/modifiercompiler.strip.php trunk/smarty/libs/plugins/modifiercompiler.strip_tags.php trunk/smarty/libs/plugins/modifiercompiler.to_charset.php trunk/smarty/libs/plugins/modifiercompiler.unescape.php trunk/smarty/libs/plugins/modifiercompiler.upper.php trunk/smarty/libs/plugins/modifiercompiler.wordwrap.php trunk/smarty/libs/plugins/outputfilter.trimwhitespace.php trunk/smarty/libs/plugins/shared.escape_special_chars.php trunk/smarty/libs/plugins/shared.literal_compiler_param.php trunk/smarty/libs/plugins/shared.make_timestamp.php trunk/smarty/libs/plugins/shared.mb_str_replace.php trunk/smarty/libs/plugins/shared.mb_unicode.php trunk/smarty/libs/plugins/shared.mb_wordwrap.php trunk/smarty/libs/plugins/variablefilter.htmlspecialchars.php trunk/smarty/libs/sysplugins/smarty_cacheresource.php trunk/smarty/libs/sysplugins/smarty_cacheresource_custom.php trunk/smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php trunk/smarty/libs/sysplugins/smarty_data.php trunk/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php trunk/smarty/libs/sysplugins/smarty_internal_compile_append.php trunk/smarty/libs/sysplugins/smarty_internal_compile_assign.php trunk/smarty/libs/sysplugins/smarty_internal_compile_block.php trunk/smarty/libs/sysplugins/smarty_internal_compile_break.php trunk/smarty/libs/sysplugins/smarty_internal_compile_call.php trunk/smarty/libs/sysplugins/smarty_internal_compile_capture.php trunk/smarty/libs/sysplugins/smarty_internal_compile_config_load.php trunk/smarty/libs/sysplugins/smarty_internal_compile_continue.php trunk/smarty/libs/sysplugins/smarty_internal_compile_debug.php trunk/smarty/libs/sysplugins/smarty_internal_compile_eval.php trunk/smarty/libs/sysplugins/smarty_internal_compile_extends.php trunk/smarty/libs/sysplugins/smarty_internal_compile_for.php trunk/smarty/libs/sysplugins/smarty_internal_compile_foreach.php trunk/smarty/libs/sysplugins/smarty_internal_compile_function.php trunk/smarty/libs/sysplugins/smarty_internal_compile_if.php trunk/smarty/libs/sysplugins/smarty_internal_compile_include.php trunk/smarty/libs/sysplugins/smarty_internal_compile_include_php.php trunk/smarty/libs/sysplugins/smarty_internal_compile_insert.php trunk/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php trunk/smarty/libs/sysplugins/smarty_internal_compile_nocache.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_foreachsection.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_php.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php trunk/smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php trunk/smarty/libs/sysplugins/smarty_internal_compile_rdelim.php trunk/smarty/libs/sysplugins/smarty_internal_compile_section.php trunk/smarty/libs/sysplugins/smarty_internal_compile_setfilter.php trunk/smarty/libs/sysplugins/smarty_internal_compile_shared_inheritance.php trunk/smarty/libs/sysplugins/smarty_internal_compile_while.php trunk/smarty/libs/sysplugins/smarty_internal_compilebase.php trunk/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php trunk/smarty/libs/sysplugins/smarty_internal_configfilelexer.php trunk/smarty/libs/sysplugins/smarty_internal_configfileparser.php trunk/smarty/libs/sysplugins/smarty_internal_data.php trunk/smarty/libs/sysplugins/smarty_internal_debug.php trunk/smarty/libs/sysplugins/smarty_internal_extension_clear.php trunk/smarty/libs/sysplugins/smarty_internal_extension_handler.php trunk/smarty/libs/sysplugins/smarty_internal_method_addautoloadfilters.php trunk/smarty/libs/sysplugins/smarty_internal_method_adddefaultmodifiers.php trunk/smarty/libs/sysplugins/smarty_internal_method_append.php trunk/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php trunk/smarty/libs/sysplugins/smarty_internal_method_assignbyref.php trunk/smarty/libs/sysplugins/smarty_internal_method_assignglobal.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearassign.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearcache.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php trunk/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php trunk/smarty/libs/sysplugins/smarty_internal_method_compileallconfig.php trunk/smarty/libs/sysplugins/smarty_internal_method_compilealltemplates.php trunk/smarty/libs/sysplugins/smarty_internal_method_configload.php trunk/smarty/libs/sysplugins/smarty_internal_method_createdata.php trunk/smarty/libs/sysplugins/smarty_internal_method_getautoloadfilters.php trunk/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php trunk/smarty/libs/sysplugins/smarty_internal_method_getdebugtemplate.php trunk/smarty/libs/sysplugins/smarty_internal_method_getdefaultmodifiers.php trunk/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php trunk/smarty/libs/sysplugins/smarty_internal_method_getstreamvariable.php trunk/smarty/libs/sysplugins/smarty_internal_method_gettags.php trunk/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php trunk/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php trunk/smarty/libs/sysplugins/smarty_internal_method_loadplugin.php trunk/smarty/libs/sysplugins/smarty_internal_method_mustcompile.php trunk/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerclass.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerdefaultconfighandler.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerobject.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php trunk/smarty/libs/sysplugins/smarty_internal_method_registerresource.php trunk/smarty/libs/sysplugins/smarty_internal_method_setautoloadfilters.php trunk/smarty/libs/sysplugins/smarty_internal_method_setdebugtemplate.php trunk/smarty/libs/sysplugins/smarty_internal_method_setdefaultmodifiers.php trunk/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php trunk/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php trunk/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php trunk/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php trunk/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php trunk/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php trunk/smarty/libs/sysplugins/smarty_internal_nocache_insert.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_code.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_dq.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_dqcontent.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_tag.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_template.php trunk/smarty/libs/sysplugins/smarty_internal_parsetree_text.php trunk/smarty/libs/sysplugins/smarty_internal_resource_eval.php trunk/smarty/libs/sysplugins/smarty_internal_resource_extends.php trunk/smarty/libs/sysplugins/smarty_internal_resource_file.php trunk/smarty/libs/sysplugins/smarty_internal_resource_php.php trunk/smarty/libs/sysplugins/smarty_internal_resource_registered.php trunk/smarty/libs/sysplugins/smarty_internal_resource_stream.php trunk/smarty/libs/sysplugins/smarty_internal_resource_string.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_cachemodify.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_filterhandler.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_foreach.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_getincludepath.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_hhvm.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_subtemplate.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_tplfunction.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_updatecache.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_validatecompiled.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_var.php trunk/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php trunk/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php trunk/smarty/libs/sysplugins/smarty_internal_template.php trunk/smarty/libs/sysplugins/smarty_internal_templatebase.php trunk/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php trunk/smarty/libs/sysplugins/smarty_internal_templatelexer.php trunk/smarty/libs/sysplugins/smarty_internal_templateparser.php trunk/smarty/libs/sysplugins/smarty_internal_testinstall.php trunk/smarty/libs/sysplugins/smarty_internal_undefined.php trunk/smarty/libs/sysplugins/smarty_resource.php trunk/smarty/libs/sysplugins/smarty_resource_custom.php trunk/smarty/libs/sysplugins/smarty_resource_recompiled.php trunk/smarty/libs/sysplugins/smarty_resource_uncompiled.php trunk/smarty/libs/sysplugins/smarty_security.php trunk/smarty/libs/sysplugins/smarty_template_cached.php trunk/smarty/libs/sysplugins/smarty_template_compiled.php trunk/smarty/libs/sysplugins/smarty_template_config.php trunk/smarty/libs/sysplugins/smarty_template_resource_base.php trunk/smarty/libs/sysplugins/smarty_template_source.php trunk/smarty/libs/sysplugins/smarty_undefined_variable.php trunk/smarty/libs/sysplugins/smarty_variable.php trunk/smarty/libs/sysplugins/smartycompilerexception.php trunk/smarty/libs/sysplugins/smartyexception.php trunk/smarty/smarty_version trunk/smarty.inc.php trunk/templates/backupwarning.tpl trunk/templates/broadcast-message.tpl trunk/templates/editform.tpl trunk/templates/flash_error.tpl trunk/templates/footer.tpl trunk/templates/header.php trunk/templates/header.tpl trunk/templates/index.tpl trunk/templates/list-virtual.tpl trunk/templates/list-virtual_alias.tpl trunk/templates/list-virtual_alias_domain.tpl trunk/templates/list-virtual_mailbox.tpl trunk/templates/list.tpl trunk/templates/login.tpl trunk/templates/main.tpl trunk/templates/menu.tpl trunk/templates/message.tpl trunk/templates/password.tpl trunk/templates/sendmail.tpl trunk/templates/users_edit-alias.tpl trunk/templates/users_main.tpl trunk/templates/users_menu.tpl trunk/templates/vacation.tpl trunk/templates/viewlog.tpl trunk/tests/RemoteAliasTest.php trunk/tests/RemoteTest.php trunk/tests/RemoteUserTest.php trunk/tests/RemoteVacationTest.php trunk/tests/common.php trunk/upgrade.php trunk/users/calendar.js trunk/users/css/calendar.css trunk/users/css/default.css trunk/users/edit-alias.php trunk/users/images/calendar/cal.gif trunk/users/images/calendar/next_mon.gif trunk/users/images/calendar/next_year.gif trunk/users/images/calendar/no_cal.gif trunk/users/images/calendar/pixel.gif trunk/users/images/calendar/prev_mon.gif trunk/users/images/calendar/prev_year.gif trunk/users/images/calendar/shade_bl.png trunk/users/images/calendar/shade_bm.png trunk/users/images/calendar/shade_br.png trunk/users/images/calendar/shade_mr.png trunk/users/images/calendar/shade_tr.png trunk/users/index.php trunk/users/login.php trunk/users/main.php trunk/users/password.php trunk/users/vacation.php trunk/vacation.php trunk/variables.inc.php trunk/viewlog.php trunk/xmlrpc.php Deleted: trunk/ADDITIONS/README.TXT =================================================================== --- trunk/ADDITIONS/README.TXT 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/README.TXT 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,52 +0,0 @@ -# -# Postfix Admin ADDITIONS -# - -BEFORE YOU START ----------------- - -**** ALL THESE SCRIPTS ARE CREATED BY THIRD PARTIES **** - **** THEY ARE AS IS, USE AT YOUR OWN RISK! **** - -ADDITIONS ---------- - -In this directory you will find additional scripts that are build by others. - -- change_password.tgz -by George Vieira <george at citadelcomputer dot com dot au> -SquirrelMail plugin to change your passwor - -- cleanupdirs.pl -by jared bell <jared at beol dot net> -Displays a list of mailboxes that need to be deleted - -- mailbox_remover.pl -by Petr Znojemsky -Deletes all unused mailboxes - -- mkeveryone.pl -by Joshua Preston -Generate an 'everybody' alias for a domain. - -- pfa_maildir_cleanup.pl -by Stephen Fulton <sfulton at esoteric dot ca> -Deletes all unused mailboxes - -- postfixadmin-0.3-1.4.tar.gz -by Florian Kimmerl <info at spacekoeln dot de> -The Postfixadmin SquirrelMail plugin let users change their virtual alias, -vacation status/message and password. - -- virtualmaildel.php -by George Vieira <george at citadelcomputer dot com dot au> -Deletes all unused mailboxes - -- postfixadmin-mailbox-postcreation.sh -- postfixadmin-mailbox-postdeletion.sh -- postfixadmin-domain-postdeletion.sh -by Troels Arvin <tr...@ar...> -Examples of scripts relevant to the optional -$CONF['mailbox_postcreation_script'], -$CONF['mailbox_postdeletion_script'] and -$CONF['domain_postdeletion_script'] configuration options. Deleted: trunk/ADDITIONS/change_password.tgz =================================================================== (Binary files differ) Deleted: trunk/ADDITIONS/cleanupdirs.pl =================================================================== --- trunk/ADDITIONS/cleanupdirs.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cleanupdirs.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,112 +0,0 @@ -#!/usr/bin/perl -w - -################################################################################ -# -# cleanupdirs 1.2 by jared bell <ja...@be...> -# -# display/remove maildir & domains directory tree's not listed in the postfix -# mysql database. currently setup for use with postfixadmin, but can be -# adapted. edit settings where it says 'change settings as needed.' by default -# this program will display a list of directories which need deleted, nothing -# is actually deleted. to change this behavior, look into the command line -# arguments. -# -# command line arguments: -# --delete -# force automatic deletion of directories. instead of displaying a list -# of deleted directories, they will be logged in the specified logfile. -# --print -# display deleted directories as well as log them. only valid when -# '--delete' has been specified. -# -# settings: -# $root_path = "/home/vmail"; -# if maildir is '/home/vmail/domain.tld/user' then '/home/vmail' is the -# $root_path. if your maildirs are '/home/vmail/us...@do...d' then -# this program will need to be modified in order to work right. -# $logfile = "/var/log/removed_maildirs.log"; -# the logfile to use when $delete_old_dirs is set to 1 -# $db_* = "*"; -# sets the host, port, database, user and pass to your mysql server -# -# version history: -# 1.2 - removed uneeded settings. added '--print' command line argument -# 1.1 - added '--delete' command line argument -# 1.0 - initial release -# -################################################################################ - -use strict; -use DBI; -use File::Path; -use Getopt::Long; - -### change settings as needed, see notes above ################################# -our $root_path = "/home/vmail"; -our $logfile = "/var/log/removed_maildirs.log"; -our $db_hostname = "localhost"; -our $db_port = "3306"; # this script currently supports MySQL only -our $db_database = "postfix"; -our $db_username = "someuser"; -our $db_password = "somepass"; - -# instead of changing this script, you can put your settings to /etc/mail/postfixadmin/cleanupdirs.conf -# just use perl syntax there to fill the variables listed above (without the "our" keyword). Example: -# $db_username = 'mail'; -if (-f "/etc/mail/postfixadmin/cleanupdirs.conf") { - require "/etc/mail/postfixadmin/cleanupdirs.conf"; -} - -################################################################################ - -### begin program ############################################################## -my(@dirs_to_delete, $logfile_open); -my $delete_old_dirs = 0; # do not delete by default, use cmdline to change this -my $print_also = 0; # also print items when deleting, use cmdline to change this -GetOptions ('delete' => \$delete_old_dirs, 'print' => \$print_also); -my $conn_info = "DBI:mysql:database=$db_database;hostname=$db_hostname;port=$db_port"; -my $dbh = DBI->connect($conn_info, $db_username, $db_password) - or die $DBI::errstr; -opendir DOMAINDIR, $root_path - or die "Unable to access directory '$root_path' ($!)"; -foreach my $domain_dir (sort readdir DOMAINDIR) { - next if $domain_dir =~ /^\./; # skip dotted dirs - next if (! -d "$root_path/$domain_dir"); # skip everything that is not a directory - my $full_domain_dir = "$root_path/$domain_dir"; - opendir USERDIR, $full_domain_dir - or die "Unable to access directory '$full_domain_dir' ($!)"; - foreach my $user_dir (sort readdir USERDIR) { - next if $user_dir =~ /^\./; # skip dotted dirs - push @dirs_to_delete, "$full_domain_dir/$user_dir" - if &check_dir("SELECT maildir FROM mailbox WHERE maildir = ?", - "$domain_dir/$user_dir/"); # end slash needed for checkdir - } - push @dirs_to_delete, $full_domain_dir - if &check_dir("SELECT domain FROM domain WHERE domain = ?", $domain_dir); -} -closedir USERDIR; -closedir DOMAINDIR; -$dbh->disconnect; -if (@dirs_to_delete) { - foreach my $to_delete (@dirs_to_delete) { - if ($delete_old_dirs == 1) { - $logfile_open = open LOGFILE, ">> $logfile" - or die "Unable to append logfile '$logfile' ($!)" - unless $logfile_open; - rmtree $to_delete; - print LOGFILE localtime() . " Deleting directory '$to_delete'\n"; - print localtime() . " Deleting directory '$to_delete'\n" - if $print_also; - } else { - print localtime() . " Need to delete directory '$to_delete'\n"; - } - } -} -close LOGFILE if $logfile_open; -sub check_dir { - my($query, $dir) = @_; - my $sth = $dbh->prepare($query); - my $num_rows = $sth->execute($dir); - $sth->finish; - ($num_rows eq "0E0") ? 1 : 0; -} Deleted: trunk/ADDITIONS/convert-passwd-to-postfixadmin.pl =================================================================== --- trunk/ADDITIONS/convert-passwd-to-postfixadmin.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/convert-passwd-to-postfixadmin.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,40 +0,0 @@ -#!/usr/bin/perl -w -# -# Postfix Admin -# -# LICENSE -# This source file is subject to the GPL license that is bundled with -# this package in the file LICENSE.TXT. -# -# Further details on the project are available at http://postfixadmin.sf.net -# -# @version $Id$ -# @license GNU GPL v2 or later. -# -# -# Really crude attempt at taking all users from a local -# passwd file (/etc/shadow) and creating postfixadmin mailboxes for them. -# -# The script outputs some SQL, which you need to then insert into your database -# as appropriate. -# -# Notes: -# 1) Change $mydomain and $true as required. -# 2) Ideally it should parse /etc/passwd, or call the getpw()? function and -# populate someone's name if known. -# 3) There's plenty of room for improvement. -# -# Original author: David Goodwin <david at palepurple-co-uk> - 2007/10/05. -# -use strict; - -open(FH, '</etc/shadow') or die ('Cannot open shadow file; you need to be root - ' . $!); -my $mydomain = "test.com"; -my $true = "t"; # t for pgsql; 1 for mysql -foreach(<FH>) { - my ($username, $password) = split(':', $_); - next if $password eq '!'; - next if $password eq '*'; - my $maildir = "$username\@$mydomain/"; - print "insert into mailbox (username, password, domain, active, maildir) values ('$username', '$password', '$mydomain', $true, '$maildir');\n"; -} Deleted: trunk/ADDITIONS/cyrus/Changelog =================================================================== --- trunk/ADDITIONS/cyrus/Changelog 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/Changelog 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,8 +0,0 @@ - -Version 0.1 -- 26/10/2009 ---------------------------- - - * Public Release. - * Postcreation, Postdeletion and Postedit hooks. - - Deleted: trunk/ADDITIONS/cyrus/README-ES.txt =================================================================== --- trunk/ADDITIONS/cyrus/README-ES.txt 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/README-ES.txt 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,7 +0,0 @@ - -Configuración -------------- - - - Edita el fichero cyrus.conf y modifica las variables $cyrus_*. El usuario debe tener permisos sobre todas las cuentas. - - Edita los ficheros cyrus-*.pl y cambia la ruta de cyrus.conf (linea require '/path/to/cyrus.conf';) - Deleted: trunk/ADDITIONS/cyrus/README.txt =================================================================== --- trunk/ADDITIONS/cyrus/README.txt 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/README.txt 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,7 +0,0 @@ - -Configuration -------------- - - - Edit cyrus.conf and set $cyrus_* variables correctly. User must have permission over all accounts. - - Edit cyrus-*.pl and change path to cyrus.conf (require '/path/to/cyrus.conf'; line) - Deleted: trunk/ADDITIONS/cyrus/cyrus-mailbox-postcreation.pl =================================================================== --- trunk/ADDITIONS/cyrus/cyrus-mailbox-postcreation.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/cyrus-mailbox-postcreation.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,36 +0,0 @@ -#!/usr/bin/perl - -# Cyrus Mailbox creation -# -# Iñaki Rodriguez (iro...@vi... / iro...@ac...) -# -# LICENSE -# This source file is subject to the GPL license that is bundled with -# this package in the file LICENSE.TXT. -# -# (26/10/2009) - -use Cyrus::IMAP::Admin; -require '/etc/mail/postfixadmin/cyrus.conf'; -use strict; -use vars qw($cyrus_user $cyrus_password $cyrus_host); - -my %opts; - -my $mailbox = mailbox_name($ARGV[0]); - -my $client = Cyrus::IMAP::Admin->new($cyrus_host); -die_on_error($client); - -$opts{-user} = $cyrus_user; -$opts{-password} = $cyrus_password; - -$client->authenticate(%opts); -die_on_error($client); - -$client->create($mailbox); -die_on_error($client); - -$client->setquota($mailbox,'STORAGE',scalar $ARGV[3]) if ($ARGV[3] > 0); -die_on_error($client); - Deleted: trunk/ADDITIONS/cyrus/cyrus-mailbox-postdelete.pl =================================================================== --- trunk/ADDITIONS/cyrus/cyrus-mailbox-postdelete.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/cyrus-mailbox-postdelete.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,36 +0,0 @@ -#!/usr/bin/perl - -# Cyrus Mailbox deletion -# -# Iñaki Rodriguez (iro...@vi... / iro...@ac...) -# -# LICENSE -# This source file is subject to the GPL license that is bundled with -# this package in the file LICENSE.TXT. -# -# (26/10/2009) - -use Cyrus::IMAP::Admin; -require '/etc/mail/postfixadmin/cyrus.conf'; -use strict; -use vars qw($cyrus_user $cyrus_password $cyrus_host); - -my %opts; - -my $mailbox = mailbox_name($ARGV[0]); - -my $client = Cyrus::IMAP::Admin->new($cyrus_host); -die_on_error($client); - -$opts{-user} = $cyrus_user; -$opts{-password} = $cyrus_password; - -$client->authenticate(%opts); -die_on_error($client); - -$client->setacl($mailbox,$cyrus_user => 'all'); -die_on_error($client); - -$client->deletemailbox($mailbox); -die_on_error($client); - Deleted: trunk/ADDITIONS/cyrus/cyrus-mailbox-postedit.pl =================================================================== --- trunk/ADDITIONS/cyrus/cyrus-mailbox-postedit.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/cyrus-mailbox-postedit.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,33 +0,0 @@ -#!/usr/bin/perl - -# Cyrus Mailbox edition -# -# Iñaki Rodriguez (iro...@vi... / iro...@ac...) -# -# LICENSE -# This source file is subject to the GPL license that is bundled with -# this package in the file LICENSE.TXT. -# -# (26/10/2009) - -use Cyrus::IMAP::Admin; -require '/etc/mail/postfixadmin/cyrus.conf'; -use strict; -use vars qw($cyrus_user $cyrus_password $cyrus_host); - -my %opts; - -my $mailbox = mailbox_name($ARGV[0]); - -my $client = Cyrus::IMAP::Admin->new($cyrus_host); -die_on_error($client); - -$opts{-user} = $cyrus_user; -$opts{-password} = $cyrus_password; - -$client->authenticate(%opts); -die_on_error($client); - -$client->setquota($mailbox,'STORAGE',scalar $ARGV[3]) if ($ARGV[3] > 0); -die_on_error($client); - Deleted: trunk/ADDITIONS/cyrus/cyrus.conf =================================================================== --- trunk/ADDITIONS/cyrus/cyrus.conf 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/cyrus/cyrus.conf 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,31 +0,0 @@ -#!/usr/bin/perl - -# Config - -$cyrus_user = 'cyrus'; -$cyrus_password = 'cyruspass'; -$cyrus_host = 'localhost'; - -# unixhierarchysep => 1 (yes) / 0 (no) -$unixhierarchysep = 1; - -# Common routines - -sub mailbox_name { - my $mailbox = shift; - - if($unixhierarchysep) { - $mailbox = 'user/'.$ARGV[0]; - } else { - $mailbox = 'user.'.$ARGV[0]; - } - - return $mailbox; -} - -sub die_on_error { - my $cyradm = shift; - if($cyradm->error) { die $cyradm->error; } -} -1; - Deleted: trunk/ADDITIONS/delete-mailq-by-domain.pl =================================================================== --- trunk/ADDITIONS/delete-mailq-by-domain.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/delete-mailq-by-domain.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,77 +0,0 @@ -#!/usr/bin/perl - - -use strict; -use warnings; -use Getopt::Long; - - -$ENV{'PATH'} = "/sbin:/bin:/usr/sbin:/usr/bin"; - -my ($domain); -my $list = 0; - -(help()) if (!$ARGV[0]); -GetOptions ('l' => \$list, 'd=s' => \$domain) or (help()); - - -(list_queue()) if ($list == 1); - -(delete_queue()) if ($domain); - - -sub delete_queue { -my $ids = `postqueue -p`; -my @ids = split /\n/, $ids; - -for my $id (@ids) { - next if $id =~ /^[\s\(-]/; - chomp $id; - next unless $id; - $id =~ s/(.*?)\**\s.*/$1/; - #print "$id\n"; - my $match = `postcat -q $id | grep '$domain'`; - next unless $match; - #print "Deleting ID: $id\n"; - my $saida = `postsuper -d $id`; - print $saida; -} - -} - - - - -sub list_queue { -my %hash_mail = (); -my @queue = `postqueue -p`; -my($queue,$key,$total); - - -foreach $queue(@queue) { - chomp $queue; - if ( $queue =~ /^\s+.*\@(.*)/ ) { - $hash_mail{$1}++; - } -} -print"\nTOTAL\tTO\n"; -print"----- -----------------------------------------------------------------\n"; -foreach $key (reverse sort { $hash_mail{$a} <=> $hash_mail{$b}} keys -%hash_mail) { - $total += $hash_mail{$key}; - print"$hash_mail{$key} - $key\n"; -} -print"\n$total -> TOTAL QUEUE\n"; - -} - - -sub help { -print "Usage $0 -l To list a row of E-mail -Usage $0 -d domain.com To delete the mensgens the Domain\n"; -} - - - - Deleted: trunk/ADDITIONS/fetchmail.pl =================================================================== --- trunk/ADDITIONS/fetchmail.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/fetchmail.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,141 +0,0 @@ -#!/usr/bin/perl - -use DBI; -use MIME::Base64; -# use Data::Dumper; -use File::Temp qw/ mkstemp /; -use Sys::Syslog; -# require liblockfile-simple-perl -use LockFile::Simple qw(lock trylock unlock); - -###################################################################### -########## Change the following variables to fit your needs ########## - -# database settings - -# database backend - uncomment one of these -our $db_type = 'Pg'; -#my $db_type = 'mysql'; - -# host name -our $db_host="127.0.0.1"; -# database name -our $db_name="postfix"; -# database username -our $db_username="mail"; -# database password -our $db_password="CHANGE_ME!"; - -# instead of changing this script, you can put your settings to /etc/mail/postfixadmin/fetchmail.conf -# just use perl syntax there to fill the variables listed above (without the "our" keyword). Example: -# $db_username = 'mail'; -if (-f "/etc/mail/postfixadmin/fetchmail.conf") { - require "/etc/mail/postfixadmin/fetchmail.conf"; -} - - -#################### Don't change anything below! #################### -###################################################################### - -openlog("fetchmail-all", "pid", "mail"); - -sub log_and_die { - my($message) = @_; - syslog("err", $message); - die $message; -} - -# read options and arguments - -$configfile = "/etc/fetchmail-all/config"; - -@ARGS1 = @ARGV; - -while ($_ = shift @ARGS1) { - if (/^-/) { - if (/^--config$/) { - $configfile = shift @ARGS1 - } - } -} - -$run_dir="/var/run/fetchmail"; - -# use specified config file -if (-e $configfile) { - do $configfile; -} - -if($db_type eq "Pg" || $db_type eq "mysql") { - $dsn = "DBI:$db_type:database=$db_name;host=$db_host"; -} else { - log_and_die "unsupported db_type $db_type"; -} - -$lock_file=$run_dir . "/fetchmail-all.lock"; - -$lockmgr = LockFile::Simple->make(-autoclean => 1, -max => 1); -$lockmgr->lock($lock_file) || log_and_die "can't lock ${lock_file}"; - -# database connect -$dbh = DBI->connect($dsn, $db_username, $db_password) || log_and_die "cannot connect the database"; - -if($db_type eq "Pg") { - $sql_cond = "active = 't' AND date_part('epoch',now())-date_part('epoch',date)"; -} elsif($db_type eq "mysql") { - $sql_cond = "active = 1 AND unix_timestamp(now())-unix_timestamp(date)"; -} - -$sql = " - SELECT id,mailbox,src_server,src_auth,src_user,src_password,src_folder,fetchall,keep,protocol,mda,extra_options,usessl, sslcertck, sslcertpath, sslfingerprint - FROM fetchmail - WHERE $sql_cond > poll_time*60 - "; - -my (%config); -map{ - my ($id,$mailbox,$src_server,$src_auth,$src_user,$src_password,$src_folder,$fetchall,$keep,$protocol,$mda,$extra_options,$usessl,$sslcertck,$sslcertpath,$sslfingerprint)=@$_; - - syslog("info","fetch ${src_user}@${src_server} for ${mailbox}"); - - $cmd="user '${src_user}' there with password '".decode_base64($src_password)."'"; - $cmd.=" folder '${src_folder}'" if ($src_folder); - $cmd.=" mda ".$mda if ($mda); - -# $cmd.=" mda \"/usr/local/libexec/dovecot/deliver -m ${mailbox}\""; - $cmd.=" is '${mailbox}' here"; - - $cmd.=" keep" if ($keep); - $cmd.=" fetchall" if ($fetchall); - $cmd.=" ssl" if ($usessl); - $cmd.=" sslcertck" if($sslcertck); - $cmd.=" sslcertpath $sslcertpath" if ($sslcertck && $sslcertpath); - $cmd.=" sslfingerprint \"$sslfingerprint\"" if ($sslfingerprint); - $cmd.=" ".$extra_options if ($extra_options); - - $text=<<TXT; -set postmaster "postmaster" -set nobouncemail -set no spambounce -set properties "" -set syslog - -poll ${src_server} with proto ${protocol} - $cmd - -TXT - - ($file_handler, $filename) = mkstemp( "/tmp/fetchmail-all-XXXXX" ) or log_and_die "cannot open/create fetchmail temp file"; - print $file_handler $text; - close $file_handler; - - $ret=`/usr/bin/fetchmail -f $filename -i $run_dir/fetchmail.pid`; - - unlink $filename; - - $sql="UPDATE fetchmail SET returned_text=".$dbh->quote($ret).", date=now() WHERE id=".$id; - $dbh->do($sql); -}@{$dbh->selectall_arrayref($sql)}; - -$lockmgr->unlock($lock_file); -closelog(); Deleted: trunk/ADDITIONS/import_users_from_csv.py =================================================================== --- trunk/ADDITIONS/import_users_from_csv.py 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/import_users_from_csv.py 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,231 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Script takes a CSV list of users and does a 'bulk' insertion into mysql. -# -# Copyright (C) 2009 Simone Piccardi -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. -# - -import csv -import getopt -import sys -import re -import time -import random, string -from datetime import datetime -from crypt import crypt -try: - import MySQLdb -except ImportError ,e: - print 'Cannot import the needed MySQLdb module, you must install it' - print 'on Debian systems just use the command' - print ' apt-get install python-mysqldb' - -def usage(): - print "Usage: inspostadmusers.py [options] users.csv" - print " -h print this help" - print " -t test run, do not insert, just print" - print " -u DB user" - print " -p DB password" - print " -D DB name" - print " -H DB host" - print " -q Quota in Mb (0 => no limit)" - print " -n char in seed" - print " -d debug info on" - print " -A create default alias for each domain" - print - print "the users.csv file must contains the user list with a line" - print "for each user, first line should be a title line with at least" - print "the following column names: " - print " * user - user part of the email (like user in us...@do...)" - print " * password - cleartext password" - print " * domain - domain name (like 'domain.com')" - print " * name - full user name ('Name Surname')" - print - print "the 'name' column is optional, other columns will be ignored" - print - print "Known restrictions:" - print "* this script only works with MySQL" - print "* mailbox paths are hardcoded to domain/username/" - - -# option parsing -try: - opts, args = getopt.getopt(sys.argv[1:], 'u:p:d:D:H:htdA') - optval={} - for opt, val in opts: - if opt == "-h": - usage() - sys.exit(0) - else: - optval[opt]=val -except getopt.GetoptError: - usage() - sys.exit(2) - -# -# Setup DB connection -# -MYSQLDB="postfixadmin" -MYSQLUSER="postfixadmin" -MYSQLPASSWORD="" -MYSQLHOST="localhost" - -# settings by command line options -if optval.has_key('-u'): - MYSQLUSER = optval['-u'] -if optval.has_key('-p'): - MYSQLPASSWORD = optval['-p'] -if optval.has_key('-D'): - MYSQLDB = optval['-D'] -if optval.has_key('-H'): - MYSQLHOST = optval['-H'] - -if optval.has_key('-q'): - quota = optval['-q'] -else: - quota = 0 - -if optval.has_key('-n'): - seed_len = optval['-n'] -else: - seed_len = 8 - -# check arguments, only the user list file must be present -if len(args) !=1: - print 'Need just one argument' - usage() - sys.exit(1) - -# MySQL connection (skipped in test run) -if optval.has_key('-t'): - print "Test Run" -else: - try: - connection = MySQLdb.connect(host=MYSQLHOST, user=MYSQLUSER, - db=MYSQLDB, passwd=MYSQLPASSWORD) - except MySQLdb.MySQLError, e: - print "Database connection error" - print e - sys.exit(1) - - cursor = connection.cursor() - -# -# Main body -# -NOW = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - -# read and convert CSV data -lista = csv.DictReader(open(args[0])) - -def gen_seed(seed_len, chars): - return '$1$'+''.join([random.choice(chars) for _ in xrange(seed_len)])+'$' - -def insert_record(cursor,table,record): - columns = record.keys() - query = "INSERT INTO " + table + "(" + ','.join(columns) + ") VALUES (" + ','.join(len(columns)*['%s']) + ")" - try: - cursor.execute(query, record.values()) - return 0 - except MySQLdb.MySQLError, e: - print "Database insertion error" - print e - print "Record was:" - print record.values() - print "Query was:" - print query - -# defining default values for tables (mailbox, alias and domain) -mailbox = { - 'created': NOW, - 'modified': NOW, - 'active': 1, - 'quota': quota - } -aliases = { - 'created': NOW, - 'modified': NOW, - 'active': 1 - } -domain = { - 'description': "", - 'aliases': 0, - 'mailboxes': 0, - 'quota': 0, - 'transport': 'virtual', - 'backupmx': 0, - 'created': NOW, - 'modified': NOW, - 'active': 1 -} - -# list of default alias -def_alias = ['abuse','hostmaster','postmaster','webmaster'] - -domain_list = {} -chars = string.letters + string.digits - -# loop over the CSV -for row in lista: - # create domain if it does not exists - if domain_list.has_key(row["domain"]): - if optval.has_key('-d'): - print "Domain " + row["domain"] + "already exixts" - else: - domain_list[row["domain"]] = 1 - domain['domain'] = row["domain"] - if optval.has_key('-t'): - print "Inserting domain" - print domain - else: - insert_record(cursor,'domain',domain) - if optval.has_key('-A'): - for i in def_alias: - aliases['address']= i+'@'+row["domain"] - aliases['goto']= aliases['address'] - aliases['domain'] = row["domain"] - if optval.has_key('-t'): - print "Inserting alias" - print aliases - else: - insert_record(cursor,'alias',aliases) - - # build query data for mailbox table - mailbox['username']=row["user"]+'@'+row["domain"] - encpass=crypt(row["password"], gen_seed(seed_len,chars)) - mailbox['password'] = encpass - mailbox['name'] = row["name"] - mailbox['maildir'] = row["domain"]+'/'+row["user"]+'/' - mailbox['local_part'] =row["user"] - mailbox['domain'] = row["domain"] - - # build query data for alias table - aliases['address']= mailbox['username'] - aliases['goto']= mailbox['username'] - aliases['domain'] = row["domain"] - - # inserting data for mailbox (and relate alias) - if optval.has_key('-t'): - print "Inserting mailbox" - print mailbox - print aliases - else: - insert_record(cursor,'mailbox',mailbox) - insert_record(cursor,'alias',aliases) - - -sys.exit(0) Deleted: trunk/ADDITIONS/mailbox_remover.pl =================================================================== --- trunk/ADDITIONS/mailbox_remover.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/mailbox_remover.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,124 +0,0 @@ -#!/usr/bin/perl -# -# by Petr Znojemsky (c) 2004 -# Mailbox remover 0.1a 23/10/2004 - the very first version for MySQL -# removes maildirs from disk when they are not found in a database -# -# Added subdir support and pause --- Alan Batie 2007 -# Lists directories to be deleted then pauses for 5 seconds for chance to abort -# $Id$ -# -# All your maildirs or other directories could be accidentally removed. -# Use it at own risk. No warranties! - -use strict; -use DBI; -use File::Path; - -########## -# Set these variables according to your configuration - -# when mailboxes are removed, save their tarballs here -my $archdir="/var/archive/mailboxes"; - -# expected to support z option, tweak invocation if you want different -my $archcmd="/usr/bin/tar"; - -# trailing slash not needed -my $maildir_path="/var/mail"; -# find out if we need to check subdirs for mailboxes or just maildir_path -# $CONF['domain_path'] = 'YES'; -my $pfadmin_config="/usr/local/www/postfixadmin/config.inc.php"; - -# database information -my $host="localhost"; -my $port="3306"; -my $userid="dbuser"; -my $passwd="dbpw"; -my $db="dbname"; -############ - -my $connectionInfo="DBI:mysql:database=$db;$host:$port"; -# make connection to database -my $dbh = DBI->connect($connectionInfo,$userid,$passwd); -# prepare and execute query -my $query = "SELECT maildir FROM mailbox"; -my $sth = $dbh->prepare($query); -$sth->execute(); - -# assign fields to variables -my ($db_maildir, %db_maildirs); -$sth->bind_columns(\$db_maildir); - -# load up directory list -while($sth->fetch()) { - $db_maildirs{$db_maildir} = 1; -} - -$sth->finish(); -# disconnect from database -$dbh->disconnect; - -# -# find out if we need to check subdirs for mailboxes or just maildir_path -# $CONF['domain_path'] = 'YES'; -# -my $use_subdirs = 0; -open(CONFIG, "<$pfadmin_config") || die "Can't open '$pfadmin_config': $!\n"; -while(<CONFIG>) { - if (/\$CONF\['domain_path'\] *= *'([^']*)'/) { - $use_subdirs = ($1 =~ /yes/i); - } -} -close(CONFIG); - -# store maildir list to %directories -# key is path, value is username to use in archive file -my %directories; -opendir(DIR, $maildir_path) || die "Cannot open dir $maildir_path: $!\n"; -foreach my $name (readdir(DIR)) { - next if ($name eq '.' || $name eq '..' || ! -d "$maildir_path/$name"); - - if ($use_subdirs) { - opendir(SUBDIR, "$maildir_path/$name") || die "Cannot open dir $maildir_path/$name: $!\n"; - foreach my $subname (readdir(SUBDIR)) { - next if ($subname eq '.' || $subname eq '..' || ! -d "$maildir_path/$name/$subname"); - # db entry has trailing slash... - if (!defined($db_maildirs{"$name/$subname/"})) { - print "marking $maildir_path/$name/$subname for deletion.\n"; - $directories{"$name/$subname"} = "$name-$subname"; - } - } - closedir(SUBDIR); - } else { - # db entry has trailing slash... - if (!defined($db_maildirs{"$name/"})) { - print "marking $maildir_path/$name for deletion.\n"; - $directories{"$name"} = $name; - } - } -} -closedir(DIR); - -print "Ctrl-C in 5 seconds to abort before removal starts...\n"; -sleep 5; - -my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); -# yyyymmddhhmm -my $tstamp = sprintf("%04d%02d%02d%02d%02d", $year+1900, $mon+1, $mday, $hour, $min); - -# compare two arrays and erase maildirs not found in database -chdir $maildir_path || die "Can't change to maildir '$maildir_path': $!\n";; -my @args; -foreach my $maildir (keys(%directories)) { - my $archive = "$archdir/$directories{$maildir}-$tstamp.tgz"; - # quick permissions check - open(TOUCH, ">$archive") || die "Can't create archive file $archive: $!\n"; - close(TOUCH); - print "Archiving $maildir\n"; - @args = ($archcmd, "cvzf", $archive, $maildir); - system(@args) == 0 or die "Creating archive for $maildir failed: $?" - - rmtree($maildir); - print localtime() . " $maildir has been deleted.\n"; -} Deleted: trunk/ADDITIONS/mkeveryone.pl =================================================================== --- trunk/ADDITIONS/mkeveryone.pl 2017-07-02 12:47:04 UTC (rev 1905) +++ trunk/ADDITIONS/mkeveryone.pl 2018-01-12 20:20:46 UTC (rev 1906) @@ -1,167 +0,0 @@ -#!/usr/bin/perl -# -# Generate an 'everybody' alias for a domain. -# -# Create the file /etc/mkeveryone.conf -# chmod 640 /etc/mkeveryone.conf -# Example of mkeveryone.conf -# -# userid=postfix -# passwd=postfix -# db=postfix -# host=localhost -# port=3306 -# domain=domain.tld -# target=eve...@do...d -# ignore=vac...@do...d -# ignore=sp...@do...d -# ignore=new...@do...d -# ignore=ro...@do...d -# -# Save this file in, for example, /usr/local/sbin/mkeveryone.pl -# chmod 750 /usr/local/sbin/mkeveryone.pl -# -# Run the script! -# -use DBI; -use Time::Local; -use POSIX qw(EAGAIN); -use Fcntl; -use IO; -use IO::File; - -my $timeNow=time(); - -my $DATFILE = "/etc/mkeveryone.conf"; -my $FILEHANDLE = ""; - -# database information -my $db="postfix"; -my $host="localhost"; -my $port="3306"; -my $userid="postfix"; -my $passwd="postfix"; -my $domain="domain.tld"; -my $target="everyone@$domain"; -my @ignore; -my @dest; - -open (FILEHANDLE, $DATFILE); - -while ( $LINE = <FILEHANDLE> ) { - - if ( length $LINE > 0 ) { - chomp $LINE; - - $RETURNCODE = 0; - - SWITCH: { - - $LINE =~ /^ignore/i and do { - $LINE =~ s/^ignore// && $LINE =~ s/=// && $LINE =~ s/^ //g; - @ignore = (@ignore,$LINE); - }; - - $LINE =~ /^userid/i and do { - # Userid found."; - $LINE =~ s/^userid// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $userid = $LINE; - }; - - $LINE =~ /^passwd/i and do { - # Passwd found."; - $LINE =~ s/^passwd// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $passwd = $LINE; - }; - - $LINE =~ /^db/i and do { - # Database found."; - $LINE =~ s/^db// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $db = $LINE; - }; - - $LINE =~ /^host/i and do { - # Database host found."; - $LINE =~ s/^host// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $host = $LINE; - }; - - $LINE =~ /^port/i and do { - # Database host found."; - $LINE =~ s/^port// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $port = $LINE; - }; - - $LINE =~ /^target/i and do { - # Database host found."; - $LINE =~ s/^target// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $target = $LINE; - }; - - $LINE =~ /^domain/i and do { - # Database host found."; - $LINE =~ s/^domain// && $LINE =~ s/=// && $LINE =~ s/^ //g; - $domain = $LINE; - }; - } - } -} - -print "Connecting to database $db on $host:$port...\n\r"; - -print "Target email address is $target...\n\r"; - -my $connectionInfo="DBI:mysql:database=$db;$host:$port"; - -# make connection to database -$dbh = DBI->connect($connectionInfo,$userid,$passwd); - -# Delete the old message...prepare and execute query -$query = "SELECT username FROM mailbox WHERE domain='$domain';"; -$sth = $dbh->prepare($query); -$sth->execute(); - -# assign fields to variables -$sth->bind_columns(\$username); - -my $ign="false"; -while($sth->fetch()) { - $ign = "false"; - - foreach $ignored ( @ignore ) { - if ( $username eq $ignored ){ - $ign = "true"; - } - } - - if ( $ign eq "false" ) { - @dest = (@dest,$username); - } -} - -# Delete the old aliases...prepare and execute query -$query = "DELETE FROM alias WHERE address='$target';"; -$sth = $dbh->prepare($query); -$sth->execute(); - -print "Record deleted from the database.\r\n"; - -$sth->finish(); - -$goto = join(",",@dest); -print "$goto\n\r\n\r"; - - -# Insert the new message...prepare and execute query -$query = "INSERT INTO alias (address,goto,domain,created,modified) VALUES ('$target','$goto','$domain... [truncated message content] |