Bygg med Skickamejl
Dokumentation och kodexempel för dig som vill skicka transaktionsmejl med Skickamejl. Testa API:t i Swagger eller gå direkt till ett exempel för din stack.
API-bas
Använd http://localhost:5121 lokalt. I produktion använder du den publika adressen till Skickamejl.
Autentisering
Skicka din API-nyckel i X-Api-Key. MCP använder Authorization: Bearer. Lägg aldrig nyckeln i publik frontendkod.
Förbered projektets avsändardomän
Öppna projektet och välj fliken Avsändardomäner. Kontoägaren eller en kontoadministratör skapar en domän eller väljer Koppla befintlig domän. Domänen och signaturerna tillhör kontot och kan delas av flera projekt.
Byt from i kodexemplen till en adress på den kopplade domänen och använd samma projekts API-token.
Kopplingen krävs för REST, SDK, mallar, MCP, kampanjer och Home Assistant, även i sandlåda.
Vid byte till ett annat projekt behöver domänen vara kopplad även där.
En oregistrerad eller okopplad domän ger HTTP 400 med sender_domain_not_linked.
Inget meddelande sparas eller skickas. Rätta projektkopplingen eller avsändaradressen innan du försöker igen.
Node.js eller modern JavaScript
Använd inbyggd fetch i Node 18+ eller installera ett HTTP-bibliotek om projektet redan använder det.
Installera valfria paket
npm install
# Om du vill använda axios i stället för fetch:
npm install axios
För frontendappar: skicka aldrig API-token från webbläsaren. Lägg anropet i din backend, server action eller edge-funktion.
Skicka med fetch
const response = await fetch("http://localhost:5121/api/meddelanden", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-Api-Key": process.env.SKICKAMEJL_API_KEY
},
body: JSON.stringify({
from: "no-reply@example.se",
to: "kund@example.com",
subject: "Din orderbekräftelse",
textBody: "Tack för din beställning.",
htmlBody: "<p>Tack för din beställning.</p>",
messageType: "transactional"
})
});
if (!response.ok) {
throw new Error(await response.text());
}
Bilagor kan skickas med attachments på Pro och Företag, både för vanliga mejl och sparade mallar. Högst fyra PDF-, XLSX-, CSV- eller TXT-filer tillåts, totalt högst 5 MB. Gratis och Start får 403 med felkoden attachments_plan_required; inget mejl köas. Bilagorna rensas tillsammans med meddelandeinnehållet efter lagringstiden.
Koppla Skickamejl till Home Assistant
Integrationen kan skicka mejl från automationer, visa leveransstatus i dashboarden och trigga Home Assistant från riktiga mejlhändelser, till exempel när en mall skickas eller ett transaktionsmejl studsar.
Installera via HACS
- Lägg till
https://github.com/MRCCollective/home-assistant-skickamejlsom custom repository i HACS. - Välj kategori Integration och installera Skickamejl.
- Starta om Home Assistant och lägg till integrationen under Settings -> Devices & services.
- Koppla avsändaradressens domän under projektets Avsändardomäner i Skickamejl.
- Ange samma projekts API-token, avsändaradress och standardmottagare. Projekt-ID och projektnamn hämtas automatiskt.
- Kopiera webhook-URL:en från
sensor.skickamejl_webhook_url. - Öppna projektinställningarna i Skickamejl, välj rätt meddelandetyp under Home Assistant och skapa en webhook.
Välj eventet Skickat/köat om Home Assistant ska triggas så fort Skickamejl tar emot ett mejl. Payloaden innehåller bland annat event, eventType, templateId, messageId, deliveryId och recipient.
Har du flera projekt lägger du till integrationen en gång per projekt och kopplar avsändardomänen till varje projekt som ska skicka. Varje projekt får egna entiteter, standardadresser, webhook och leveransstatus.
Befintliga projekt-ID:n, API-token, API-vägar och webhookformat behålls. Uppgraderingen kopplar kontots befintliga registrerade domäner till dess befintliga projekt. Om en avsändardomän inte är registrerad eller kopplas bort nekas utskicket med sender_domain_not_linked, även från Home Assistant.
Källkod: home-assistant-skickamejl på GitHub
Automation på skickad mall
alias: Reagera när konto-mejl skickas
triggers:
- trigger: event
event_type: skickamejl_email_event
conditions:
- condition: template
value_template: "{{ trigger.event.data.template_id == 'account-created' }}"
actions:
- action: persistent_notification.create
data:
title: "Skickamejl"
message: "Ett konto-mejl skickades till {{ trigger.event.data.recipient }}."
Automation på studs
alias: Varna när ett Skickamejl studsar
triggers:
- trigger: event
event_type: skickamejl_email_event
conditions:
- condition: template
value_template: "{{ trigger.event.data.event == 'email.bounced' }}"
actions:
- action: notify.mobile_app_phone
data:
message: "Skickamejl kunde inte leverera till {{ trigger.event.data.recipient }}."
Exempel på webhook-payload
Fältet templateId kommer från mallens alias när mejlet skickas med en sparad mall.
{
"event": "email.sent",
"eventType": "Queued",
"templateId": "account-created",
"messageId": "msg_f3ab6f4acff845f6af560a5dd9a53d73",
"deliveryId": "delivery_123",
"recipient": "kund@example.se",
"deliveryStatus": "Queued"
}
Skicka mejl från en automation
Välj projektet med namn i Home Assistants visuella action-editor. config_entry_id skapas automatiskt av editorn.
action: skickamejl.send_email
data:
config_entry_id: "<Home Assistant config entry-ID>"
to: "familj@example.com"
subject: "Larm från huset"
text_body: "Rörelse upptäcktes i hallen."
to och from kan utelämnas för att använda projektets konfigurerade standardadresser. Både text- och HTML-innehåll stöds.
Projektidentitet för integrationer
En giltig API-token kan hämta projektets stabila ID och aktuella namn. Home Assistant använder detta automatiskt vid konfiguration.
curl "https://skickamejl.se/api/projekt" \
-H "X-Api-Key: <server-api-token>"
{
"projectId": "3115521f-0b99-42e7-ace5-c80b78a193d5",
"projectName": "Produktion"
}
Dashboardkort
Lovelace-kortet visar det automatiskt hämtade projektnamnet, backendstatus, senaste leveransstatus, leverans-ID, meddelande-ID och leveranshistorik. Det kan också visa ett valfritt formulär för testmejl.
# Dashboard resource
/skickamejl_static/skickamejl-card.js?v=0.5.0
# Manual card
type: custom:skickamejl-card
show_test_form: true
Testformuläret innehåller mottagare, ämne och textmeddelande. Lämna mottagaren tom för att använda standardmottagaren. Kortet skickar alltid via samma projekt som den valda backend-entiteten.
Utforska våra SDK-paket
Välj paket för din stack när du vill slippa bygga egna HTTP-anrop. SDK:erna använder projektets API-token i X-Api-Key och stöder både vanliga meddelanden och sparade mejlmallar.
Installera .NET-paketet
dotnet add package Skickamejl.Sdk
NuGet-paket: Skickamejl.Sdk
Källkod: skickamejl-sdk-dotnet på GitHub
Lägg nyckeln i user-secrets, miljövariabler eller din hemlighetshanterare, inte i källkod.
dotnet user-secrets set "Skickamejl:ApiKey" "<server-api-token>"
dotnet user-secrets set "Skickamejl:BaseUrl" "https://skickamejl.se/"
Skicka meddelande och mall
using Skickamejl.Sdk;
builder.Services.AddHttpClient("Skickamejl", (services, client) =>
{
var configuration = services.GetRequiredService<IConfiguration>();
client.BaseAddress = new Uri(
configuration["Skickamejl:BaseUrl"] ?? "https://skickamejl.se/");
});
builder.Services.AddScoped(services =>
{
var configuration = services.GetRequiredService<IConfiguration>();
var apiKey = configuration["Skickamejl:ApiKey"]
?? throw new InvalidOperationException("Skickamejl:ApiKey saknas.");
return new SkickamejlClient(
services.GetRequiredService<IHttpClientFactory>().CreateClient("Skickamejl"),
apiKey);
});
app.MapPost("/send-test", async (SkickamejlClient client) =>
{
var message = await client.SendMessageAsync(new SendMessageRequest(
From: "no-reply@example.se",
To: "kund@example.com",
Subject: "Test från .NET")
{
TextBody = "Det här är ett test.",
HtmlBody = "<p>Det här är ett test.</p>",
Tag = "sdk-test"
});
var template = await client.SendTemplateMessageAsync(
"orderbekraftelse",
new SendTemplateMessageRequest(
From: "no-reply@example.se",
To: "kund@example.com")
{
Variables = new Dictionary<string, string>
{
["customerName"] = "Anna",
["orderNumber"] = "12345"
},
Tag = "order"
});
return Results.Accepted(value: new { message, template });
});
Installera Node-paketet
npm install @mrccollective/skickamejl-sdk
npm-paket: @mrccollective/skickamejl-sdk
Källkod: skickamejl-sdk-node på GitHub
Använd Node 18+ eller en runtime med fetch. Lägg API-token i miljövariabler eller din hemlighetshanterare.
SKICKAMEJL_API_KEY=<server-api-token>
SKICKAMEJL_BASE_URL=https://skickamejl.se/
Skicka meddelande och mall
import { SkickamejlClient } from "@mrccollective/skickamejl-sdk";
const client = new SkickamejlClient({
baseUrl: process.env.SKICKAMEJL_BASE_URL ?? "https://skickamejl.se/",
apiKey: process.env.SKICKAMEJL_API_KEY
});
const message = await client.sendMessage({
from: "no-reply@example.se",
to: "kund@example.com",
subject: "Test från Node",
textBody: "Det här är ett test.",
htmlBody: "<p>Det här är ett test.</p>",
messageType: "transactional",
tag: "sdk-test"
});
const template = await client.sendTemplateMessage("orderbekraftelse", {
from: "no-reply@example.se",
to: "kund@example.com",
variables: {
customerName: "Anna",
orderNumber: "12345"
},
messageType: "transactional",
tag: "order"
});
console.log(message.messageId, template.messageId);
Använd MCP med en AI-klient
Du behöver en AI-klient med stöd för externa MCP-servrar. Anslut klienten till Skickamejl med API-nyckeln för det projekt som agenten ska arbeta med.
Hämta projektets API-nyckel
Öppna projektet i Skickamejl och kopiera en API-nyckel. Nyckeln bestämmer vilket projekt agenten får använda.
Välj din AI-klient
Följ rätt flik nedan. Konfigurationsformatet skiljer sig mellan olika MCP-klienter.
Starta om och kontrollera anslutningen
Starta om klienten och kontrollera att verktygen från Skickamejl visas innan du ber agenten skicka något.
1. Spara nyckeln
Lägg nyckeln i miljövariabeln SKICKAMEJL_API_TOKEN. Spara den inte i projektets källkod.
$env:SKICKAMEJL_API_TOKEN = "<server-api-token>"
Kommandot ovan gäller den aktuella PowerShell-sessionen. Använd operativsystemets eller organisationens hemlighetshantering för en beständig installation.
2. Lägg till Skickamejl i Codex
Lägg konfigurationen i ~/.codex/config.toml eller i projektets .codex/config.toml.
[mcp_servers.skickamejl]
url = "https://skickamejl.se/mcp"
bearer_token_env_var = "SKICKAMEJL_API_TOKEN"
default_tools_approval_mode = "writes"
Starta om Codex och använd /mcp för att kontrollera att servern är ansluten. Inställningen writes gör att skrivande verktyg kräver godkännande.
Kontrollera klientens stöd
Den här fliken gäller bara klienter som använder formatet mcp.json. Placering av filen och stöd för miljövariabler varierar mellan klienter.
- Typ
- Streamable HTTP
- Endpoint
https://skickamejl.se/mcp- Autentisering
Authorization: Bearer
Exempel för mcp.json
{
"mcpServers": {
"skickamejl": {
"type": "http",
"url": "https://skickamejl.se/mcp",
"headers": {
"Authorization": "Bearer <server-api-token>"
}
}
}
}
Ersätt platshållaren lokalt och lägg aldrig filen med en riktig API-nyckel i Git. Använd klientens stöd för miljövariabler eller säker lagring när det finns.
3. Be agenten använda Skickamejl
När anslutningen är klar kan användaren beskriva uppgiften med vanlig text:
Använd Skickamejls MCP-server för att skicka ett transaktionellt testmejl.
Mottagare: <mottagare@example.com>
Ämne: MCP-test
Text: Det här skickades via MCP.
Granska mottagare och innehåll när klienten ber om godkännande. Vilka bekräftelser som visas styrs av AI-klienten.
Nästa steg
Gå vidare till den tekniska referensen, SDK-paketen eller agentanpassade integrationsregler.
.NET SDK
Installera den officiella klienten för C# och .NET-projekt.
Öppna skickamejl-sdk-dotnet på GitHubNode SDK
Installera den officiella klienten för Node.js och moderna JavaScript-projekt.
Öppna skickamejl-sdk-node på GitHubMCP-server
Anslut agenter till Skickamejls MCP-endpoint med projektets API-token.
https://skickamejl.se/mcp