# Setting up Nolimit Send ## Installing it on a shop | Needs | Version | | --- | --- | | WordPress | 5.9 or newer | | PHP | 7.4 or newer | | WooCommerce | Not required. It is tested with WooCommerce (6.0 or newer) because that is the mail most shops care about | Download `nolimit-send.zip` from the [latest release](https://gitea.nolimit.dk/kw/nolimit-send-dist/releases/latest), install it through **Plugins → Add New → Upload Plugin**, and activate. After the first install, updates arrive through the normal WordPress updates screen — the plugin carries an `Update URI`, so it checks its own release feed and is never asked about on wordpress.org. **Nothing is sent through it until it is configured.** After activation the plugin is off: WordPress keeps sending the way it did. That is deliberate — a mailer that switched itself on with no server behind it would take every email the shop sends down with it. ## Choosing how the site sends The screen is **Send**, under the shared Nolimit menu in the admin sidebar, and needs the `manage_options` capability. 1. Tick **Send through this server** and pick a provider. The host, port and encryption are filled in from the preset; choosing a different provider replaces all three, so there is never a mixed pair such as one provider's name over another's host. 2. Enter the username and password the way the note under the field says. What the field wants differs, and is the usual cause of a rejected login: | Provider | What goes in the password field | | --- | --- | | Brevo | An **SMTP key** from SMTP & API, not the account password and not an API key | | SMTP2GO | That SMTP user's password. Port 2525 is the default: it is open from more networks than 587 | | Mailgun | That SMTP user's password from the Mailgun dashboard | | SendGrid | An API key with Mail Send permission; the username is the literal word `apikey` | | Postmark | The server API token, in **both** the username and the password field | | Amazon SES | The SES **SMTP** password, and the region's host typed in | | Google | An **App Password**, which needs two-step verification on that account | | Microsoft | The mailbox password, with SMTP AUTH enabled for that mailbox — see below | | Other | Whatever your server expects | 3. Optionally set a sender address and name. Unless **Always use this sender** is ticked, they replace only WordPress' own default `wordpress@…` / `WordPress` and leave any sender a plugin chose alone. 4. **Save**, then **Send a test message**. A failure shows the server's own answer. A real failure is kept with its time; the status reads "a message failed recently" for 24 hours, and a button clears it sooner. A later success does not clear it early. ### Microsoft 365 Username-and-password SMTP is being retired: switched off by default for existing organisations from the end of December 2026, unavailable to new ones, with a final date not yet announced. **This plugin does not do OAuth**, which is what replaces it, so the Microsoft preset works until an administrator loses the ability to enable it. For anything that has to keep working, use a sending provider. The screen says the same thing on the preset itself. ### Other mail plugins If WP Mail SMTP, FluentSMTP, Post SMTP, Easy WP SMTP or Brevo for WordPress is active, this plugin does **not** send: two plugins that both configure PHPMailer produce whatever the later one says. The screen names the plugin. Nolimit Forms has an SMTP mailer of its own; that is only a notice, and the owner decides which to switch off. ### Auto-updates The plugin offers to switch its own auto-updates on, once, through a notice on its screen. Taking or dismissing the offer writes a marker (`nlsnd_auto_update_seeded`) so it is never asked again — the setting is WordPress' own, in WordPress' own place, and the toggle is gated on `update_plugins`. ## Knowing it works * **Send a test message** from the screen. It goes through the server you chose and, when it fails, shows that server's own answer — a refused login, a host that cannot be reached, a sender the provider has not verified. * **Read the status line** at the top of the screen. It reads *Sending through * when everything is in place, *Not sending yet* when it is switched off or has no host, *Mail is handled by * when another mail plugin is in the way, and *A message failed recently* after a real failure. * **Look at one real email.** Place a test order or use the password-reset form, and open the message's full headers in the receiving mailbox. The `Received:` lines should name your provider, not your web host. A test message reaching the provider proves the login and the route. It does not prove the message reached an inbox: that answer lives in the provider's own dashboard, and so do bounces and spam complaints. ## If mail stops 1. The screen's **last failure** card shows the most recent error with its time. It is only recorded when this plugin was the one sending. 2. A password or key that was rotated at the provider is the commonest cause. Enter the new one and save; the field is never filled in for you, and leaving it empty keeps the stored one. 3. Untick **Send through this server** to hand sending straight back to WordPress while you sort it out. Nothing else is changed. 4. Deleting the plugin from the Plugins screen removes every setting it stored, including the password.