<?php

/*

=========================================================================

General settings for language and database

=========================================================================

*/

// select the language module to use
// Look for <country>.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';

// what is your Mysql database server
$database_host = '[[softdbhost]]';

// what is the name of the database we are using
$database_name = '[[softdb]]';

// who do we log in as?
$database_user = '[[softdbuser]]';

// and what password do we use
$database_password = '[[softdbpass]]';

// the mysql server port number if not the default
$database_port = null;

// the socket to be used
$database_socket = null;

// enable database connection compression
$database_connection_compression = false;

// force database connection to use SSL
$database_connection_ssl = false;

// 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 = '[[site_name]]';

// if you want a prefix to all your tables, specify it here,
$table_prefix = '[[dbprefix]]';

// if you want to use a different prefix to user tables, specify it here.
// read README.usertables for more information
$usertable_prefix = '[[dbprefix]]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)
// If you install phpList in the document root then the value should be an empty string, not '/'.
// Warning: Do not change this after installation. You can only change this before you
// install and initialise phpList.
$pageroot = '[[relativeurl]]';


// there are places in phpList where files need to be fetched from the internet.
// for example translations, or lists of valid domains
// also the phpList updater needs access to the phpList servers
// if your system is behind a proxy server, provide the details here

#define('HTTP_PROXY_HOST', 'proxy.mydomain.com');
// ex 80. Usually 80,8080 or 3128
#1define('HTTP_PROXY_PORT', '80');


/*

=========================================================================

Settings for handling bounces

=========================================================================

*/

// Message 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, uncomment the following line, and change the email address
// to some existing account on your system
// requires PHP version > "4.0.5" and "4.3.1+" without safe_mode
// $message_envelope = 'listbounces@yourdomain';

// 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
define('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;

// Set to 0 to received by mail bounce deletions in the advanced bounce processing report
define('REPORT_DELETED_BOUNCES', 0);

// The name of the POP3 mailbox
// Multiple mailboxes can be specified separated by comma
$bounce_mailbox_name = 'INBOX';

// The maximum number of bounces to retrieve from the mailbox
// This might need to be reduced if the processing times-out
$bounce_mailbox_maximum = 100000;

// When applying bounce rules the number of bounces to process in each batch
// This might need to be reduced when there are a large number of bounces to process
$bounce_rules_batch_size = 500;

/*

=========================================================================

Security related settings

=========================================================================

*/

// if you use login, how many lists can be created per administrator
define('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 = array("admin");
// or you can use the following to disable the check (take off the # in front of the line)
$commandline_users = array();

//# 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
//define('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
define('ASKFORPASSWORD', 0);

// if you use passwords, they will be stored hashed
// 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
define('HASH_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
define('UNSUBSCRIBE_REQUIRES_PASSWORD', 0);

// Immediately unsubscribe a subscriber when using their personal URL.
// To display a confirmation page asking them for a reason set this to 0.
// Be aware that setting to 1 might lead to unauthorised unsubscriptions due to a receiving mail server
// "following" links in an email. If that happens then set this to 0.
// Also, see the file README.robots in the phplist distribution doc directory for another way to try to
// stop unauthorised unsubscriptions.
define('UNSUBSCRIBE_JUMPOFF', 1);

// To not send confirmation of unsubscription , instead of
// the default way, which will send it, set this to false
define('UNSUBSCRIBE_CONFIRMATION', true);

// 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;

// 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
define('CHECK_SESSIONIP', 1);

// Check for host of email entered for subscription
// Do not use it if your server is not 24hr online
// make the 0 a 1, if you want to use it
$check_for_host = 0;

/*

=========================================================================

Debugging and informational

=========================================================================

*/

// if test is true (not 0) it will not actually send ANY messages,
// but display what it would have sent
define('TEST', 0);

// if you set verbose to 1, 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
define('VERBOSE', 0);

// some warnings may show up about your PHP settings. If you want to get rid of them
// set this value to 0
define('WARN_ABOUT_PHP_SETTINGS', 1);

// 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.
$userhistory_systeminfo = array(
    'HTTP_USER_AGENT',
    'HTTP_REFERER',
    'REMOTE_ADDR',
);

// add spamblock
// if you set this to 1, 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 0
// this is currently only implemented on the subscribe pages
define('USE_SPAM_BLOCK', 1);

// 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
define('NOTIFY_SPAM', 1);

/*
=========================================================================

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.
define('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.
// for example: $allowed_referrers = array('mydomain.com','msn.com','yahoo.com','google.com');
$allowed_referrers = array();

/*

=========================================================================

Feedback to developers

=========================================================================

*/

// use Register to "register" to phpList.com. Once you set TEST to 0, 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 0.
define('REGISTER', 1);

// 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 1, the HTML emails will then only add a line of text as signature
define('EMAILTEXTCREDITS', 0);

// if you want to also remove the image from your public webpages
// set the next one to 1, and the pages will only include a line of text
define('PAGETEXTCREDITS', 0);

// 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 1
define('NOSTATSCOLLECTION', 0);

// 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 0, 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
define('MANUALLY_PROCESS_QUEUE', 1);

// This setting will activate an initial setup choice for processing the queue
// When "true" it will allow a choice between remote queue processing with the
// phpList.com service or processing it locally in the browser.
// when the value is "false", you can use remote processing in your own way
// as explain at https://resources.phplist.com/system/remote_processing
// define('SHOW_PQCHOICE',false);

// 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
define('MAX_PROCESS_MESSAGE', 999);

// process parallel
// if there are multiple messages in the queue, divide the max batch across them
// instead of sending them one by one.
// this only works if you use batch processing. It will divide the batch between the
// campaigns that need sending.
//define('PROCESSCAMPAIGNS_PARALLEL',true);

// 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
define('MAILQUEUE_BATCH_SIZE', 0);

// define the length of one batch processing period, in seconds (3600 is an hour)
define('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)
define('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
define('MAILQUEUE_AUTOTHROTTLE', 0);

// Domain Throttling
// You can activate domain throttling, by setting USE_DOMAIN_THROTTLE to 1
// 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.

define('USE_DOMAIN_THROTTLE', 0);
define('DOMAIN_BATCH_SIZE', 1);
define('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 1, otherwise simply run the queue many times. A cron
// process every 10 or 15 minutes is recommended.
define('DOMAIN_AUTO_THROTTLE', 0);

// 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.
define('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
//define('USE_PRECEDENCE_HEADER',false);

// 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 1 and
// users will not receive an error when they do not check a list to subscribe to
define('ALLOW_NON_LIST_SUBSCRIBE', 0);

// Show private lists
// If you have a mixture of public and private lists, you can set this to 1, 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
define('PREFERENCEPAGE_SHOW_PRIVATE_LISTS', 0);

// Show the link(s) to subscribe page(s) on the phpList public homepage (lists/)
define('SHOW_SUBSCRIBELINK', true);

// Show link to the preferences page on the phpList public homepage (lists/)
define('SHOW_PREFERENCESLINK', true);

// Show link to the unsubscribe page on the phpList public homepage (lists/)
define('SHOW_UNSUBSCRIBELINK', true);

// Show 'All Subscribers' section on Subscriber Lists page
// This flag enabled will show a list called “All subscribers” on the
// Subscriber Lists page that has all subscribers in the system as members.
// This prevents confusion if there are subscribers not assigned to lists and
// therefore total subscribers are than the sum of all list members.
define('SHOW_LIST_OFALL_SUBSCRIBERS', 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
// check https://mantis.phplist.com/view.php?id=15603 for more info
// define('WORDWRAP_HTML',60);

// 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.
define('DATE_START_YEAR', 0);
define('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"
define('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 "Default for 'From:' in a campaign"
define('USE_ADMIN_DETAILS_FOR_MESSAGES', 1);

// attribute value reorder limit
// for selectable attributes, like "select" and "radio" you can manage the order of the values
// by adding a number for each of them. After a certain number of values, this will disappear
// and it will automatically order alphabetically. This "certain number" is controlled here
// and it defaults to 100
// if you want to use this, uncomment this line and change the value
// define('ATTRIBUTEVALUE_REORDER_LIMIT',100);

// 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 1, 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
define('SEND_ONE_TESTMAIL', 0);

// 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.
define('REMOTE_URL_REFETCH_TIMEOUT', 3600);

// Users 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
define('USERSPAGE_MAX', 1000);

// Message 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
define('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
define('USE_REPETITION', 0);

// admin language
// if you want to disable the language switch for the admin interface (and run all in english)
// set this one to 0
define('LANGUAGE_SWITCH', 1);

//# error 404 page
//# custom "File not found".
//# in several places, phpList may generate a "file not found" page. If you want to provide your own design for this
//# page, you can set this here. This needs to be a file that is in your webserver document root
//# eg /home/youraccount/public_html/404.html
//# the contents are displayed "as-is", so it will not run any PHP code in the file.
define('ERROR404PAGE', '404.html');

// Add a Reply-To header. Set this to true to show a Reply to field on the Compose tab when creating a campaign.
define('USE_REPLY_TO', false);

/*

=========================================================================

Message sending options
* phpList now only uses phpMailer for sending, but below you can
* tweak a few options on how that is done

=========================================================================

*/

// If you are using PHPMailer 5 then you can use a different version to the phplist distribution by specifying
// the location of the PHPMailer autoload file
// if not set, the PHPMailer 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
//define ('PHPMAILER_PATH', '/usr/share/php/libphp-phpmailer/PHPMailerAutoload.php');
//
// If you are using PHPMailer 6 then you can use a different version by setting the location of the PHPMailer
// src directory, e.g.
//define ('PHPMAILER_PATH', '/var/www/PHPMailer-master/src');

// To use a SMTP server please give your server hostname here, leave it blank to use the standard
// PHP mail() command.
define('PHPMAILERHOST', '');

// in the above you can specify multiple SMTP servers like this:
// 'server1:port1;server2:port2;server3:port3' eg
//define('PHPMAILERHOST','smtp1.mydomain.com:25;smtp2.mydomain.com:2500;smtp3.phplist.com:5123');

// if you want to use smtp authentication when sending the email uncomment the following
// two lines and set the username and password to be the correct ones
//$phpmailer_smtpuser = 'smtpuser';
//$phpmailer_smtppassword = 'smtppassword';

//# you can set this to send out via a different SMTP port
// define('PHPMAILERPORT',25);

//# test vs blast
// you can send test messages via a different SMTP host than the actual campaign queue
// if not set, these default to the above PHPMAILERHOST and PHPMAILERPORT
// define('PHPMAILERTESTHOST','testsmtp.mydomain.com');
// define('PHPMAILERBLASTHOST','livesmtp.mydomain.com');
// define('PHPMAILERBLASTPORT',25);

// to use SSL/TLS when sending set this value
// it can either be "ssl" or "tls" or false to not use SSL/TLS at all
// define("PHPMAILER_SECURE",'ssl');

//# SMTP debugging
// Enable debugging output by phpmailer when sending test emails
// See https://phpmailer.github.io/PHPMailer/classes/PHPMailer-PHPMailer-PHPMailer.html#property_SMTPDebug
// define('PHPMAILER_SMTP_DEBUG', 0);

//# Smtp Timeout
//# If you use SMTP for sending, you can set the timeout of the SMTP connection
//# defaults to 5 seconds
// define('SMTP_TIMEOUT',5);

// Pop-Before-Smtp
// If you use Pop before Smtp, set to true
// And complete smtp settings (PHPMAILERHOST,  phpmailer_smtpuser', phpmailer_smtppassword)
define('POP_BEFORE_SMTP', false);
define('POPBEFORESMTP_DEBUG', false);

/*

=========================================================================

Advanced Features, HTML editor, RSS, Attachments, Plugins. PDF creation

=========================================================================

*/

// Usertrack
// Usertrack 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 uncommenting the next line
// define('ALWAYS_ADD_USERTRACK',0);

// Click tracking
// If you set this to 1, all links in your emails will be converted to links that
// go via phpList. This will make sure that clicks are tracked. Default: 1
// If you disable a URL conversion, set to 0.
define('CLICKTRACK', 1);

// 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
define('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
define('UPLOADIMAGES_DIR', 'uploadimages');

//# for the above, you can also use subdirectories, for example
//define("UPLOADIMAGES_DIR","images/newsletter/uploaded");


// EMBEDEXTERNALIMAGES
// this flag will fetch images in your content that are remotely hosted and put them
// inside the message that is sent.
define('EMBEDEXTERNALIMAGES',false);


// 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
define('USE_MANUAL_TEXT_PART', 0);

// Message preview tries to show a small preview of how your campaign will look in email applications
define('USE_MESSAGE_PREVIEW',true);

// set this to 1 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
define('ALLOW_ATTACHMENTS', 0);

// when using attachments you can upload them to the server
// if you want to use attachments from the local filesystem (server) set this to 1
// filesystem attachments are attached at real send time of the message, not at
// the time of creating the message
define('FILESYSTEM_ATTACHMENTS', 0);

// if you add filesystem attachments, you will need to tell phpList where your
// mime.types file is.
define('MIMETYPES_FILE', '/etc/mime.types');

// if a mimetype cannot be determined for a file, specify the default mimetype here:
define('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

//define("PLUGIN_ROOTDIR","/home/me/phplistplugins");

// uncomment this one to see the examples in the system (and then comment the
// one above)
define('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';

// 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 1
define('EXPORT_EXCEL', 0);

// 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 uncomment this
// ie take off the #-character in the next line
// using this is not guaranteed to work, sorry. Easier to use Apache instead :-)
// $form_action = 'index.php';

// select the database module to use
// anyone wanting to submit other database modules is
// very welcome!
$database_module = 'mysqli.inc';

// you can store sessions in the database instead of the default place by assigning
// a tablename to this value. The table will be created and will not use any prefixes
// this only works when using mysql and only for administrator sessions
// $SessionTableName = "phplistsessions";

/*

=========================================================================

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
define('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.

// define('SYSTEM_TIMEZONE','Europe/London');

// HTTP_HOST
// In some systems (eg behind load balancing proxies) you may need to set the HOST to be something else
// then the system identifies. If you do, you can set it here.
//define('HTTP_HOST','your.website.com');

// list exclude will add the option to send a message to users who are on a list
// except when they are on another list.
define('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 1 to use
define('MESSAGEQUEUE_PREPARE', 0);

// 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';

// 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, uncomment the below line
// see also https://mantis.phplist.com/view.php?id=16611
//define('PUBLIC_PROTOCOL','http');

// Admin protocol
// similar to the above, if you need to force the admin pages on either http or https (eg when behind a
// proxy that prevents proper auto-detection), you can set it here
//define('ADMIN_PROTOCOL','https');

// 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
define('USE_ADVANCED_BOUNCEHANDLING', 0);

// 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 1, 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.
define('KEEPFORWARDERATTRIBUTES', 0);

// 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.
define('FORWARD_EMAIL_COUNT', 1);

// forward to friend - personal message
// Allow user to add a personal note when forwarding 'to a friend'
// 0 will turn this option off. default is 0 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
define('FORWARD_PERSONAL_NOTE_SIZE', 0);

// 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.
define('FORWARD_ALTERNATIVE_CONTENT', 0);

// To disable the automatic updater change the value to false. By default the value is true.
define('ALLOW_UPDATER', true);

// Google mail Feedback loop configuration
// When feedback loop is configured in Google mail according to https://support.google.com/mail/answer/6254652?hl=en
// adds constant to email headers
define('GOOGLE_SENDERID', '');

// For ajax based signup forms (https://discuss.phplist.org/t/solved-ajax-subscribe-api/974) the access-control-allow-origin header
// has to be set properly.
// Add the addresses of the websites you want to allow to perform ajax requests to PHPList.
define('ACCESS_CONTROL_ALLOW_ORIGINS', ['https://example.com','https://example.org']);

// when using Mysql, what engine should we use
// there is no need to set this, when you have a valid engine defined in your Mysql server settings
// If you set this, the next time upgrade is run on commandline, the system will attempt to change all tables to this engine.
// this is useful for old systems that have been created
// for valid engines, check your server documentation (MariaDB or Mysql)
// Warning, setting this value incorrectly will cause your database creation to break
// the current value is a sensible one to use. It is advised not to change this.
// if you are on a shared hosting environment, make sure you have the database permissions to update the
// information.schema tables.
$mysql_database_engine = 'InnoDB';

// The subscriber totals for each list on the lists page are calculated by sending a sequence of asynchronous requests.
// You can include a delay between requests using this setting. The value is in milliseconds.
define('ASYNC_REQUEST_INTERVAL', 0);
