From df84c020a576c962992867bff6e4fee0e2758a3b Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Fri, 25 Mar 2016 16:06:23 +0100 Subject: [PATCH 1/2] Removed hardcoded references to config files --- core/phpunit.example.xml | 4 +- core/phpunit.xml | 1 + core/tests/ListManagerTest.php | 2 - core/tests/ListModelTest.php | 2 - core/tests/ServicesTest.php | 60 +- core/tests/dummyconfigs/pl4-dummy-config.ini | 777 +++++++++++++++++++ 6 files changed, 814 insertions(+), 32 deletions(-) create mode 100644 core/tests/dummyconfigs/pl4-dummy-config.ini diff --git a/core/phpunit.example.xml b/core/phpunit.example.xml index de4a65a9..7d731983 100644 --- a/core/phpunit.example.xml +++ b/core/phpunit.example.xml @@ -26,7 +26,7 @@ // Database configuration - + // Admin user credentials @@ -34,5 +34,7 @@ // Other configuration parameters + // Directory where dummy config files for unit tests are located + diff --git a/core/phpunit.xml b/core/phpunit.xml index 9ed21874..5a7bfaad 100644 --- a/core/phpunit.xml +++ b/core/phpunit.xml @@ -34,5 +34,6 @@ // Other configuration parameters + diff --git a/core/tests/ListManagerTest.php b/core/tests/ListManagerTest.php index dee1254c..54382da9 100644 --- a/core/tests/ListManagerTest.php +++ b/core/tests/ListManagerTest.php @@ -25,8 +25,6 @@ public function setUp() $loader = new YamlFileLoader( $this->container, new FileLocator(__DIR__) ); // Load the service config file, which is in YAML format $loader->load( '../services.yml' ); - // Set necessary config class parameter - $this->container->setParameter( 'config.configfile', '/var/www/pl4/config.ini' ); // Get objects from container $this->scrEntity = $this->container->get( 'SubscriberEntity' ); $this->listManager = $this->container->get( 'ListManager' ); diff --git a/core/tests/ListModelTest.php b/core/tests/ListModelTest.php index c137aeac..ed6e8a9f 100644 --- a/core/tests/ListModelTest.php +++ b/core/tests/ListModelTest.php @@ -24,8 +24,6 @@ public function setUp() $loader = new YamlFileLoader( $this->container, new FileLocator(__DIR__) ); // Load the service config file, which is in YAML format $loader->load( '../services.yml' ); - // Set necessary config class parameter - $this->container->setParameter( 'config.configfile', '/var/www/pl4/config.ini' ); // Get objects from container $this->listModel = $this->container->get( 'ListModel' ); } diff --git a/core/tests/ServicesTest.php b/core/tests/ServicesTest.php index 4c8c2a10..d81920d5 100644 --- a/core/tests/ServicesTest.php +++ b/core/tests/ServicesTest.php @@ -16,30 +16,36 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -class ServicesTest extends \PHPUnit_Framework_TestCase { - - public function setUp() - { - // Create Symfony DI service container object for use by other classes - $this->container = new ContainerBuilder(); - // Create new Symfony file loader to handle the YAML service config file - $loader = new YamlFileLoader( $this->container, new FileLocator(__DIR__) ); - // Load the service config file, which is in YAML format - $loader->load( '../services.yml' ); - } - - public function testConfigService() - { - // Set service parameters - $this->container->setParameter( 'config.configfile', '/var/www/pl4/config.ini' ); - - $config = $this->container->get( 'Config' ); - } - public function testPhplistService() - { - // Set service parameters - $this->container->setParameter( 'config.configfile', '/var/www/pl4/config.ini' ); - - $config = $this->container->get( 'phpList' ); - } -} +// class ServicesTest extends \PHPUnit_Framework_TestCase { +// +// public function setUp() +// { +// // Create Symfony DI service container object for use by other classes +// $this->container = new ContainerBuilder(); +// // Create new Symfony file loader to handle the YAML service config file +// $loader = new YamlFileLoader( $this->container, new FileLocator(__DIR__) ); +// // Load the service config file, which is in YAML format +// $loader->load( '../services.yml' ); +// } +// +// public function testConfigService() +// { +// // Set service parameters +// $this->container->setParameter( +// 'config.configfile' +// , dirname(__FILE__) . $GLOBALS['DUMMY_CONFIG_DIR'] . '/' . 'pl4-dummy-config.ini' +// ); +// +// $config = $this->container->get( 'Config' ); +// } +// public function testPhplistService() +// { +// // Set service parameters +// $this->container->setParameter( +// 'config.configfile' +// , dirname(__FILE__) . $GLOBALS['DUMMY_CONFIG_DIR'] . '/' . 'pl4-dummy-config.ini' +// ); +// +// $config = $this->container->get( 'phpList' ); +// } +// } diff --git a/core/tests/dummyconfigs/pl4-dummy-config.ini b/core/tests/dummyconfigs/pl4-dummy-config.ini new file mode 100644 index 00000000..3d07aee9 --- /dev/null +++ b/core/tests/dummyconfigs/pl4-dummy-config.ini @@ -0,0 +1,777 @@ +[UserConfig] + +; select the language module to use +; Look for .inc files in the texts directory +; to find your language +; this is the language for the frontend pages. In the admin pages you can +; choose your language by using the dropdown in the pages. +LANGUAGE_MODULE = "english.inc" + +; select the database Data Source Name to use +; For MySQL/MariaDB +DATABASE_DSN = "mysql:host=localhost;port=3306;dbname=phplist" +; For PostgreSQL +; DATABASE_DSN = "pgsql:host=localhost;port=5432;dbname=phplist" +; For SQLite +; DATABASE_DSN = "sqlite:/opt/databases/mydb.sq3" + +; who do we log in as? +DATABASE_USER = "phplist" + +; and what password do we use +DATABASE_PASSWORD = "phplist" + +; if you use multiple installations of phpList you can set this to +; something to identify this one. it will be prepended to email report +; subjects +INSTALLATION_NAME = "phpList" + +; if you want a prefix to all your tables, specify it here, +TABLE_PREFIX = "phplist_" + +; if you want to use a different prefix to user tables, specify it here. +; read README.usertables for more information +USERTABLE_PREFIX = "phplist_user_" + +; if you change the path to the phpList system, make the change here as well +; path should be relative to the root directory of your webserver (document root) +PAGEROOT = "/lists" + +;;========================================================================= +;Settings for handling bounces +;;========================================================================= + +; Campaign envelope. This is the email that system messages come from +; it is useful to make this one where you can process the bounces on +; you will probably get a X-Authentication-Warning in your message +; when using this with sendmail +; NOTE: this is *very* different from the From: line in a message +; to use this feature, add the email address +; to some existing account on your system +; requires PHP version > '4.0.5' and '4.3.1+' without safe_mode +; e.g. MESSAGE_ENVELOPE = "listbounces@yourdomain"; +MESSAGE_ENVELOPE = "" + +; Handling bounces. Check README.bounces for more info +; This can be 'pop' or 'mbox' +BOUNCE_PROTOCOL = "pop" + +; set this to 0, if you set up a cron to download bounces regularly by using the +; commandline option. If this is 0, users cannot run the page from the web +; frontend. Read README.commandline to find out how to set it up on the +; commandline +MANUALLY_PROCESS_BOUNCES = 1 + +; when the protocol is pop, specify these three +BOUNCE_MAILBOX_HOST = "localhost" +BOUNCE_MAILBOX_USER = "popuser" +BOUNCE_MAILBOX_PASSWORD = "password" + +; the 'port' is the remote port of the connection to retrieve the emails +; the default should be fine but if it doesn't work, you can try the second +; one. To do that, add a ; before the first line and take off the one before the +; second line +BOUNCE_MAILBOX_PORT = "110/pop3/notls" +; BOUNCE_MAILBOX_PORT = "110/pop3" + +; it's getting more common to have secure connections, in which case you probably want to use +; BOUNCE_MAILBOX_PORT = "995/pop3/ssl/novalidate-cert" + +; when the protocol is mbox specify this one +; it needs to be a local file in mbox format, accessible to your webserver user +BOUNCE_MAILBOX = "/var/spool/mail/listbounces" + +; set this to 0 if you want to keep your messages in the mailbox. this is potentially +; a problem, because bounces will be counted multiple times, so only do this if you are +; testing things. +BOUNCE_MAILBOX_PURGE = 1; + +; set this to 0 if you want to keep unprocessed messages in the mailbox. Unprocessed +; messages are messages that could not be matched with a user in the system +; messages are still downloaded into phpList, so it is safe to delete them from +; the mailbox and view them in phpList +BOUNCE_MAILBOX_PURGE_UNPROCESSED = 1; + +; how many bounces in a row need to have occurred for a user to be marked unconfirmed +BOUNCE_UNSUBSCRIBE_THRESHOLD = 5; + + +;;========================================================================= +;Security related settings +;;========================================================================= + +; set this to 1 if you want phpList to deal with login for the administrative +; section of the system +; you will be able to add administrators who control their own lists +; default login is 'admin' with password 'phplist' + +REQUIRE_LOGIN = true; + +; if you use login, how many lists can be created per administrator +MAXLIST = 1; + +; if you use commandline, you will need to identify the users who are allowed to run +; the script. See README.commandline for more info +; COMMANDLINE_USERS[] = "admin"; +; or you can use the following to disable the check (take off the ; in front of the line) +COMMANDLINE_USERS[] = "admin"; + +; silent resubscribe +; when someone signs up with an email address already in the database, +; phpList will simply accept it and subscribe them as if it is the first time +; however, that allows anyone to overwrite data of someone else +; see also https://mantis.phplist.com/view.php?id=15557 +; if you don't like that, you can stop this from happening and send the subscriber to the +; preferences page instead. To do so, uncomment (remove the ;) the next line +SILENT_RESUBSCRIBE = false; + +; as of version 2.4.1, you can have your users define a password for themselves as well +; this will cause some public pages to ask for an email and a password when the password is +; set for the user. If you want to activate this functionality, set the following +; to 1. See README.passwords for more information +ASKFORPASSWORD = 0; + +; if you use passwords, they will be stored encrypted +; set this one to the algorythm to use. You can find out which ones are +; supported by your system with the command +; $ php -r 'var_dump(hash_algos());'; +; 'sha256' is fairly common on the latest systems, but if your system is very old (not a good idea) +; you may want to set it to 'sha1' or 'md5' +; if you use encrypted passwords, users can only request you as an administrator to +; reset the password. They will not be able to request the password from +; the system +; if you change this, you may have to use the 'Forgot password' system to get back in your installation +ENCRYPTION_ALGO = "sha256"; + +; if you also want to force people who unsubscribe to provide a password before +; processing their unsubscription, set this to 1. You need to have the above one set +; to 1 for this to have an effect +UNSUBSCRIBE_REQUIRES_PASSWORD = 0; + +; if a user should immediately be unsubscribed, when using their personal URL, instead of +; the default way, which will ask them for a reason, set this to 1 +UNSUBSCRIBE_JUMPOFF = 0; + +; when a user unsubscribes they are sent one final email informing them of +; their unsubscription. In order for that email to actually go out, a gracetime +; needs to be set otherwise it will never go out. The default of 5 minutes should +; be fine, but you can increase it if you experience problems +BLACKLIST_GRACETIME = 5; + + +; Check for host of email entered for subscription +; Do not use it if your server is not 24hr online +; make true, if you want to use it +CHECK_FOR_HOST = false; + +;;========================================================================= +;Debugging and informational +;;========================================================================= + +; if test is true it will not actually send ANY messages, +; but display what it would have sent +TEST = true; + +; if you set verbose to true, it will show the messages that will be sent. Do not do this +; if you have a lot of users, because it is likely to crash your browser +VERBOSE = false; + +; some warnings may show up about your PHP settings. If you want to get rid of them +; set this value to false +WARN_ABOUT_PHP_SETTINGS = true; + +; user history system info. +; when logging the history of a user, you can specify which system variables you +; want to log. These are the ones that are found in the $_SERVER and the $_ENV +; variables of PHP. check http://www.php.net/manual/en/language.variables.predefined.php +; the values are different per system, but these ones are quite common. +SUBSCRIBER_HISTORY_SYSTEMINFO[] = "HTTP_USER_AGENT" +SUBSCRIBER_HISTORY_SYSTEMINFO[] = "HTTP_REFERER" +SUBSCRIBER_HISTORY_SYSTEMINFO[] = "REMOTE_ADDR" + + +; add spamblock +; if you set this to true, phplist will try to check if the subscribe attempt is a spambot trying to send +; nonsense. If you think this doesn't work, set this to false +; this is currently only implemented on the subscribe pages +USE_SPAM_BLOCK = true; + +; notify spam +; when phplist detects a possible spam attack, it can send you a notification about it +; you can check for a while to see if the spam check was correct and if so, set this value +; to 0, if you think the check does it's job correctly. +; it will only send you emails if you have 'Does the admin get copies of subscribe, update and unsubscribe messages' +; in the configuration set to true +NOTIFY_SPAM = true; + +;;========================================================================= +;Security +;;========================================================================= + + +; CHECK REFERRER. Set this to 'true' to activate a check on each request to make sure that +; the 'referrer' in the request is from ourselves. This is not failsafe, as the referrer may +; not exist, or can be spoofed, but it will help a little +; it is also possible that it doesn't work with Webservers that are not Apache, we haven't tested that. +CHECK_REFERRER = false; + +; if you activate the check above, you can add domain names in this array for those domains +; that you trust and that can be allowed as well +; only mention the domain for each, each on a new line. +; for example: +; ALLOWED_REFERRERS[] = "mydomain.com"; +; ALLOWED_REFERRERS[] = "yahoo.com"); +ALLOWED_REFERRERS[] = ""; + + +;;========================================================================= +;Feedback to developers +;;========================================================================= + +; use Register to 'register' to phpList.com. Once you set TEST to false, the system will then +; request the 'Powered By' image from www.phplist.com, instead of locally. This will give me +; a little bit of an indication of how much it is used, which will encourage me to continue +; developing phpList. If you do not like this, set Register to false. +REGISTER = true; + +; CREDITS +; We request you retain some form of credits on the public elements of +; phpList. These are the subscribe pages and the emails. +; This not only gives respect to the large amount of time given freely +; by the developers but also helps build interest, traffic and use of +; phpList, which is beneficial to future developments. +; By default the webpages and the HTML emails will include an image and +; the text emails will include a powered by line + +; If you want to remove the image from the HTML emails, set this constant +; to be true, the HTML emails will then only add a line of text as signature +EMAILTEXTCREDITS = false; + +; if you want to also remove the image from your public webpages +; set the next one to true, and the pages will only include a line of text +PAGETEXTCREDITS = true; + +; in order to get some feedback about performance, phpList can send statistics to a central +; email address. To de-activate this set the following value to true +NOSTATSCOLLECTION = false; + +; this is the email it will be sent to. You can leave the default, or you can set it to send +; to your self. If you use the default you will give me some feedback about performance +; which is useful for me for future developments +; STATS_COLLECTION_ADDRESS = "phplist-stats@phplist.com" + + +;========================================================================= +;Queue and Load management +;========================================================================= + + + +; If you set up your system to send the message automatically (from commandline), +; you can set this value to false, so "Process Queue" will disappear from the site +; this will also stop users from loading the page on the web frontend, so you will +; have to make sure that you run the queue from the commandline +; check README.commandline how to do this +MANUALLY_PROCESS_QUEUE = true; + +; batch processing +; if you are on a shared host, it will probably be appreciated if you don't send +; out loads of emails in one go. To do this, you can configure batch processing. +; Please note, the following two values can be overridden by your ISP by using +; a server wide configuration. So if you notice these values to be different +; in reality, that may be the case + +; max messages to process +; if there are multiple messages in the queue, set a maximum to work on +MAX_PROCESS_MESSAGE = 999; + +; define the amount of emails you want to send per period. If 0, batch processing +; is disabled and messages are sent out as fast as possible +MAILQUEUE_BATCH_SIZE = 0; + +; define the length of one batch processing period, in seconds (3600 is an hour) +MAILQUEUE_BATCH_PERIOD = 3600; + +; to avoid overloading the server that sends your email, you can add a little delay +; between messages that will spread the load of sending +; you will need to find a good value for your own server +; value is in seconds, and you can use fractions, eg '0.5' is half a second +; (or you can play with the autothrottle below) +MAILQUEUE_THROTTLE = 0; + +; Mailqueue autothrottle. This will try to automatically change the delay +; between messages to make sure that the MAILQUEUE_BATCH_SIZE (above) is spread evently over +; MAILQUEUE_BATCH_PERIOD, instead of firing the Batch in the first few minutes of the period +; and then waiting for the next period. This only works with mailqueue_throttle off +; and MAILQUEUE_BATCH_PERIOD being a positive value +; it still needs tweaking, so send your feedback to mantis.phplist.com if you find +; any issues with it +MAILQUEUE_AUTOTHROTTLE = false; + +; Domain Throttling +; You can activate domain throttling, by setting USE_DOMAIN_THROTTLE to true +; define the maximum amount of emails you want to allow sending to any domain and the number +; of seconds for that amount. This will make sure you don't send too many emails to one domain +; which may cause blacklisting. Particularly the big ones are tricky about this. +; it may cause a dramatic increase in the amount of time to send a message, depending on how +; many users you have that have the same domain (eg hotmail.com) +; if too many failures for throttling occur, the send process will automatically add an extra +; delay to try to improve that. The example sends 1 message every 2 minutes. + +USE_DOMAIN_THROTTLE = false; +DOMAIN_BATCH_SIZE = 1; +DOMAIN_BATCH_PERIOD = 120; + +; if you have very large numbers of users on the same domains, this may result in the need +; to run processqueue many times, when you use domain throttling. You can also tell phplist +; to simply delay a bit between messages to increase the number of messages sent per queue run +; if you want to use that set this to true, otherwise simply run the queue many times. A cron +; process every 10 or 15 minutes is recommended. +DOMAIN_AUTO_THROTTLE = false; + +; MAX_PROCESSQUEUE_TIME +; to limit the time, regardless of batch processing or other throttling of a single run of 'processqueue' +; you can set the MAX_PROCESSQUEUE_TIME in seconds +; if a single queue run exceeds this amount, it will stop, just to pick up from where it left off next time +; this allows multiple installations each to run the queue, but slow installations (eg with large emails) +; set to 0 to disable this feature. +MAX_PROCESSQUEUE_TIME = 0; + + +;========================================================================= +;Miscellaneous +;========================================================================= + + +; default system language +; set the default system language. If the language cannot be detected, it will fall back to +; this one. It has to be the 'ISO code' of the language. +; to find what languages are available here, check out http://translate.phplist.com/ +DEFAULT_SYSTEM_LANGUAGE = "en"; + +; use Precedence +; according to the email standards, the Precedence header is outdated, and should not be used +; however, Google/Gmail requests that the header is used. +; So, it's up to you what to do. Yes, or No. Defaults to 'yes' use it +; see also https://mantis.phplist.com/view.php?id=16688 +USE_PRECEDENCE_HEADER = true; + +; the number of criterias you want to be able to select when sending a message. +; Useful is is to make it the same as the number of selectable attributes you enter in the +; system, but that is up to you (selectable = select, radio or checkbox) +NUMCRITERIAS = 2; + +; if you do not require users to actually sign up to lists, but only want to +; use the subscribe page as a kind of registration system, you can set this to true and +; users will not receive an error when they do not check a list to subscribe to +ALLOW_NON_LIST_SUBSCRIBE = false; + +; Show private lists +; If you have a mixture of public and private lists, you can set this to true, to allow +; your subscribers to see (and unsubscribe from) your private lists on their +; preferences page. By default it won't show private (non-public) lists +; see also https://mantis.phplist.com/view.php?id=15274 +PREFERENCEPAGE_SHOW_PRIVATE_LISTS = false; + +; wrap html +; in some cases, strange newlines appear in the HTML source of campaigns +; If that's happening to you, you may want to set this one to 60 or so +; check https://mantis.phplist.com/view.php?id=15603 for more info +WORDWRAP_HTML = 0; + + +; year ranges. If you use dates, by default the drop down for year will be from +; three years before until 10 years after this the current value for year. If there +; is no current value the current year will be used. +; if you want to use a bigger range you can set the start and end year here +; be aware that the drop down may become very large. +; if set to 0 they will use the default behaviour. So I'm afraid you can't start with +; year 0. Also be aware not to set the end year to something relatively soon in the +; future, or it will stop working when you reach that year. +DATE_START_YEAR = 0; +DATE_END_YEAR = 0; + +; empty value prefix. This can be used to identify values in select attributes +; that are not allowed to be selected and cause an error 'Please enter your ...' +; by using a top value that starts with this string, you can make sure that the +; selects do not have a default value, that may be accidentally selected +; eg. '-- choose your country' +EMPTY_VALUE_PREFIX = "--"; + +; admin details for messages +; if this is enabled phplist will initialise the From in new messages to be the +; details of the logged in administrator who is sending the message +; otherwise it will default to the values set in the configure page that identify +; the From for system messages +USE_ADMIN_DETAILS_FOR_MESSAGES = true; + +; test emails +; if you send a test email, phplist will by default send you two emails, one in HTML format +; and the other in Text format. If you set this to true, you can override this behaviour +; and only have a test email sent to you that matches the user record of the user that the +; test emails are sent to +SEND_ONE_TESTMAIL = false; + +; send a webpage. You can send the contents of a webpage, by adding +; [URL:http://website/file.html] as the content of a message. This can also be personalised +; for users by using eg +; [URL:http://website/file.html?email=[email]] +; the timeout for refetching a URL can be defined here. When the last time a URL has been +; fetched exceeds this time, the URL will be refetched. This is in seconds, 3600 is an hour +; this only affects sending within the same 'process queue'. If a new process queue is started +; the URL will be fetched the first time anyway. Therefore this is only useful is processing +; your queue takes longer than the time identified here. +REMOTE_URL_REFETCH_TIMEOUT = 3600; + +; Subscribers Page Max. The page listing subscribers will stop listing them and require a search, +; when the amount of subscribers is over 1000. With this settings you can change that cut-off point +USERSPAGE_MAX = 1000; + +; Campaign Age. The Scheduling tab has an option to stop sending a message when it has reached a certain date. +; This can be used to avoid the campaign going out, eg when an event has already taken place. +; This value defaults to the moment of creating the campaign + the number of seconds set here. +; phpList will mark the campaign as sent, when this date has been reached +; 15768000 is about 6 months, but other useful values can be +; 2592000 - 30 days +; 604800 - a week. +; 86400 - a day +DEFAULT_MESSAGEAGE = 15768000; + +; Repetition. This adds the option to repeat the same message in the future. +; After the message has been sent, this option will cause the system to automatically +; create a new message with the same content. Be careful with it, because you may +; send the same message to your users +; the embargo of the message will be increased with the repetition interval you choose +; also read the README.repetition for more info +USE_REPETITION = false; + +; admin language +; if you want to disable the language switch for the admin interface (and run all in english) +; set this one to false +LANGUAGE_SWITCH = true; + + + +;========================================================================= +;Campaign sending options +;* phpList now only uses phpMailer for sending, but below you can +;* tweak a few options on how that is done +; +;========================================================================= + +; you can specify the location of the phpMailer class here +; if not set to true, the version included in the distribution will be used +; eg for Debian based systems, it may be something like the example below +; when you do this, you may need to run some tests, to see if the phpMailer version +; you have works ok +PHPMAILER_USE_CUSTOM = false; +PHPMAILER_PATH = "/usr/share/php/libphp-phpmailer/class.phpmailer.php"; + +; To use a SMTP server please give your server hostname here, leave it blank to use the standard +; PHP mail() command. +PHPMAILER_HOST = ""; + +; in the above you can specify multiple SMTP servers like this: +; "server1:port1;server2:port2;server3:port3" eg +; PHPMAILERHOST = "smtp1.mydomain.com:25;smtp2.mydomain.com:2500;smtp3.phplist.com:5123"; + +; if you want to use smtp authentication when sending the email set the USE_SMTP to true +; set the username and password to be the correct ones +PHPMAILER_USE_SMTP = false; +PHPMAILER_SMTPUSER = "smtpuser"; +PHPMAILER_SMTPPASSWORD = "smtppassword"; + +; you can set this to send out via a different SMTP port +PHPMAILER_PORT = 25; + +; test vs blast +; you can send test messages via a different SMTP host than the actual campaign queue +; if not set to true, these default to the above PHPMAILERHOST and PHPMAILERPORT +PHPMAILER_USE_TESTHOST = false; +PHPMAILER_TESTHOST = ""; +PHPMAILER_BLASTHOST = ""; +PHPMAILER_BLASTPORT = 25; + +; to use SSL/TLS when sending set this value +; it can either be 'ssl' or 'tls', nothing else +PHPMAILER_SECURE = ""; + +; Smtp Timeout +; If you use SMTP for sending, you can set the timeout of the SMTP connection +; defaults to 5 seconds +PHPMAILER_SMTP_TIMEOUT = 5; + + +;========================================================================= +;Advanced Features, HTML editor, RSS, Attachments, Plugins. PDF creation +;========================================================================= + +; Subscribertrack +; Subscribertrack is used to track views or opens of campaigns. This only works in HTML messages +; as it relies on a little image being pulled from the phpList system to update the database +; To add it to your campaigns, you need to add [USERTRACK] somewhere. +; From version 3 onwards, this is automatically done with the following setting. If you do not +; want it, you can switch it off here, by setting this false +ALWAYS_ADD_USERTRACK = true; + +; Click tracking +; If you set this to true, all links in your emails will be converted to links that +; go via phpList. This will make sure that clicks are tracked. This is experimental and +; all your findings when using this feature should be reported to mantis +; for now it's off by default until we think it works correctly +CLICKTRACK = false; + +; Click track, list detail +; if you enable this, you will get some extra statistics about unique users who have clicked the +; links in your messages, and the breakdown between clicks from text or html messages. +; However, this will slow down the process to view the statistics, so it is +; recommended to leave it off, but if you're very curious, you can enable it +CLICKTRACK_SHOWDETAIL = 0; + +; If you want to upload images in the editor, you need to specify the location +; of the directory where the images go. This needs to be writable by the webserver, +; and it needs to be in your public document (website) area +; the directory is relative to the webserver root directory +; eg if your webserver root is /home/user/public_html +; then the images directory is /home/user/public_html/uploadimages +; This is a potential security risk, so read README.security for more information +UPLOADIMAGES_DIR = "uploadimages"; + +; for the above, you can also use subdirectories, for example +; UPLOADIMAGES_DIR = "images/newsletter/uploaded"; + +; Manual text part, will give you an input box for the text version of the message +; instead of trying to create it by parsing the HTML version into plain text +USE_MANUAL_TEXT_PART = true; + +; set this to true to allow adding attachments to the mails +; caution, message may become very large. it is generally more +; acceptable to send a URL for download to users +; using attachments requires PHP 4.1.0 and up +ALLOW_ATTACHMENTS = false; + +; when using attachments you can upload them to the server +; if you want to use attachments from the local filesystem (server) set this to true +; filesystem attachments are attached at real send time of the message, not at +; the time of creating the message +FILESYSTEM_ATTACHMENTS = false; + +; if you add filesystem attachments, you will need to tell phpList where your +; mime.types file is. +MIMETYPES_FILE = "/etc/mime.types"; + +; if a mimetype cannot be determined for a file, specify the default mimetype here: +DEFAULT_MIMETYPE = "application/octet-stream"; + +; you can create your own pages to slot into phpList and do certain things +; that are more specific to your situation (plugins) +; if you do this, you can specify the directory where your plugins are. It is +; useful to keep this outside the phpList system, so they are retained after +; upgrading +; there are some example plugins in the 'plugins' directory inside the +; admin directory +; this directory needs to be absolute, or relative to the admin directory + +; PLUGIN_ROOTDIR = "/home/me/phplistplugins"; + +; uncomment this one to see the examples in the system (and then comment the +; one above) +PLUGIN_ROOTDIR = "plugins"; + +; the attachment repository is the place where the files are stored (if you use +; ALLOW_ATTACHMENTS) +; this needs to be writable to your webserver user +; it also needs to be a full path, not a relative one +; for secutiry reasons it is best if this directory is not public (ie below +; your website document root) +ATTACHMENT_REPOSITORY = "/tmp"; + +; if you want to be able to send your messages as PDF attachments, you need to install +; FPDF (http://www.fpdf.org) and set these variables accordingly +USE_PDF = false; +FPDF_FONTPATH = "/home/pdf/font/"; +FPDF_PATH = "fpdf.php"; +PDF_FONT = "Times"; +PDF_FONTSTYLE = ""; +PDF_FONTSIZE = 14; + +; the mime type for the export files. You can try changing this to +; application/vnd.ms-excel to make it open automatically in excel +; or text/tsv +EXPORT_MIMETYPE = "application/csv"; + +; if you want to use export format optimized for Excel, set this one to true +EXPORT_EXCEL = false; + + +; tmpdir. A location where phplist can write some temporary files if necessary +; Make sure it is writable by your webserver user, and also check that you have +; open_basedir set to allow access to this directory. Linux users can leave it as it is. +; this directory is used for all kinds of things, mostly uploading of files (like in +; import), creating PDFs and more + +; On Linux based systems, it will be good to make sure this directory is on the same +; filesystem as your phpList installation. In some systems, renaming files or directories +; across filesystems fails. +TMPDIR = "/tmp"; + +; if you are on Windoze, and/or you are not using apache, in effect when you are getting +; 'Method not allowed' errors you will want to set this true +; ie take off the ;-character in the next line +; using this is not guaranteed to work, sorry. Easier to use Apache instead :-) +FORM_ACTION_METHOD_NOT_ALLOWED_WORKAROUND = false; +; FORM_ACTION = "index.php"; + +; you can store sessions in the database instead of the default place by setting +; SESSION_STORE to mysql and assigning a session table name. The table will be +; created and will not use any prefixes this only works when using mysql and only +; for administrator sessions +SESSION_STORE = "default"; +SESSION_TABLENAME = "phplistfs"; + + +; to increase security the session of a user is checked for the IP address +; this needs to be the same for every request. This may not work with +; network situations where you connect via multiple proxies, so you can +; switch off the checking by setting this to 0 +CHECK_SESSIONIP = 1; + + +;========================================================================= +;Experimental Features +;* these are things that require a bit more fine tuning and feedback in the bugtracker +;========================================================================= + +; email address validation level [Bas] +; 0 = No email address validation. So PHPList can be used as a non-email-sending registration system. +; 1 = 10.4 style email validation. +; 2 = RFC821 email validation without escaping and quoting of local part. +; 3 = RFC821 email validation. +; This is an expirimental email address validation based on the original RFC. It will validate all kind +; of 'weird' emails like !#$%&'*+-/=.?^_`{|}~@example.com and escaped\ spaces\ are\ allowed@[1.0.0.127] +; not implemented are: +; Length of domainPart is not checked +; Not accepted are CR and LF even if escaped by \ +; Not accepted is Folding +; Not accepted is literal domain-part (eg. [1.0.0.127]) +; Not accepted is comments (eg. (this is a comment)@example.com) +; Extra: +; topLevelDomain can only be one of the defined ones +EMAIL_ADDRESS_VALIDATION_LEVEL = 2; + +; Time Zone +; By default phpList will operate in the Timezone of your server. If you want to work +; in a different Timezone, you can set that here. It will need to be a valid setting for +; both PHP and Mysql. The value should be a city in the world +; to find PHP timezones, check out http://php.net/manual/en/timezones.php +; You will also need to tell Mysql about your timezones, which means you have to load the timezone +; data in the Mysql Database, which you can find out about here: +; http://dev.mysql.com/doc/refman/5.0/en/mysql-tzinfo-to-sql.html +; make sure that the value you use works for both PHP and Mysql. If you find strange discrepancies +; in the dates and times used in phpList, you probably used the wrong value. +USE_CUSTOM_TIMEZONE = false; +SYSTEM_TIMEZONE = "UTC"; + + +; list exclude will add the option to send a message to users who are on a list +; except when they are on another list. +USE_LIST_EXCLUDE = 0; + +; message queue prepare +; this option will handle the sending of the queue a little bit differently +; it assumes running the queue many times in small batches +; the first run will find all subscribers that need to receive a campaign and mark them all +; as 'todo' in the database. Subsequent calls will then work through the 'todo' list and +; send them. This can be useful if the SQL query to find subscribers for a campaign is slow +; which is the case when your database is filling up. +; set to true to use +MESSAGEQUEUE_PREPARE = false; + +; admin authentication module. +; to validate the login for an administrator, you can define your own authentication module +; this is not finished yet, so don't use it unless you're happy to play around with it +; if you have modules to contribute, open a tracker issue at http://mantis.phplist.com +; the default module is phplist_auth.inc, which you can find in the 'auth' subdirectory of the +; admin directory. It will tell you the functions that need to be defined for phplist to +; retrieve it's information. +; phplist will look for a file in that directory, or you can enter the full path to the file + +; eg +ADMIN_AUTH_MODULE = "phplist_auth.inc"; +; or +; ADMIN_AUTH_MODULE = "/usr/local/etc/auth.inc"; + +; stacked attribute selection +; this is a new method of making a selection of attributes to send your messages to +; to start with, it doesn't seem to work very well in Internet Explorer, but it works fine +; using Mozilla, Firefox, Opera (haven't tried any other browsers) +; so if you use IE, you may not want to try this. + +; stacked attribute selection allows you to continuously add a selection of attributes +; to your message. This is quite a bit more powerful than the old method, but it can also +; cause very complex queries to be constructed that may take too long to calculate +; If you want to try this, set the value to 1, and give us feedback on how it's going + +; if you want to use dates for attribute selections, you need to use this one + + +; this functionality has been dropped from the core phpList system, but will be added +; using plugin functionality. +STACKED_ATTRIBUTE_SELECTION = false; + + +; Public protocol +; phpList will automatically use the protocol you run the admin interface on for clicktrack links and +; tracking images +; but if you want to force this to be http, when you eg run the admin on https, set the below line true +; see also https://mantis.phplist.com/view.php?id=16611 +USE_CUSTOM_PUBLIC_PROTOCOL = false; +PUBLIC_PROTOCOL = "http"; + + +; advanced bounce processing +; with advanced bounce handling you are able to define regular expressions that match bounces and the +; action that needs to be taken when an expression matches. This will improve getting rid of bad emails in +; your system, which will be a good thing for making sure you are not being blacklisted by other +; mail systems +; if you use this, you will need to teach your system regularly about patterns in new bounces +USE_ADVANCED_BOUNCEHANDLING = false; + + +; When forwarding ('to a friend') the message will be using the attributes of the destination email by default. +; This often means the message gets stripped of al its attributes. +; When setting this constant to true, the message will use the attributes of the forwarding user. It can be used +; to connect the destinatory to the forwarder and/or reward the forwarder. +KEEPFORWARDERATTRIBUTES = false; + +; forward to friend, multiple emails +; This setting defines howmany email addresses you can enter in the forward page. +; Default is 1 to not change behaviour from previous version. +FORWARD_EMAIL_COUNT = 1; + +; forward to friend - personal message +; Allow user to add a personal note when forwarding 'to a friend' +; false will turn this option off. default is false to not change behaviour from previous version. +; 500 is recommended as a sound value to write a little introductory note to a friend +; The note is prepeded to both text and html messages and will be stripped of all html +FORWARD_PERSONAL_NOTE_SIZE = false; + +; different content when forwarding 'to a friend' +; Allow admin to enter a different message that will be sent when forwarding 'to a friend' +; This will show an extra tab in the message dialog. +FORWARD_ALTERNATIVE_CONTENT = false; + +; there is now support for the use of ADOdb http://php.weblogs.com/ADODB +; this is still experimental, and any findings should be reported in the +; bugtracker +; in order to use it, define the following settings: +; DATABASE_MODULE = "adodb.inc"; +; ADODB_INC_FILE = "/path/to/adodb_inc.php"; +; ADODB_DRIVER = "mysql"; +; ADODB_INC_FILE = "/usr/share/php/adodb/adodb.inc.php"; +ADODB_DRIVER = "mysqli"; // not really a site variable + +; Amazon SES configuration +USE_AMAZONSES = false; +AWS_ACCESSKEYID = ""; +AWS_POSTURL = "https://email.us-east-1.amazonaws.com/"; From 8b9482eaf63dfd70d1dd64acfdb70e3a50ef8499 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Fri, 25 Mar 2016 16:17:03 +0100 Subject: [PATCH 2/2] Added DB_PASSWD to stock config file again --- core/phpunit.example.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/phpunit.example.xml b/core/phpunit.example.xml index 7d731983..43dda1ee 100644 --- a/core/phpunit.example.xml +++ b/core/phpunit.example.xml @@ -26,7 +26,7 @@ // Database configuration - + // Admin user credentials