PHPackages                             3ev/tev\_mailchimp - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. 3ev/tev\_mailchimp

AbandonedArchivedTypo3-cms-extension[Mail &amp; Notifications](/categories/mail)

3ev/tev\_mailchimp
==================

Mailchimp integration for your TYPO3 site

1.1.6(5y ago)22381MITPHPPHP &gt;=5.5.0

Since Sep 8Pushed 5y ago10 watchersCompare

[ Source](https://github.com/3ev/tev_mailchimp)[ Packagist](https://packagist.org/packages/3ev/tev_mailchimp)[ Docs](https://github.com/3ev/tev_mailchimp)[ RSS](/packages/3ev-tev-mailchimp/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (12)Used By (0)

\#TYPO3 Mailchimp Extension

[![Latest Stable Version](https://camo.githubusercontent.com/dd41e3f8a3bda76c8c4158b8facd05c35a760a001539f57baeaa31143c92e344/68747470733a2f2f706f7365722e707567782e6f72672f3365762f7465765f6d61696c6368696d702f76657273696f6e)](https://packagist.org/packages/3ev/tev_mailchimp) [![License](https://camo.githubusercontent.com/1fbe5ab5e11ed38aed6257fd49f04b7d7f2f52ff65adb7bc726e1eee21e1fb65/68747470733a2f2f706f7365722e707567782e6f72672f3365762f7465765f6d61696c6368696d702f6c6963656e7365)](https://packagist.org/packages/3ev/tev_mailchimp)

> Integrate Mailchimp newsletter subscriptions with your TYPO3 site.

\##Contents

- [Overview](#overview)
- [Installation](#installation)
- [Setup and Configuration](#setup-and-configuration)
    - [Webhooks](#webhooks)
    - [Changing the Email Field](#changing-the-email-field)
    - [Changing the Logfile Path](#changing-the-logfile-path)
- [Usage](#usage)
    - [Downloading Lists](#downloading-lists)
    - [Using the MailchimpService](#using-the-mailchimpservice)
    - [Using the MlistRepository](#using-the-mlistrepository)
    - [Logging](#logging)
- [License](#license)

\##Overview

This extension allows you to subscribe FE Users to Mailchimp Lists. Information is kept in sync using the [Mailchimp REST API](http://kb.mailchimp.com/api/) and [webhooks](https://apidocs.mailchimp.com/webhooks/).

The following functionality is included:

- A CLI command to download all Mailchimp lists from your account to the local database
- BE save hooks to ensure that whenever a user is created or updated in the backend their List subscription preferences are downloaded from Mailchimp
- Extbase slots to ensure that whever a user is created or updated on the frontend their List subscription preferences are downloaded from Mailchimp *Extbase slots are no longer included out of the box due to them being very hard to work with*
- Webhook listeners to ensure that whenever a user's List subscription preferences are updated in Mailchimp they are updated in the local database
- Services to easily trigger Mailchimp subscribe or unsubscribe requests anywhere in your code

\##Installation

```
$ composer require "3ev/tev_mailchimp"

```

\###Dependencies

Due to a [TYPO3 bug](https://forge.typo3.org/issues/54491) dependencies cannot be added to this project's `composer.json`. Instead, you must add them to your root `composer.json` file.

Please see the `suggests` config in this package's `composer.json` for the dependencies you'll need to add.

\##Setup and Configuration

Install the extension via the Extension Manager as normal. After the extension is installed, you should access its settings and set your [Mailchimp API key](http://kb.mailchimp.com/accounts/management/about-api-keys).

Using the Constants Editor, you should then set the 'TEV\_MAILCHIMP -&gt; Storage Folder' constant, most likely on your root page template. This is the folder that all Mailchimp lists and subscriptions are stored in.

Finally, clear your TYPO3 caches and your extension will be ready to use.

\###Webhooks

If you want your site to listen to [incoming webhooks from Mailchimp](https://apidocs.mailchimp.com/webhooks/)(which will help to keep your local list data in sync), you can setup a page and add its URL to your Mailchimp config.

To setup a page that can listen to webhooks:

- Create a page somewhere in your page tree. This page should not be linked to anywhere on your site
- Add an Extension Template to it, with the following Typoscript in its setup field:

    ```
    page < tev_mailchimp_webhook_json

    ```
- Add the new page's URL to the webhook config for each Mailchimp list you want to listen to

Then just clear your TYPO3 caches, and you'll be ready to go.

\###Changing the Email Field

By default, the extension uses the `email` field on FE Users to sync email preferences. You can change this by setting the 'FE User email field' in the extension configuration. This should be the lower cased, underscored field name as it is in the database. You may want to do this if, for example, your users use an email address as their `username`, and you don't use the `email field.

\###Changing the Logfile Path

By default, extension logs will be written to `typo3temp/logs/mailchimp.log`. If you'd like to change this, simply set the 'Logfile path' in the extension configuration. This path should either be absolute or relative to the directory that contains your `typo3/` source folder. You can set it to be outside of that directory if you use a `../` prefix.

You can of course completely change the logging functionality using the [core TYPO3 API](https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Logging/Configuration/Index.html)and setting your own logging config in an `ext_localconf.php` under the `Tev\TevMailchimp` namespace.

\##Usage

\###Downloading lists

Firstly, you should download all Lists from your Mailchimp account to TYPO3. You can do this by running the following Extbase CLI command in your TYPO3 installation directory (you'll need to create the `cli_lowlevel` BE User if you haven't already):

```
$ ./typo3/cli_dispatch.phpsh extbase mailchimp:lists

```

Once this has been run, you'll be able to see all of the downloaded lists using the List View on the Storage Folder you configured earlier. You can optionally set a custom description on each List, and you'll also be able to see the full list of FE Users subscribed to the list under the Subscribers tab.

**Note:** If you're changing lists regularly in your Mailchimp account, you should put this command on a cronjob or TYPO3 Scheduler task.

\###Using the MailchimpService

You can easily trigger subscriptions or unsubscriptions for users in your Extbase code by injecting the `Tev\TevMailchimp\Services\MailchimpService` into your own classes.

The service provides the following methods for managing subscriptions:

**subscribeUserToList(FrontendUser $user, Mlist $list, $confirm = false)**

> Subscribe the given FE User to the given Mailchimp list. If confirm is true, a confirmation email will be sent to the user from Mailchimp, and they will not be added to the list immediately. This means that the local database won't be updated syncronously, and you'll have to rely on a webhook.

**unsubscribeUserFromList(FrontendUser $user, Mlist $list)**

> Unsubscribe the given FE User from the given Mailchimp list.

**subscribeToList($email, $list, $confirm = false)**

> Subscribe the given email address to the given Mailchimp list. If confirm is true, a confirmation email will be sent to the user from Mailchimp, and they will not be added to the list immediately.

**unsubscribeFromList($email, $list)**

> Unsubscribe the given email address from the given Mailchimp list.

**downloadSubscriptions(FrontendUser $user, $newUser = false)**

> Download a user's current subscriptions from Mailchimp to TYPO3. You may want to call this the first time a user registers on your site, or when they change their email address. Setting `$newUser` to true will slightly improve performance when downloading subscriptions for a new user

**downloadLists()**

> Download all lists from Mailchimp to TYPO3.

Each of these methods will trigger an exception if there is a Mailchimp API error, so you should ensure you handle them appropriately.

\###Using the MlistRepository

The `Tev\TevMailchimp\Domain\Repository\MlistRepository` class allows you to fetch list data from the local database. It provides the standard Extbase repository API. Some of the most common methods you'll likely want to use are:

**findAll()**

> Get all lists from the local database.

**findAllSubscribedToBy(FrontendUser $user)**

> Get all lists subscribed to by the given user.

**findAllNotSubscribedToBy(FrontendUser $user)**

> Get all lists not subscribed to by the given user.

\###Logging

The following events are logged in the system:

- Successful and failed webhook handlers
- Successful and failed list downloads via the CLI
- Any Mailchimp API errors

See [above](#changing-the-logfile-path) for information on changing the logging setup.

\##License

MIT © 3ev

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 73.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~203 days

Recently: every ~391 days

Total

10

Last Release

2072d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/380e5682a659dee3eb84812db8fcb0433bcf70c460b2eeafd97d79b9f1646f03?d=identicon)[3ev](/maintainers/3ev)

---

Top Contributors

[![BenConstable](https://avatars.githubusercontent.com/u/817029?v=4)](https://github.com/BenConstable "BenConstable (25 commits)")[![aaron-grover](https://avatars.githubusercontent.com/u/30999889?v=4)](https://github.com/aaron-grover "aaron-grover (5 commits)")[![chris-3ev](https://avatars.githubusercontent.com/u/29535534?v=4)](https://github.com/chris-3ev "chris-3ev (3 commits)")[![muthukswamy](https://avatars.githubusercontent.com/u/2474969?v=4)](https://github.com/muthukswamy "muthukswamy (1 commits)")

### Embed Badge

![Health badge](/badges/3ev-tev-mailchimp/health.svg)

```
[![Health](https://phpackages.com/badges/3ev-tev-mailchimp/health.svg)](https://phpackages.com/packages/3ev-tev-mailchimp)
```

###  Alternatives

[tijsverkoyen/css-to-inline-styles

CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.

5.8k505.3M227](/packages/tijsverkoyen-css-to-inline-styles)[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
