# WordPress

The Rasket plugin sends every email your WordPress site sends through Rasket, from your own domain: password resets, new account emails, WooCommerce orders and contact forms. It has a test button, a log of what was sent, and a safe fallback.

> Coming soon: the Rasket plugin is not in the WordPress plugin directory yet. This page describes it as it will ship. Until then, you can send your site's email over SMTP.

## Before you start

- **A verified sending domain.** Add your site's domain under Domains and publish its records; the [domains guide](https://www.rasket.com/docs/domains) walks through it.
- **An API key with Sending access.** In Rasket, open **API keys** and create one. Copy it; it is shown once.
- **WordPress 6.0 or later, on PHP 7.4 or later.**
- **No other email plugin.** Deactivate any SMTP or email plugin first. Two plugins that both take over the site's email get in each other's way.

## Install the plugin

1. In WordPress, open **Plugins**, then **Add New Plugin**.
2. Search for **Rasket**. Choose **Install Now**, then **Activate**.

## Connect your Rasket account

1. Open **Settings**, then **Rasket**.
2. Paste the key into **API key**.
3. Enter the **From email**: an address on your verified domain, such as `hello@example.com`. Add a **From name** if you want one.
4. Choose **Save Changes**. The page says **Rasket is sending this site's email.**

Rasket only starts once it has both the key and the From email. Until then, the site sends email the way it did before, and the page says which one is missing.

### Keep the key out of the database

To keep the key in a file instead, add this line to `wp-config.php`, above the line that says to stop editing. The settings page then shows the key masked and cannot change it.

wp-config.php:

```text
define( 'RASKET_API_KEY', 'rk_...' );
```

## Send a test email

Under **Send a test email** on the same page, enter an address and choose **Send test email**. It goes through Rasket with the saved settings and never falls back, so “Rasket accepted the test email” means Rasket has it. It also appears on your Emails page in Rasket.

If it fails, the page shows Rasket's reason. The most common one is a From email on a domain that is not verified yet.

## The settings

| Setting | What it does |
| --- | --- |
| Send email with Rasket | Switches the plugin on or off. Off, the site sends email as before. |
| API key | A key with Sending access, starting with rk_. Once saved it is shown masked. Leave the field empty to keep it. |
| From email | The address every email is sent from. It must be on a domain you verified. |
| From name | The name beside it. Empty, the site's title is used. |
| Always use this From | On by default. Emails a plugin sends from another address go out from yours, with that address as the Reply-To. |
| Fallback | On by default. When Rasket cannot send an email, the site sends it the way it did before. |
| Email log | On by default. Keeps who each email went to, its subject and the result, for 1 to 365 days. |

## When Rasket cannot send

With **Fallback** on, your site keeps sending email even when Rasket cannot take it. What the plugin does depends on why:

| When | What happens |
| --- | --- |
| The key is wrong, deleted or suspended | Sent the old way, and a notice on the Dashboard says so. |
| The From address is not on a verified domain | Sent the old way, and a notice on the Dashboard says so. |
| Your sending quota is used up | Sent the old way, and a notice on the Dashboard says so. |
| Rasket cannot be reached | Sent the old way. |
| The email is over a limit, such as too many recipients | Sent the old way, with the reason in the log. |
| Rasket is busy or has a brief error | Tried once more after a moment. If that fails too, sent the old way. |
| Rasket refuses the email itself, such as an attachment type it does not take | Not sent, and marked Failed in the log. Sending it another way would hide the problem. |
| Rasket does not answer in time | Never sent the old way, because Rasket may already be delivering it. Marked Failed in the log, though it may still arrive. |

A Dashboard notice goes away by itself once Rasket sends the next email. With Fallback off, every email Rasket cannot send is marked Failed instead.

## The email log

Open **Settings**, then **Rasket**, then the **Email log** tab. Each row shows when an email was sent, who it went to, its subject and what happened:

| Status | What it means |
| --- | --- |
| Sent | Rasket accepted the email. Details shows its email ID, the one Rasket's Emails page shows. |
| Pending | The email was already on its way from an earlier attempt, so it was not sent twice. |
| Sent the old way | Rasket could not send it, so the site's own mailer did. Details says why. |
| Failed | The email was not sent. Details shows the reason. |

The log never stores what an email says. Old entries are deleted after the number of days you set. The log takes part in WordPress's personal data export and erase tools, under **Tools**.

## WooCommerce and form plugins

- **Anything that sends through WordPress works.** That includes WooCommerce, Contact Form 7, WPForms, Gravity Forms, and membership and booking plugins.
- **Form emails keep their Reply-To.** A contact form often sends “from” the visitor, which Rasket would refuse. With **Always use this From** on, the email is sent from your address and the visitor's becomes the Reply-To, so replying still reaches them.
- **WooCommerce order emails arrive as HTML.** WooCommerce also adds a plain text version through a WordPress hook that the plugin does not use, so that version is not sent. Mail apps show the HTML.

## Connect your WooCommerce store

With WooCommerce 8.9 or newer, the plugin also connects your store to a Rasket project, so store flows can send abandoned-checkout reminders, thank-yous and more. Your store sends to Rasket; Rasket never calls your site.

> Connecting a WooCommerce store opens on Rasket soon. The steps below are ready.

1. In WordPress, open **Marketing → Rasket** and press **Connect to Rasket**.
2. Sign in to Rasket and pick the project the store sends to, or make one for it. Only a project admin can connect a store.
3. You come back to WordPress. Your customers and the last 60 days of orders go over in the background. Old orders never start a flow.

A site that can't open Rasket can use a store ID and key instead. Copy them from **Settings → Integrations → WooCommerce** after making a new key there, and paste them under **Use a store key instead**, or add `RASKET_STORE_ID` and `RASKET_STORE_KEY` to `wp-config.php`. A store key sends that store's events, customers and products and checks its Rasket codes, and nothing else.

### What the store sends

| Event | When |
| --- | --- |
| `store:product.viewed` | A visitor opens a product page, with tracking on and their consent. |
| `store:cart.updated` | A shopper we can recognise adds, removes or changes an item. |
| `store:checkout.started` | The shopper's email reaches your store at checkout. |
| `store:order.placed` | An order is placed through your checkout. |
| `store:order.paid` | The order is paid, or moves to Processing or Completed. |
| `store:order.fulfilled` | The order moves to Completed. |
| `store:order.cancelled` | The order moves to Cancelled. |
| `store:order.refunded` | A refund is made, once for each refund. |

Orders made in wp-admin, through the REST API or as subscription renewals are not sent, so a renewal never starts a thank-you. Each event is sent once, however often it is retried.

### Consent at checkout

The plugin adds one unticked checkbox, with your own words (by default “Email me news and offers”), to the block checkout and the classic one. Only people who tick it can get marketing email. Rasket keeps the label and the time as the record. Not ticking it changes nothing for someone already subscribed or unsubscribed.

### The cart link

An abandoned-checkout email links to your store, which puts the cart's items back and opens the checkout. The link holds only the items, for 30 days: no sign-in and no address, so a forwarded email gives nothing away.

### Product views

Switch on **Product views and carts** to load Rasket's script on product, cart and checkout pages. With a consent plugin that supports the WP Consent API, the script waits until the visitor allows marketing cookies.

### Your products

Your products, with their prices, pictures, links and variations, go to Rasket when they change and again every night, so emails can show the product someone looked at, a cart, or your best sellers. A product you delete or move to the bin leaves your emails. Hidden, private and draft products are never shown.

### Discount codes

An email with a discount block gives each subscriber their own code. Your shop doesn't need to hold them in advance: the first time someone applies one at checkout, the plugin asks Rasket about it and saves it as a coupon that works once, with Rasket's amount, minimum spend and expiry. Under **Marketing → Coupons** they are described “Rasket · ” and the discount's name, and ones that expired unused are removed after a day. If Rasket can't be reached at that moment, the shopper is asked to try again in a minute, and your own shared code still works.

### Sales from your emails

Rasket credits an order to the last campaign or flow email the customer clicked or opened shortly before it, or to the email whose code the order used, and shows what each one earned. It knows the customer by the email address on the order, so someone who clicks and then checks out under another address is not credited.

### When something stops

- **Rasket can't be reached.** Updates wait and are retried for 24 hours. Checkout never waits for Rasket.
- **The plugin stops checking in.** It checks in every five minutes. After an hour without one, Rasket shows the store as not heard from and holds cart and checkout reminders, so nobody is reminded about something they bought. On a quiet site with WP-Cron off, run your host's cron job every few minutes.
- **A copy of your site.** A staging copy notices its address changed and pauses itself, so its test orders never reach your project.

### Disconnecting

Disconnect from **Marketing → Rasket** or from Settings → Integrations → WooCommerce in Rasket. Sending stops at once, the store's data in Rasket is deleted 48 hours later, and your contacts stay.

## Limits

Rasket takes up to 50 recipients and 100 attachments in one email, and 40 MB in all. The plugin checks these before sending. An email over a limit is sent the old way when Fallback is on, and marked Failed when it is off.

## Plugin or SMTP

Use the plugin. It has the test button, the log and the fallback, and it sends over HTTPS, which every host allows; some hosts block the ports email servers use. Rasket also takes [SMTP](https://www.rasket.com/docs/smtp), which suits a site that already has an SMTP plugin set up and should stay that way. Use one or the other, not both.

## Multisite

Each site in a network has its own settings and its own log. A key in `wp-config.php` applies to every site in the network.

## Troubleshooting

### “Add your Rasket API key to start” or “Add the From email to start”

The plugin is on but missing one of the two. Fill it in on Settings → Rasket and save.

### “Rasket refused the API key”

The key was deleted, mistyped or suspended. Create a new key with Sending access under API keys in Rasket, paste it and save.

### “Rasket refused the sender”

The From email is not on a domain your team has verified for sending. Check the domain under Domains in Rasket, or change the From email to an address on a verified domain.

### “Your Rasket sending quota is used up”

Your plan's emails for this period are used. Emails go out the old way until the quota resets or you raise it under Billing.

### “Another plugin replaces WordPress's mail function”

Another email plugin has taken over, so Rasket never sees the site's email. Deactivate it under Plugins.

### The test button cannot be pressed

Rasket is not sending yet. The note at the top of the page says what is missing.

### An email is marked Failed

The Details column shows Rasket's reason. The [errors page](https://www.rasket.com/docs/errors) explains each one.

## Removing the plugin

Deactivating it puts the site back on its own mailer and keeps the settings. Deleting it under Plugins also removes its settings and the email log.
