diff --git a/core/phpunit.example.xml b/core/phpunit.example.xml
index de4a65a9..43dda1ee 100644
--- a/core/phpunit.example.xml
+++ b/core/phpunit.example.xml
@@ -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/";