Table names below use the default DATABASE_PREFIX (phplist_, set in .env). The
prefix is applied dynamically at runtime, so it can be changed per installation.
Table name: phplist_admin
An administrator can log in to the system and is allowed to administer selected subscriber lists (as the owner), send campaigns to these subscriber lists and edit subscribers.
Administrators are not subscribers. If administrators would like to subscribe to subscriber lists, they need to have a separate subscriber account.
Table name: phplist_adminattribute
This is similar to a subscriber attribute: It defines a field for administrators (name and ID only, not the value). These can then be used as placeholders in campaigns.
Table name: phplist_admin_attribute
The value of a particular AdministratorAttribute for a particular administrator.
Table name: phplist_admin_login
A record of a single login session for an administrator: source IP address, session ID, and whether the session is still active.
Table name: phplist_admin_password_request
This is used to handle "forgot password" requests.
Table name: phplist_admintoken
This table contains the API tokens for administrators. Those API tokens are used for access to the REST API. In the web frontend, they are also used for CSRF protection.
Table name: phplist_user_attribute
An attribute is a field for subscribers. This entity does not contain the values for this attribute for each individual subscriber, but only the name of the attribute and an ID.
Table name: phplist_user_user_attribute
An attributeValue contains the value for a particular attribute for a particular subscriber.
Table name: phplist_subscribepage
SubscribePages allow setting up a selection of subscriber lists, attributes and language, and some other settings to control the content for the page that can be used to subscribe to the system. As a result, you can e.g., have different pages per language, which allows you to translate all the content for each language.
Table name: phplist_subscribepage_data
This is where the data for a subscribe page is stored as key-value pair.
Table name: phplist_user_user
A subscriber can subscribe to multiple subscriber lists and can receive email messages from campaigns for those subscriber lists.
Each subscriber has a (unique) email address.
To manage their list subscriptions and preferences, subscribers don't generally authenticate, except with a token, although you can switch on requiring passwords (off by default).
A subscriber can have some attributeValues.
Table name: phplist_user_user_history
This contains records of changes to a subscriber account. In phpList 3, the trail is accessible on the subscriber history page, e.g., /admin/?page=userhistory&id=1. It includes when and how they were subscribed and reasons for their blacklisting.
Table name: phplist_listuser
A subscription means that a subscriber is subscribed to a subscriber list.
Table name: phplist_usermessage
This association is the core of everything. A subscriber can be member of multiple subscriber lists, and a campaign can be sent to multiple subscriber lists, but this association ensures that a subscriber always only receives one copy of a campaign, regardless of other associations.
Table name: phplist_user_blacklist
When a subscriber should be considered removed from the system, they are added here. Any email address mentioned should never receive any further emails, unless they actively go through the subscription and confirmation process again, when they will be removed from this list.
Table name: phplist_user_blacklist_data
This is some more additional info on a SuppressionList.
Table name: phplist_attachment
An attachment represents a file attached to exactly one campaign.
Table name: phplist_bounce
A recorded bounce message: the original bounce email's header and body, plus a classification status and comment.
Table name: phplist_bounceregex
A regular expression used to classify bounces by matching their content, with an associated action (e.g. unsubscribe the subscriber).
Table name: phplist_message
A campaign is a non-personalized message on a subscriber list (or potentially multiple subscriber lists). The campaign has been created by an administrator owner and sends out email messages to multiple subscribers. It is stored to which subscribers a campaign has been sent.
Table name: phplist_user_message_bounce
Links a bounce to the subscriber and campaign it resulted from.
Table name: phplist_messagedata
This contains additional miscellaneous attributes for campaigns, such as Google tracking IDs, special relationships to subscriber lists, and alias titles.
Table name: phplist_user_message_forward
This tracks details of campaigns which were forwarded by a recipient subscriber to someone else via an email message.
Table name: phplist_list
A subscriber list is something to which subscribers can subscribe in order to receive email messages from campaigns. Each subscriber list has exactly one administrator owner.
Table name: phplist_template
This stores campaign templates. The blob contains HTML which the campaign content is inserted into, using special tags (AKA placeholders).
Table name: phplist_templateimage
This contains images used in templates. The blob contains the image.
Table name: phplist_config
A configuration item is a single value in a configuration registry.
Table name: phplist_i18n
Some background on the i18n system is here: https://resources.phplist.com/translations/start Translations are automatically imported from a repository and then accessed from the database and cached in the browser.
Table name: phplist_eventlog
An event log entry stores something that has happened on the system. This can be anything that seems interesting for someone to review.
Table name: phplist_sendprocess
This is really a "process locking" table.
Table name: phplist_urlcache
When sending a web page, for performance reasons, the page is stored here and only refetched when expired from cache. But effectively any URL that is requested by the system, which includes the list of languages (and the last time they were updated), list of top level domains, the MD5 for that, etc. etc.
Table name: phplist_linktrack_forward
All links in a campaign are converted and stored here. Links are not duplicated.
Table name: phplist_linktrack_ml
Once there is a linkTrackForward, associations to campaigns can be stored here to mark that a link is used in a campaign.
Table name: phplist_linktrack_uml_click
When a subscriber clicks on a link in a message, this click will be recorded here.
- LinkTrack, table name:
phplist_linktrack - LinkTrackSubscriberClick, table name:
phplist_linktrack_userclick - SubscriberStatistics, table name:
phplist_userstats