=== Sprint Newsletter ===
Contributors: sprintplugins
Tags: newsletter, email, mailing-list, automation, associations
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Simple self-hosted newsletters for WordPress: subscribers, lists, visual campaigns, scheduling, automations, and wp_mail() delivery.

== Description ==

Sprint Newsletter is a simple self-hosted newsletter plugin designed for clubs, associations, and WordPress sites that want to manage newsletters without a separate newsletter platform.

The plugin focuses on a clear workflow:

1. Build the message.
2. Choose the recipients.
3. Send now, schedule once, or automate the campaign.

Sprint Newsletter does not include its own SMTP client. Every message is handed to the standard WordPress `wp_mail()` function, so you can keep using the mail or SMTP plugin already configured on your site.

= Main features =

* Subscriber and mailing-list management.
* CSV and XLSX import/export.
* Optional subscription forms with consent and double opt-in.
* Optional synchronization of WordPress users to newsletter lists.
* Visual email builder with desktop and mobile previews.
* Reusable blocks, nested columns, undo/redo, and WordPress Media Library support.
* Dynamic WordPress post/content blocks.
* A remembered starting point for sending only newly published content.
* Test emails from the builder.
* Final WordPress preview showing the message after the WordPress mail pipeline, without sending it.
* Send now, one-time scheduling, and recurring/post-publication automations.
* Optional simple automated message sequences triggered when a subscriber joins a list.
* Batched sending queue with configurable local rate limits and retries.
* Secure unsubscribe links and one-click unsubscribe support.
* Optional open and click tracking with campaign statistics, disabled by default on new installations.
* Technical log and diagnostics.
* No built-in SMTP credentials or mail-provider account management.

= A simple approach =

Sprint Newsletter intentionally avoids complex marketing workflows, scoring systems, and advanced sales automation. It is designed to cover common newsletter needs while keeping the administration understandable for non-specialists.

= Email delivery =

Sprint Newsletter sends through WordPress using `wp_mail()` only. The sender identity and actual delivery transport are controlled by WordPress and any mail/SMTP plugin installed on the site.

This means Sprint Newsletter can work alongside plugins such as WP Mail SMTP, FluentSMTP, Post SMTP, or another solution that integrates with `wp_mail()`.

== Installation ==

1. Upload the `sprint-newsletter` folder to `/wp-content/plugins/`, or install the ZIP from Plugins > Add New > Upload Plugin.
2. Activate Sprint Newsletter.
3. Open Sprint Newsletter in the WordPress administration menu.
4. Review Settings > Identity and the optional modules.
5. If your site needs SMTP or an email API, configure it in a dedicated WordPress mail plugin.
6. Create a list, add or import subscribers, then create your first campaign.

== Frequently Asked Questions ==

= Does Sprint Newsletter include SMTP? =

No. Sprint Newsletter deliberately uses WordPress `wp_mail()` and leaves SMTP/API delivery to a dedicated mail plugin or to the site's existing WordPress mail configuration.

= Can I use my existing SMTP plugin? =

Yes. If the plugin integrates with `wp_mail()`, Sprint Newsletter hands the message to WordPress and the mail plugin can handle the actual transport.

= Does the plugin require an external newsletter account? =

No. Subscriber lists, campaigns, templates, queue data, and statistics are stored in your WordPress database. Optional GIPHY search is the only built-in feature that requires a separate API key.

= Can I disable tracking? =

Yes. Statistics and tracking are an optional module and are disabled by default on new installations. When the module is disabled, new messages do not receive an open-tracking pixel or tracked-link redirects from Sprint Newsletter.

= What are automated messages? =

Automated messages are an optional, intentionally simple sequence feature. A subscriber can enter a sequence when they join a selected list, and receive a small series of messages after configured delays.

= What is the Final WordPress Preview? =

The builder preview shows the Sprint Newsletter message itself. Final WordPress Preview additionally runs the message through the WordPress mail preparation pipeline without sending it, so headers, footers, or formatting added by compatible mail plugins can be visible before delivery.

== Privacy ==

Sprint Newsletter stores newsletter-related personal data in the WordPress database. Depending on the features used, this can include email address, first name, last name, language, list memberships, subscription status, source, confirmation/unsubscribe timestamps, and an optional link to a WordPress user account.

For campaign delivery, the plugin stores recipient and queue history. Subscription/consent records can store keyed hashes of the IP address and user-agent string for abuse prevention and consent evidence. If Statistics and tracking are enabled, Sprint Newsletter can also store detected opens and tracked link clicks together with keyed hashes of the requesting IP address and user-agent string. The plugin does not store those raw IP addresses in these records.

Unsubscribe and tracking URLs are generated by the WordPress site. Email delivery is handed to `wp_mail()`, so the transport configured for WordPress may process recipient data according to that transport provider's own terms and privacy policy.

Sprint Newsletter also adds suggested privacy-policy text to WordPress Settings > Privacy > Policy Guide.

== External services ==

Sprint Newsletter can use the following external services only when the related feature is used.

= GIPHY =

The visual builder includes an optional GIPHY search. It is inactive unless an administrator configures a GIPHY API key and runs a GIF search. When a search is performed, the search term and configured API key are sent directly from the administrator's browser to the GIPHY API. As with a normal browser request, GIPHY can also receive request metadata such as the administrator's IP address, browser user-agent, and referrer information. Search results and selected GIPHY media are loaded from GIPHY-hosted URLs.

GIPHY: https://giphy.com/
GIPHY API Terms: https://support.giphy.com/hc/en-us/articles/360028134111-GIPHY-API-Terms-of-Service
GIPHY Privacy Policy: https://giphy.com/privacy

= YouTube thumbnails =

When an administrator adds a YouTube URL to a video block and does not provide a custom thumbnail, Sprint Newsletter can use the standard `img.youtube.com` thumbnail URL for that video. The thumbnail can therefore be requested from YouTube by the administrator's preview or by the recipient's email client when images are loaded. That request can expose request metadata such as the requesting IP address and user-agent to YouTube/Google, depending on the browser or mail client.

YouTube Terms: https://www.youtube.com/static?template=terms
Google Privacy Policy: https://policies.google.com/privacy

Administrators can avoid these external requests by not using GIPHY search and by providing a locally hosted custom thumbnail for video blocks.

== Changelog ==

= 1.0.0 =
* First public release.
* Subscriber and list management with bulk actions, sortable columns, search, and remembered page sizes.
* CSV/XLSX import and export with imported/skipped/failed result summaries.
* Visual newsletter builder with dynamic WordPress content blocks and reusable blocks.
* Test email and Final WordPress Preview tools.
* One-time scheduling and recurring/post-publication campaign automations.
* Optional simple automated message sequences triggered by list membership.
* Batched wp_mail() queue, unsubscribe handling, optional tracking, and statistics.
* English source strings prepared for WordPress.org translations.

== Upgrade Notice ==

= 1.0.0 =
First public release of Sprint Newsletter.
