---
name: "newsletters_connect_service"
area: "newsletters"
title: "Connect the business's email service"
price: "free"
method: "POST"
url: "https://api.conecto.chat/v1/tools/newsletters_connect_service"
mcp_server: "https://api.conecto.chat/mcp/newsletters"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/newsletters/newsletters_connect_service"
---

# Connect the business's email service (`newsletters_connect_service`)

Connects the business's own email service (Brevo, Amazon SES, Mailgun or any SMTP server), which every newsletter email goes out through.

Newsletters go out through the business's own email service, from an address on its own domain: any service that takes mail over SMTP, such as Brevo, Amazon SES, Mailgun, Postmark, SendGrid, Mailchimp Transactional or the web host. Give its SMTP server, login and the from address; Conecto logs in to check them and keeps the password encrypted, never shown again. Calling it again replaces them, and issues waiting for the service go out on the next round. With test_to, a short email also goes out, which shows the service takes mail from that address. Free.

Price: Free. A call that fails costs nothing.

## Use it when

Before the first newsletter, or when the business moves to another email service or changes its password.

- For a newsletter tool that keeps its own list, like Mailchimp or Kit, use [connect_add](https://conecto.chat/tools/connect/connect_add.md).

## Say this to your agent

> Our newsletter should go out through our Brevo account from news@halversoncycle.example. The SMTP key is in the Brevo settings.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `host` | string | yes | The SMTP server, e.g. smtp-relay.brevo.com or email-smtp.eu-west-1.amazonaws.com. 3 to 255 characters. |  |  |
| `port` | integer | no | 587 (STARTTLS) or 465 (SSL/TLS). Port 25 is blocked on Conecto's servers. 1 to 65,535. |  | `587` |
| `security` | string | no | starttls or ssl. Left out: ssl on port 465, starttls otherwise. | `"starttls"`, `"ssl"` |  |
| `username` | string | yes | The SMTP login (for Brevo the SMTP login, for SendGrid "apikey"). 1 to 254 characters. |  |  |
| `password` | string | yes | The SMTP password or key (for Brevo an SMTP key, not the account password). 1 to 1,000 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `from_email` | string | yes | The address issues come from, on a domain the service lets the business send from, e.g. news@halversoncycle.com. Up to 254 characters. |  |  |
| `per_day` | integer | no | The service's own daily limit, if it has one (Brevo's free plan: 300). Issues then go out over several days. 1 to 10,000,000. |  |  |
| `test_to` | string | no | Also send a short test email to this address. Up to 254 characters. |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `newsletters_connect_service` on the MCP server `https://api.conecto.chat/mcp/newsletters` with these arguments:

```json
{
  "host": "smtp-relay.brevo.com",
  "port": 587,
  "username": "8a1b2c001@smtp-brevo.com",
  "password": "xsmtpsib-example-key",
  "from_email": "news@halversoncycle.example",
  "per_day": 300
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/newsletters_connect_service \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"host": "smtp-relay.brevo.com", "port": 587, "username": "8a1b2c001@smtp-brevo.com", "password": "xsmtpsib-example-key", "from_email": "news@halversoncycle.example", "per_day": 300}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "newsletters_connect_service",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.00",
  "balance_usd": "$19.75",
  "result": {
    "service": {
      "host": "smtp-relay.brevo.com",
      "port": 587,
      "security": "starttls",
      "username": "8a1b2c001@smtp-brevo.com",
      "from_email": "news@halversoncycle.example",
      "per_day": 300,
      "checked_at": "2026-10-14T08:00:00+00:00",
      "last_error": null,
      "last_error_at": null,
      "paused_until": null
    },
    "next": "Create a newsletter with newsletters_create, or write an issue for one with newsletters_write_issue."
  }
}
```

`result`: service: the server, port, security, login, from address and daily limit (never the password), and next: what to do now.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `payment_required` | 402 | The business has never topped up; newsletters need one real top-up. | Top up once (POST /v1/topups), then try again. |
| `sending_paused` | 403 | The business's email is paused after bounces, complaints or emails refused as cold outreach. | Tell the owner. Conecto reviews the pause before sending resumes. |
| `invalid_input` | 400 | Port 25, or an address that is not an email address. | Use port 587 or 465, and fix the address the message names. |
| `login_failed` | 400 | The business's email service refused the login. | Check the SMTP login and password (often an SMTP key, not the account password) and connect it again. |
| `service_unreachable` | 502 | The business's email service could not be reached. | Check the SMTP server and port (587 or 465), then try again. |
| `service_refused` | 502 | The business's email service turned the email down, often a from address it does not allow. | Allow the from address in the service, or connect it with one it allows. |
| `service_busy` | 503 | The business's email service asked to slow down. | Try again in a few minutes. |
| `refused` | 422 | The business's email service will not take mail for an address. | Use another address for that person. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [newsletters_remove_service](https://conecto.chat/tools/newsletters/newsletters_remove_service.md): Disconnects the business's email service and forgets its password; newsletters wait until one is connected again. Free.
- [newsletters_create](https://conecto.chat/tools/newsletters/newsletters_create.md): Creates a newsletter people join on its own page by confirming their address, sent through the business's own email service. Free.
- [newsletters_update](https://conecto.chat/tools/newsletters/newsletters_update.md): Renames a newsletter or changes its description, postal address or archive. Free.
- [newsletters_list](https://conecto.chat/tools/newsletters/newsletters_list.md): The business's newsletters with their pages and subscriber counts, and the email service they go out through. Free up to 1,000,000 reads a month.
- [newsletters_invite](https://conecto.chat/tools/newsletters/newsletters_invite.md): Emails each person a request to confirm a subscription; only those who confirm ever get an issue. Free.
- [newsletters_subscribers](https://conecto.chat/tools/newsletters/newsletters_subscribers.md): Who is on a newsletter, newest first: confirmed, waiting to confirm, unsubscribed, bounced or complained. Free up to 1,000,000 reads a month.
- [newsletters_remove_subscriber](https://conecto.chat/tools/newsletters/newsletters_remove_subscriber.md): Deletes someone from a newsletter for good, with their history. Free.
- [newsletters_write_issue](https://conecto.chat/tools/newsletters/newsletters_write_issue.md): Writes a draft issue in Markdown, to test and then send. Free.
- [newsletters_update_issue](https://conecto.chat/tools/newsletters/newsletters_update_issue.md): Changes a draft issue's subject, body or preheader. Free.
- [newsletters_send_test](https://conecto.chat/tools/newsletters/newsletters_send_test.md): Emails an issue to up to 5 addresses as subscribers will see it, marked [Test]. Free.
- [newsletters_send_issue](https://conecto.chat/tools/newsletters/newsletters_send_issue.md): Sends a draft to everyone who confirmed, now or at a set time, through the business's own email service. Free.
- [newsletters_cancel_issue](https://conecto.chat/tools/newsletters/newsletters_cancel_issue.md): Stops a scheduled issue, or one still going out; what went out already stays sent. Free.
- [newsletters_get_issue](https://conecto.chat/tools/newsletters/newsletters_get_issue.md): One issue: its text, where it stands, and once sent how many it reached, bounced, unsubscribed and clicked, link by link. Free up to 1,000,000 reads a month.
- [newsletters_list_issues](https://conecto.chat/tools/newsletters/newsletters_list_issues.md): A newsletter's issues, newest first, optionally of one status. Free up to 1,000,000 reads a month.
