MailPoet – Newsletters, Email Marketing, and Automation

mailpoet · by mailpoet · wordpress.org ↗ · SVN ↗
Active installs
500k+
Current version
5.38.0
Added
2016-10-28
Last updated
2026-09-08 (4d ago)
First seen by beacon
4mo ago
Total downloads
69,280,924

Statistics

2024-06-17 → 2026-09-10 · 816 days
Downloads today
11,580
7-day total 186,760
Week over week
▼ -2%
vs prior 7 days
30-day trend
declining
▼ -6% MoM
Abandonment
○○○○○
healthy
Downloads/day Linear trend
183k137k92k46k02024-062024-102025-032025-072025-122026-04
139k104k70k35k02026-062026-062026-072026-072026-082026-08
129k97k65k32k02026-082026-082026-082026-082026-092026-09

Active versions

other5.385.36
other · 58.4%5.38 · 26.8%5.36 · 8.7%5.37 · 6.1%

Ratings

5★
1,142
4★
76
3★
34
2★
30
1★
149

Support: 36/49 resolved

Alerts (0)

No open alerts.

Show 6 resolved alerts
Critical code_scan_match Resolved · code_scan_fp_class_genre_encoding 2026-05-05 11:23:54 (4mo ago)
Slugmailpoet
Finding count14
Findings
PatternKindFileLineSnippetConfidence
eval_callbuiltinvendor-prefixed/doctrine/common/src/Proxy/ProxyGenerator.php169eval(substr($proxyCode, 5));medium
eval_callbuiltinvendor-prefixed/twig/twig/src/Environment.php184eval('?>' . $content);medium
eval_callbuiltinvendor-prefixed/nesbot/carbon/src/Carbon/Traits/Mixin.php33$context = eval(self::getAnonymousClassCodeForTrait($trait));medium
base64_decodebuiltinlib/Router/Router.php79$data = !is_array($data) ? json_decode(base64_decode($data), true) : [];medium
getWPUsersioc:code_patternlib/Newsletter/Scheduler/WelcomeScheduler.php116$segment = $this->segmentsRepository->getWPUsersSegment();high
base64_decodebuiltinlib/Form/Util/FieldNameObfuscator.php31$decoded = base64_decode(substr($name, strlen(self::OBFUSCATED_FIELD_PREFIX)));medium
base64_decodebuiltinlib/Statistics/Track/Opens.php93echo base64_decode('R0lGODlhAQABAJAAAP8AAAAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==');medium
getWPUsersioc:code_patternlib/Config/Populator.php357$this->segmentsRepository->getWPUsersSegment();high
getWPUsersioc:code_patternlib/AdminPages/PageRenderer.php142$wpSegment = $this->segmentRepository->getWPUsersSegment();high
getWPUsersioc:code_patternlib/Subscribers/SubscribersRepository.php568$segmentId = $this->segmentsRepository->getWpUsersSegment()->getId();high
getWPUsersioc:code_patternlib/Segments/WP.php118$wpSegment = $this->segmentsRepository->getWPUsersSegment();high
getWPUsersioc:code_patternlib/Segments/WP.php321$wpSegment = $this->segmentsRepository->getWPUsersSegment();high
getWPUsersioc:code_patternlib/Segments/WP.php398$wpSegment = $this->segmentsRepository->getWPUsersSegment();high
getWPUsersioc:code_patternlib/Segments/SegmentsRepository.php76public function getWPUsersSegment(): SegmentEntity {high
Resolved shae680db2c6a46f32e2f7718077d2d02511e5587ff
View raw JSON
{
    "slug": "mailpoet",
    "finding_count": 14,
    "findings": [
        {
            "pattern": "eval_call",
            "kind": "builtin",
            "file": "vendor-prefixed/doctrine/common/src/Proxy/ProxyGenerator.php",
            "line": 169,
            "snippet": "eval(substr($proxyCode, 5));",
            "confidence": "medium"
        },
        {
            "pattern": "eval_call",
            "kind": "builtin",
            "file": "vendor-prefixed/twig/twig/src/Environment.php",
            "line": 184,
            "snippet": "eval('?>' . $content);",
            "confidence": "medium"
        },
        {
            "pattern": "eval_call",
            "kind": "builtin",
            "file": "vendor-prefixed/nesbot/carbon/src/Carbon/Traits/Mixin.php",
            "line": 33,
            "snippet": "$context = eval(self::getAnonymousClassCodeForTrait($trait));",
            "confidence": "medium"
        },
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "lib/Router/Router.php",
            "line": 79,
            "snippet": "$data = !is_array($data) ? json_decode(base64_decode($data), true) : [];",
            "confidence": "medium"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Newsletter/Scheduler/WelcomeScheduler.php",
            "line": 116,
            "snippet": "$segment = $this->segmentsRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "lib/Form/Util/FieldNameObfuscator.php",
            "line": 31,
            "snippet": "$decoded = base64_decode(substr($name, strlen(self::OBFUSCATED_FIELD_PREFIX)));",
            "confidence": "medium"
        },
        {
            "pattern": "base64_decode",
            "kind": "builtin",
            "file": "lib/Statistics/Track/Opens.php",
            "line": 93,
            "snippet": "echo base64_decode('R0lGODlhAQABAJAAAP8AAAAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==');",
            "confidence": "medium"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Config/Populator.php",
            "line": 357,
            "snippet": "$this->segmentsRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/AdminPages/PageRenderer.php",
            "line": 142,
            "snippet": "$wpSegment = $this->segmentRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Subscribers/SubscribersRepository.php",
            "line": 568,
            "snippet": "$segmentId = $this->segmentsRepository->getWpUsersSegment()->getId();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Segments/WP.php",
            "line": 118,
            "snippet": "$wpSegment = $this->segmentsRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Segments/WP.php",
            "line": 321,
            "snippet": "$wpSegment = $this->segmentsRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Segments/WP.php",
            "line": 398,
            "snippet": "$wpSegment = $this->segmentsRepository->getWPUsersSegment();",
            "confidence": "high"
        },
        {
            "pattern": "getWPUsers",
            "kind": "ioc:code_pattern",
            "file": "lib/Segments/SegmentsRepository.php",
            "line": 76,
            "snippet": "public function getWPUsersSegment(): SegmentEntity {",
            "confidence": "high"
        }
    ],
    "resolved_sha": "e680db2c6a46f32e2f7718077d2d02511e5587ff"
}
High committer_younger_than_plugin Resolved · benign_company_employee 2026-04-27 10:32:30 (4mo ago)
Slugmailpoet
Committer sluglysyjan87
Committer display nameJan Lysý
Committer employer
Committer member since2023-11-24
Committer first commit2024-07-16 13:24:48
Committer commit count30
Plugin listed authormailpoet
Earliest plugin commit2022-01-20 13:52:57
Plugin age at join days907
Committer age at join days235
Active installs500,000
View raw JSON
{
    "slug": "mailpoet",
    "committer_slug": "lysyjan87",
    "committer_display_name": "Jan Lys\u00fd",
    "committer_employer": null,
    "committer_member_since": "2023-11-24",
    "committer_first_commit": "2024-07-16 13:24:48",
    "committer_commit_count": 30,
    "plugin_listed_author": "mailpoet",
    "earliest_plugin_commit": "2022-01-20 13:52:57",
    "plugin_age_at_join_days": 907,
    "committer_age_at_join_days": 235,
    "active_installs": 500000
}
High committer_younger_than_plugin Resolved · benign_company_employee 2026-04-27 10:32:30 (4mo ago)
Slugmailpoet
Committer slugseuna8c
Committer display nameSeun
Committer employer
Committer member since2024-10-22
Committer first commit2024-12-10 13:23:00
Committer commit count20
Plugin listed authormailpoet
Earliest plugin commit2022-01-20 13:52:57
Plugin age at join days1,054
Committer age at join days49
Active installs500,000
View raw JSON
{
    "slug": "mailpoet",
    "committer_slug": "seuna8c",
    "committer_display_name": "Seun",
    "committer_employer": null,
    "committer_member_since": "2024-10-22",
    "committer_first_commit": "2024-12-10 13:23:00",
    "committer_commit_count": 20,
    "plugin_listed_author": "mailpoet",
    "earliest_plugin_commit": "2022-01-20 13:52:57",
    "plugin_age_at_join_days": 1054,
    "committer_age_at_join_days": 49,
    "active_installs": 500000
}
High committer_younger_than_plugin Resolved · benign_company_employee 2026-04-27 10:32:30 (4mo ago)
Slugmailpoet
Committer slugwxa1
Committer display namewxa1
Committer employer
Committer member since2024-07-15
Committer first commit2024-07-23 16:15:48
Committer commit count8
Plugin listed authormailpoet
Earliest plugin commit2022-01-20 13:52:57
Plugin age at join days915
Committer age at join days8
Active installs500,000
View raw JSON
{
    "slug": "mailpoet",
    "committer_slug": "wxa1",
    "committer_display_name": "wxa1",
    "committer_employer": null,
    "committer_member_since": "2024-07-15",
    "committer_first_commit": "2024-07-23 16:15:48",
    "committer_commit_count": 8,
    "plugin_listed_author": "mailpoet",
    "earliest_plugin_commit": "2022-01-20 13:52:57",
    "plugin_age_at_join_days": 915,
    "committer_age_at_join_days": 8,
    "active_installs": 500000
}
Critical code_pattern Resolved · no_longer_matches 2026-04-24 17:01:47 (4mo ago)
Slugmailpoet
Patternunserialize_after_remote_call
Kindbuiltin
Version5.23.2
Hit count2
First hit
File
lib/Doctrine/MetadataCache.php
Line
38
Snippet
L38: return unserialize((string)file_get_contents($this->getFilename($id))); → L38: return unserialize((string)file_get_contents($this->getFilename($id)));
Explanationa remote HTTP fetch (`wp_remote_*`/`curl_exec`/`file_get_contents`) is followed by `@unserialize` within the same file — classic PHP Object Injection C2 gadget used by EP and most WP supply-chain backdoors. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak.
View raw JSON
{
    "slug": "mailpoet",
    "pattern": "unserialize_after_remote_call",
    "kind": "builtin",
    "version": "5.23.2",
    "hit_count": 2,
    "first_hit": {
        "file": "lib/Doctrine/MetadataCache.php",
        "line": 38,
        "snippet": "L38: return unserialize((string)file_get_contents($this->getFilename($id)));  \u2192  L38: return unserialize((string)file_get_contents($this->getFilename($id)));"
    },
    "explanation": "a remote HTTP fetch (`wp_remote_*`/`curl_exec`/`file_get_contents`) is followed by `@unserialize` within the same file \u2014 classic PHP Object Injection C2 gadget used by EP and most WP supply-chain backdoors. The error-suppressed form is the tell: legit code wants to know when deserialize fails; attackers suppress so malformed gadgets do not leak."
}
Critical code_scan_delta Resolved · fp_vendored_library_local_cache 2026-04-24 15:51:25 (4mo ago)
Slugmailpoet
Previous version5.23.2
Current version5.23.2
New findings
PatternKindFileLineSnippetConfidence
unserialize_after_remote_callbuiltinlib/Doctrine/MetadataCache.php38L38: return unserialize((string)file_get_contents($this->getFilename($id))); → L38: return unserialize((string)file_get_contents($this->getFilename($id)));high
unserialize_after_remote_callbuiltinlib/Doctrine/MetadataCache.php48L38: return unserialize((string)file_get_contents($this->getFilename($id))); → L48: $classMetadata = unserialize((string)file_get_contents($filename));high
New finding count2
View raw JSON
{
    "slug": "mailpoet",
    "previous_version": "5.23.2",
    "current_version": "5.23.2",
    "new_findings": [
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "lib/Doctrine/MetadataCache.php",
            "line": 38,
            "snippet": "L38: return unserialize((string)file_get_contents($this->getFilename($id)));  \u2192  L38: return unserialize((string)file_get_contents($this->getFilename($id)));",
            "confidence": "high"
        },
        {
            "pattern": "unserialize_after_remote_call",
            "kind": "builtin",
            "file": "lib/Doctrine/MetadataCache.php",
            "line": 48,
            "snippet": "L38: return unserialize((string)file_get_contents($this->getFilename($id)));  \u2192  L48: $classMetadata = unserialize((string)file_get_contents($filename));",
            "confidence": "high"
        }
    ],
    "new_finding_count": 2
}

SVN committers (14)

Accounts with actual commit access to mailpoet on plugins.svn.wordpress.org, reconstructed from svn log. This is the list that matters for ownership changes — not the readme contributors.

Committer Member since Commits First commit Latest commit
Wysija 2011-10-17 615 2016-10-28 · r1523712 2021-05-11 · r2529586
MailPoet 2014-06-12 397 2021-05-18 · r2533523 2025-02-11 · r3238695
Ján Mikláš 2022-10-10 52 2024-08-06 · r3131658 2026-06-25 · r3586205
Jan Lysý 2023-11-24 32 2024-07-16 · r3119241 2026-08-18 · r3652837
Rostislav Wolný 2020-02-01 30 2024-08-13 · r3134966 2026-08-04 · r3634163
Seun Young account 2024-10-22 30 2024-12-10 · r3205671 2026-09-01 · r3676440
paveldohnal 2020-08-19 30 2024-08-27 · r3142279 2026-05-19 · r3537320
Yuliyan Slavchev 2011-11-14 20 2025-05-27 · r3301538 2026-09-08 · r3686769
Eason 2021-06-10 16 2025-06-25 · r3317302 2026-08-25 · r3664557
wxa1 Young account 2024-07-15 8 2024-07-23 · r3124067 2025-02-18 · r3242639
Jan Jakeš 2018-07-29 4 2024-07-30 · r3128216 2024-09-18 · r3153732
Oluwaseun Olorunsola 2021-10-04 2 2024-10-22 · r3173666 2024-10-22 · r3173667
websupporter 2013-04-17 1 2024-12-18 · r3209647 2024-12-18 · r3209647
plugin-master 2007-03-09 1 2016-10-07 · r1510122 2016-10-07 · r1510122

Readme contributors (3)

Names the plugin's readme declares as contributors. A soft signal — anyone can be listed. The SVN access column is the ground-truth cross-reference: does this contributor actually commit code?

Contributor Member since SVN access Status
MailPoet 2014-06-12 397 commits Active
Automattic 2009-11-05 Active
WooCommerce 2011-11-10 Active

Versions (100 most recent)

Version Released Download
5.38.0 zip
5.37.0 zip
5.34.3 zip
5.35.0 zip
5.35.1 zip
5.36.0 zip
5.36.1 zip
5.34.0 zip
5.34.1 zip
5.34.2 zip
5.33.1 zip
5.33.0 zip
5.30.0 zip
5.31.0 zip
5.32.0 zip
5.29.0 zip
5.28.1 2026-06-02 · 3mo ago zip
5.28.0 2026-05-26 · 3mo ago zip
5.27.0 2026-05-19 · 3mo ago zip
5.26.1 2026-05-12 · 4mo ago zip
5.26.0 2026-05-12 · 4mo ago zip
5.25.0 2026-05-05 · 4mo ago zip
5.24.0 2026-04-28 · 4mo ago zip
5.23.2 2026-04-15 · 5mo ago zip
5.23.1 2026-04-14 · 5mo ago zip
5.23.0 2026-04-07 · 5mo ago zip
5.22.4 2026-04-01 · 5mo ago zip
5.22.3 2026-03-31 · 5mo ago zip
5.22.2 2026-03-18 · 5mo ago zip
5.22.1 2026-03-10 · 6mo ago zip
5.22.0 2026-03-03 · 6mo ago zip
5.21.3 2026-02-24 · 6mo ago zip
5.21.2 2026-02-17 · 6mo ago zip
5.21.1 2026-02-11 · 7mo ago zip
5.21.0 2026-02-10 · 7mo ago zip
5.20.0 2026-02-03 · 7mo ago zip
5.19.0 2026-01-27 · 7mo ago zip
5.18.0 2026-01-20 · 7mo ago zip
5.17.6 2026-01-13 · 8mo ago zip
5.17.5 2026-01-07 · 8mo ago zip
5.17.4 2025-12-12 · 9mo ago zip
5.17.3 2025-12-09 · 9mo ago zip
5.17.2 2025-12-02 · 9mo ago zip
5.17.1 2025-11-25 · 9mo ago zip
5.17.0 2025-11-12 · 10mo ago zip
5.16.4 2025-11-04 · 10mo ago zip
5.16.3 2025-10-29 · 10mo ago zip
5.16.2 2025-10-21 · 10mo ago zip
5.16.1 2025-10-15 · 11mo ago zip
5.16.0 2025-10-07 · 11mo ago zip
5.15.1 2025-10-01 · 11mo ago zip
5.15.0 2025-09-23 · 11mo ago zip
5.14.3 2025-09-16 · 12mo ago zip
5.14.2 2025-09-09 · 1y ago zip
5.14.1 2025-09-02 · 1y ago zip
5.14.0 2025-08-26 · 1y ago zip
5.13.2 2025-08-20 · 1y ago zip
5.13.1 2025-08-20 · 1y ago zip
5.13.0 2025-08-12 · 1y ago zip
5.12.13 2025-08-05 · 1y ago zip
5.12.12 2025-07-22 · 1y ago zip
5.12.11 2025-07-15 · 1y ago zip
5.12.10 2025-07-08 · 1y ago zip
5.12.9 2025-07-01 · 1y ago zip
5.12.8 2025-06-25 · 1y ago zip
5.12.7 2025-06-17 · 1y ago zip
5.12.6 2025-06-10 · 1y ago zip
5.12.5 2025-06-03 · 1y ago zip
5.12.4 2025-05-27 · 1y ago zip
5.12.3 2025-05-20 · 1y ago zip
5.12.2 2025-05-13 · 1y ago zip
5.12.1 2025-05-06 · 1y ago zip
5.12.0 2025-04-30 · 1y ago zip
5.11.0 2025-04-23 · 1y ago zip
5.10.1 2025-04-15 · 1y ago zip
5.10.0 2025-03-18 · 1y ago zip
5.9.0 2025-03-11 · 1y ago zip
5.8.1 2025-03-04 · 1y ago zip
5.8.0 2025-02-25 · 1y ago zip
5.7.1 2025-02-18 · 1y ago zip
5.7.0 2025-02-11 · 1y ago zip
5.6.4 2025-02-04 · 1y ago zip
5.6.3 2025-01-28 · 1y ago zip
5.6.2 2025-01-22 · 1y ago zip
5.6.1 2025-01-14 · 1y ago zip
5.6.0 2025-01-07 · 1y ago zip
5.5.2 2024-12-24 · 1y ago zip
5.5.1 2024-12-18 · 1y ago zip
5.5.0 2024-12-10 · 1y ago zip
5.4.2 2024-12-03 · 1y ago zip
5.4.1 2024-11-26 · 1y ago zip
5.4.0 2024-11-19 · 1y ago zip
5.3.7 2024-11-12 · 1y ago zip
5.3.6 2024-11-05 · 1y ago zip
5.3.5 2024-10-30 · 1y ago zip
5.3.4 2024-10-29 · 1y ago zip
5.3.3 2024-10-22 · 1y ago zip
5.3.2 2024-10-22 · 1y ago zip
5.3.1 2024-10-15 · 1y ago zip
5.3.0 2024-10-03 · 1y ago zip