### Download file example
Source: https://learn.sweego.io/docs/sftp/how_to_use_sftp
An example of downloading a specific remote file to a local path using the get command.
```bash
sftp> get documents/remotefile.txt /path/to/localfile.txt
```
--------------------------------
### Full domain setup with DNS records
Source: https://learn.sweego.io/docs/integrations/terraform
Example demonstrating how to create a Sweego domain and provision the required DNS records using the inwx provider. Note that the name attribute returned by the provider does not include the root domain, so it may need to be appended manually.
```hcl
resource "sweego_domain" "example" {
domain = "mail.yourdomain.com"
}
# Verification CNAME
resource "inwx_nameserver_record" "sweego_domain_record" {
domain = "yourdomain.com"
type = resource.sweego_domain.example.domain_record.type
name = "${resource.sweego_domain.example.domain_record.name}.yourdomain.com"
content = resource.sweego_domain.example.domain_record.data
}
# DKIM TXT record
resource "inwx_nameserver_record" "sweego_dkim" {
domain = "yourdomain.com"
type = resource.sweego_domain.example.dkim_record.type
name = "${resource.sweego_domain.example.dkim_record.name}.yourdomain.com"
content = resource.sweego_domain.example.dkim_record.data
}
# DMARC TXT record
resource "inwx_nameserver_record" "sweego_dmarc" {
domain = "yourdomain.com"
type = resource.sweego_domain.example.dmarc_record.type
name = "${resource.sweego_domain.example.dmarc_record.name}.yourdomain.com"
content = resource.sweego_domain.example.dmarc_record.data
}
```
--------------------------------
### Connect to SFTP server example
Source: https://learn.sweego.io/docs/sftp/how_to_use_sftp
An example of the sftp command using a specific port and user credentials.
```bash
sftp -P 2222 john@example.com
```
--------------------------------
### Install @zapal/payload-email-sweego
Source: https://learn.sweego.io/docs/integrations/payload-cms
Install the adapter package using pnpm in your Payload project.
```bash
pnpm add @zapal/payload-email-sweego
```
--------------------------------
### Install Sweego component
Source: https://learn.sweego.io/docs/integrations/convex
Install the required npm package for the Sweego Convex component.
```bash
npm install @christian-ek/sweego
```
--------------------------------
### Install sendr and sendr_sweego
Source: https://learn.sweego.io/docs/integrations/sendr-gleam
Adds both the core sendr library and the Sweego backend to a Gleam project.
```sh
gleam add sendr sendr_sweego
```
--------------------------------
### Install Symfony Mailer
Source: https://learn.sweego.io/docs/integrations/symfony-mailer
Install the required Symfony Mailer component via Composer.
```bash
composer require symfony/mailer
```
--------------------------------
### Install Sweego Notifier Bridge
Source: https://learn.sweego.io/docs/integrations/symfony-mailer
Install the necessary Symfony Notifier and Sweego bridge components via Composer.
```bash
composer require symfony/notifier symfony/sweego-notifier
```
--------------------------------
### Download file using get command
Source: https://learn.sweego.io/docs/sftp/how_to_use_sftp
Use the get command within the sftp prompt to transfer a file from the remote server to a local destination.
```bash
sftp> get remotefile.txt localfile.txt
```
--------------------------------
### Send email with unique Reply-To in C#
Source: https://learn.sweego.io/docs/inbound/conversational_flow
C# example using HttpClient to POST to the Sweego email send endpoint. Generates a unique Reply-To address using a GUID and includes it in the JSON payload. Requires an API key and Newtonsoft.Json.
```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
class Program
{
static async Task Main()
{
var url = "https://api.sweego.io/v1/email/send";
// Generate unique Reply-To
var uniqueId = Guid.NewGuid().ToString();
var replyToEmail = $"transaction-{uniqueId}@yourdomain.com";
var payload = new
{
to = new[]
{
new { email = "customer@example.com", name = "John Doe" }
},
from = new
{
email = "support@yourdomain.com",
name = "Support"
},
replyTo = new[]
{
new { email = replyToEmail }
},
subject = "Order confirmation",
html = "
Hello,
Your order has been confirmed.
"
};
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Api-Key", "");
var json = JsonConvert.SerializeObject(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
```
--------------------------------
### Format for one-click method
Source: https://learn.sweego.io/docs/emails/headers/list_unsub
The expected format for the one-click method, including an example and the resulting headers.
```text
,
```
```json
{
"list-unsub": {
"method": "one-click",
"value": ","
}
}
```
```text
List-Unsubscribe: ,
List-Unsubscribe-Post: List-Unsubscribe=One-Click
```
--------------------------------
### Configure Dedicated Subdomain
Source: https://learn.sweego.io/docs/inbound/conversational_flow
Example of a reply-to subdomain configuration for inbound email routing.
```text
reply-to.yourdomain.com
```
--------------------------------
### Send SMS with Go
Source: https://learn.sweego.io/docs/sending/how_to_send_sms_by_api
This Go example demonstrates how to construct a JSON payload and send a POST request using the net/http package.
```go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"time"
)
func main() {
payload := map[string]interface{}{
"channel": "sms",
"provider": "sweego",
"campaign-type": "transac",
"sender-id": "",
"recipients": []map[string]string{
{"num": "", "region": "FR"},
},
"template-id": "",
"variables": map[string]string{
"name": "Alice",
},
}
jsonData, err := json.Marshal(payload)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
req, _ := http.NewRequest("POST", "https://api.sweego.io/send", bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Api-Key", "")
client := &http.Client{Timeout: 10 * time.Second}
resp, err := client.Do(req)
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Printf("Status Code: %d\nResponse: %s\n", resp.StatusCode, string(body))
}
```
--------------------------------
### SMTP Custom Headers
Source: https://learn.sweego.io/docs/emails/headers/custom_headers
Example of adding custom X- headers via SMTP.
```text
X-Ref-1: 643524
X-Ref-2: lervcn
X-Ref-3: o10icr
```
--------------------------------
### Send SMS with TFN using Go
Source: https://learn.sweego.io/docs/sms/us_canada_and_nanp_countries
Example of sending an SMS message using Go's net/http package.
```go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.sweego.io/send"
payload := map[string]interface{}{
"channel": "sms",
"provider": "sweego",
"recipients": []map[string]string{
{"num": "+1234567890", "region": "US"},
},
"message-txt": "Your message content",
"campaign-type": "transac",
"sender-id": "YOUR_TFN",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Api-Key", "")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
```
--------------------------------
### API Custom Headers
Source: https://learn.sweego.io/docs/emails/headers/custom_headers
Example of adding custom headers via the API, omitting the X- prefix.
```json
{
"headers": {
"Ref-1": "643524",
"Ref-2": "lervcn",
"Ref-3": "o10icr"
}
}
```
--------------------------------
### Authenticate API requests with cURL
Source: https://learn.sweego.io/docs/auth/api_keys
Example of how to include the Api-Key in the authorization header when making a request to the Sweego API.
```shell
curl -L 'https://api.sweego.io/' \
-H 'Content-Type: application/json' \
-H 'Api-Key: ' \
-d '{
"data_1": "hello",
"data_2": "bye"
}'
```
--------------------------------
### Send SMS with TFN using PHP
Source: https://learn.sweego.io/docs/sms/us_canada_and_nanp_countries
Example of sending an SMS message using PHP's file_get_contents and stream context.
```php
'sms',
'provider' => 'sweego',
'recipients' => [
['num' => '+1234567890', 'region' => 'US']
],
'message-txt' => 'Your message content',
'campaign-type' => 'transac',
'sender-id' => 'YOUR_TFN'
];
$options = [
'http' => [
'header' => [
'Api-Key: ',
'Content-Type: application/json'
],
'method' => 'POST',
'content' => json_encode($data)
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
echo $response;
?>
```
--------------------------------
### Generate Unique Identifier in C#
Source: https://learn.sweego.io/docs/inbound/conversational_flow
Examples of creating a unique Reply-To address using GUIDs or base64 encoded transaction IDs in C#.
```csharp
using System;
using System.Text;
// Example with UUID
string uniqueId = Guid.NewGuid().ToString();
string replyTo = $"transaction-{uniqueId}@yourdomain.com";
// Example with encoded ID
int transactionId = 12345;
string encodedId = Convert.ToBase64String(Encoding.UTF8.GetBytes(transactionId.ToString()))
.Replace("+", "-").Replace("/", "_").TrimEnd('=');
string replyTo = $"tx-{encodedId}@yourdomain.com";
```
--------------------------------
### Initialize Terraform
Source: https://learn.sweego.io/docs/integrations/terraform
Run this command after declaring the provider to download and initialize the Sweego provider plugin.
```bash
terraform init
```
--------------------------------
### Full Example: Input HTML and Delivered HTML
Source: https://learn.sweego.io/docs/tracking/email_tracking
Shows the input HTML passed to Sweego (sending domain: send.example.com) and the delivered HTML with rewritten links and an injected tracking pixel. The tracking domain is t.send.example.com, and the unsubscribe link uses /t/u/.
```html
Hi,
This is my new message with Sweego.
More details: our website
Unsubscribe
```
```html
Hi,
This is my new message with Sweego.
More details:
our website
Unsubscribe
```
--------------------------------
### Connect to SFTP server via command line
Source: https://learn.sweego.io/docs/sftp/how_to_use_sftp
Use the sftp command with the specified port, username, and hostname to initiate a connection.
```bash
sftp -P port username@hostname
```
--------------------------------
### Initialize the client
Source: https://learn.sweego.io/docs/integrations/convex
Create a Sweego instance in convex/sweego.ts to use within your Convex functions.
```typescript
import { components } from "./_generated/api";
import { Sweego } from "@christian-ek/sweego";
export const sweego = new Sweego(components.sweego, {});
```
--------------------------------
### Inbound Email Webhook Payload Example
Source: https://learn.sweego.io/docs/inbound/setup_inbound
Example JSON payload sent to your webhook URL when an inbound email is received. Contains event metadata, sender, recipients, message content, and attachment metadata. Attachments are not included; use the attachment UUID to fetch content via the Sweego API.
```json
{
"event_type": "email_inbound",
"timestamp": "2024-12-19T13:49:28.849638+00:00",
"swg_uid": "04-601790a1-5fd4-4106-8e5a-469ec1af1c93",
"from_": {
"email": "my@mailaddress.com",
"name": "My Name"
},
"to": [
{
"email": "anything@myinbound.mydomain.com",
"name": ""
}
],
"cc": [],
"text": "Receiv",
"html": null,
"subject": "test",
"inbound_domain": "myinbound.mydomain.com",
"attachments": [
{
"uuid": "02b8f2b6-b491-4450-9231-c3912ab28850",
"name": "random.pdf",
"content_type": "application/pdf",
"size": 38408
},
{
"uuid": "5dcd1ef8-abbd-4f77-b60d-6984aa404b51",
"name": "screenshot.jpg",
"content_type": "image/jpeg",
"size": 19458
},
],
"event_id": "10c072f1-7821-4f30-9574-f13e3890701a",
"channel": "email",
"transaction_id": null
}
```
--------------------------------
### Bulk send with per-recipient variables using Go
Source: https://learn.sweego.io/docs/sending/how_to_send_email_by_api
This Go example demonstrates how to construct a JSON payload and send a POST request to the Sweego API using the net/http package.
```go
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"time"
)
func main() {
payload := map[string]interface{}{
"template-id": "",
"channel": "email",
"provider": "sweego",
"recipients": []map[string]interface{}{
{
"email": "",
"name": "Alice",
"variables": map[string]string{
"name": "Alice",
"custom_field": "value_for_alice",
},
},
{
"email": "",
"name": "Bob",
"variables": map[string]string{
"name": "Bob",
"custom_field": "value_for_bob",
},
},
},
"from": map[string]string{
"name": "Your name",
"email": "",
},
"subject": "Email subject",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", "https://api.sweego.io/send/bulk/email", bytes.NewBuffer(jsonData))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Api-Key", "")
client := &http.Client{Timeout: 10 * time.Second}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Printf("Status: %d\nResponse: %s\n", resp.StatusCode, string(body))
}
```
--------------------------------
### Set environment variables
Source: https://learn.sweego.io/docs/integrations/convex
Configure your Sweego API key and webhook secret in your Convex deployment using the Convex CLI.
```bash
npx convex env set SWEEGO_API_KEY swg_xxxxxxxx
npx convex env set SWEEGO_WEBHOOK_SECRET
```
--------------------------------
### Send SMS with PHP
Source: https://learn.sweego.io/docs/sending/how_to_send_sms_by_api
This PHP example uses the cURL extension to send the SMS request.
```php
'sms',
'provider' => 'sweego',
'campaign-type' => 'transac',
'sender-id' => '',
'recipients' => [
['num' => '', 'region' => 'FR']
],
'template-id' => '',
'variables' => [
'name' => 'Alice'
]
];
$ch = curl_init('https://api.sweego.io/send');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Api-Key: ',
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo "Status: $statusCode\n";
echo "Response: $response\n";
?>
```
--------------------------------
### Import an existing domain with terraform import
Source: https://learn.sweego.io/docs/integrations/terraform
Use this command to bring an existing Sweego domain under Terraform management by specifying the resource name and its UUID.
```bash
terraform import sweego_domain.example 3923bb62-f1e2-4362-ad1f-1af9f54d10f0
```
--------------------------------
### Send SMS with Node.js
Source: https://learn.sweego.io/docs/sending/how_to_send_sms_by_api
This Node.js example uses the node-fetch library to perform the POST request.
```javascript
const fetch = require('node-fetch');
const payload = {
channel: "sms",
provider: "sweego",
"campaign-type": "transac",
"sender-id": "",
recipients: [{ num: "", region: "FR" }],
"template-id": "",
variables: { name: "Alice" }
};
fetch('https://api.sweego.io/send', {
method: 'POST',
headers: {
'Api-Key': '',
'Content-Type': 'application/json'
},
body: JSON.stringify(payload)
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
```
--------------------------------
### Configure Sweego DSN in .env
Source: https://learn.sweego.io/docs/integrations/symfony-mailer
Add the Sweego DSN to your .env file to enable the transport.
```text
MAILER_DSN=sweego://YOUR_API_KEY@default
```
--------------------------------
### Open Tracking Webhook Payload
Source: https://learn.sweego.io/docs/webhooks/payload
Payload format for the email_opened webhook event, including all fields and an example.
```APIDOC
## Open Tracking Webhook Payload
### Description
This webhook event is triggered when an email is opened, either by a human or a proxy. The payload contains tracking information including the IP address, user agent, and proxy status.
### Event Type
email_opened
### Payload Fields
- **event_type** (string) - The type of event, always "email_opened".
- **timestamp** (timestamp) - The time the event occurred.
- **swg_uid** (string) - The Sweego user identifier.
- **event_id** (UUID) - Unique identifier for the event.
- **channel** (string) - The channel through which the event was sent (e.g., "email").
- **transaction_id** (UUID) - Unique identifier for the transaction.
- **headers** (object) - Contains email headers, including:
- **x-mailer** (string) - The mailer used.
- **x-swg-uid** (string) - The Sweego user identifier.
- **x-campaign-id** (string) - The campaign identifier.
- **x-client-id** (string) - The client identifier.
- **x-originating-ip** (string) - The originating IP address.
- **x-campaign-type** (string) - The campaign type.
- **x-custom-header** (string|int) - Custom header value.
- **x-transaction-id** (UUID) - The transaction identifier.
- **campaign_tags** (string|null) - Tags associated with the campaign, or null.
- **campaign_type** (string) - The type of campaign.
- **campaign_id** (string) - The campaign identifier.
- **recipient** (string) - The email address of the recipient.
- **domain_from** (string) - The domain from which the email was sent.
- **subject** (string) - The subject line of the email.
- **open** (object) - Contains open details:
- **ip_address** (string) - The IP address of the open.
- **user_agent** (string) - The user agent of the open.
- **proxy** (bool) - Whether the open was via a proxy.
### Example Payload
```json
{
"event_type": "email_opened",
"timestamp": "2024-01-01T00:00:00",
"swg_uid": "02-6e5dbe48-e6f4-4af3-8fb4-bf125e75776b",
"event_id": "3e434a94-628c-4cbd-92b5-ed6be715aa2c",
"channel": "email",
"transaction_id": "568c5678-2d03-40f8-89e0-22ffb5cfe63d",
"headers": {
"x-mailer": "Sweego",
"x-swg-uid": "02-6e5dbe48-e6f4-4af3-8fb4-bf125e75776b",
"x-client-id": "f8367456332593298d050cf4bc83e0ab",
"x-client-ip": "XXX.XXX.XXX.XXX",
"x-campaign-id": "fake_campaign",
"x-campaign-type": "default",
"x-originating-ip": "XXX.XXX.XXX.XXX",
"x-transaction-id": "568c5678-2d03-40f8-89e0-22ffb5cfe63d"
},
"campaign_tags": null,
"campaign_type": "default",
"campaign_id": "fake_campaign",
"recipient": "XXXX@XXXXX.com",
"domain_from": "my_domain.from",
"subject": "Test webhook",
"open": {
"ip_address": "XXX.XXX.XXX.XXX",
"user_agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)",
"proxy": true
}
}
```
```
--------------------------------
### Click Tracking Webhook Payload
Source: https://learn.sweego.io/docs/webhooks/payload
Payload format for the email_clicked webhook event, including all fields and an example.
```APIDOC
## Click Tracking Webhook Payload
### Description
This webhook event is triggered when a recipient clicks a link in an email. The payload contains tracking information including the clicked URL, IP address, user agent, and proxy status.
### Event Type
email_clicked
### Payload Fields
- **event_type** (string) - The type of event, always "email_clicked".
- **timestamp** (timestamp) - The time the event occurred.
- **swg_uid** (string) - The Sweego user identifier.
- **event_id** (UUID) - Unique identifier for the event.
- **channel** (string) - The channel through which the event was sent (e.g., "email").
- **transaction_id** (UUID) - Unique identifier for the transaction.
- **headers** (object) - Contains email headers, including:
- **x-mailer** (string) - The mailer used.
- **x-swg-uid** (string) - The Sweego user identifier.
- **x-campaign-id** (string) - The campaign identifier.
- **x-client-id** (string) - The client identifier.
- **x-originating-ip** (string) - The originating IP address.
- **x-campaign-type** (string) - The campaign type.
- **x-custom-header** (string|int) - Custom header value.
- **x-transaction-id** (UUID) - The transaction identifier.
- **campaign_tags** (string|null) - Tags associated with the campaign, or null.
- **campaign_type** (string) - The type of campaign.
- **campaign_id** (string) - The campaign identifier.
- **recipient** (string) - The email address of the recipient.
- **domain_from** (string) - The domain from which the email was sent.
- **subject** (string) - The subject line of the email.
- **click** (object) - Contains click details:
- **ip_address** (string) - The IP address of the click.
- **url** (string) - The URL that was clicked.
- **user_agent** (string) - The user agent of the click.
- **proxy** (bool) - Whether the click was via a proxy.
### Example Payload
```json
{
"event_type": "email_clicked",
"timestamp": "2024-12-10T17:35:39",
"swg_uid": "02-6e5dbe48-e6f4-4af3-8fb4-bf125e75776b",
"event_id": "3e434a94-628c-4cbd-92b5-ed6be715aa2c",
"channel": "email",
"transaction_id": "568c5678-2d03-40f8-89e0-22ffb5cfe63d",
"headers": {
"x-mailer": "Sweego",
"x-swg-uid": "02-6e5dbe48-e6f4-4af3-8fb4-bf125e75776b",
"x-client-id": "f8367456332369298d050cf4bc83e058",
"x-client-ip": "XXX.XXX.XXX.XXX",
"x-campaign-id": "fake_campaign",
"x-campaign-type": "default",
"x-originating-ip": "XXX.XXX.XXX.XXX",
"x-transaction-id": "568c5678-2d03-40f8-89e0-22ffb5cfe63d"
},
"campaign_tags": null,
"campaign_type": "default",
"campaign_id": "fake_campaign",
"recipient": "random@domain.com",
"domain_from": "my.domain.from",
"subject": "Test webhook 2024-01-01",
"click": {
"ip_address": "XXX.XXX.XXX.XXX",
"url": "https://google.com",
"user_agent": "Mozilla/5.0 (Windows NT 5.1; rv:11.0) Gecko Firefox/11.0 (via ggpht.com GoogleImageProxy)",
"proxy": false
}
}
```
```
--------------------------------
### Create a sweego_domain resource
Source: https://learn.sweego.io/docs/integrations/terraform
Basic configuration to create and manage a domain in your Sweego account.
```hcl
resource "sweego_domain" "example" {
domain = "mail.yourdomain.com"
}
```
--------------------------------
### Send SMS with Ruby
Source: https://learn.sweego.io/docs/sending/how_to_send_sms_by_api
This Ruby example uses the Net::HTTP library to send the SMS request.
```ruby
require 'net/http'
require 'json'
require 'uri'
payload = {
channel: 'sms',
provider: 'sweego',
'campaign-type': 'transac',
'sender-id': '',
recipients: [
{ num: '', region: 'FR' }
],
'template-id': '',
variables: {
name: 'Alice'
}
}
uri = URI('https://api.sweego.io/send')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri.path, {
'Api-Key' => '',
'Content-Type' => 'application/json'
})
request.body = payload.to_json
response = http.request(request)
puts "Status: #{response.code}"
puts "Response: #{response.body}"
```
--------------------------------
### Retrieve message status via cURL
Source: https://learn.sweego.io/docs/logs/email/sending
Example command to poll the status of a message using its swg_uid.
```shell
curl -L 'https://api.sweego.io/logs/' \
-H 'Api-Key: '
```
--------------------------------
### Format for mailto method
Source: https://learn.sweego.io/docs/emails/headers/list_unsub
The expected format for the mailto method, including an example with optional query parameters.
```text
```
```json
{
"list-unsub": {
"method": "mailto",
"value": ""
}
}
```
--------------------------------
### Configure Sweego DSN
Source: https://learn.sweego.io/docs/integrations/symfony-mailer
Add the Sweego DSN to your .env file using your API key.
```text
SWEEGO_DSN=sweego://YOUR_API_KEY@default
```
--------------------------------
### HTML template example for import
Source: https://learn.sweego.io/docs/templates/create
A complete HTML email template that can be copied and pasted into the Sweego HTML import field. It includes a basic structure with a container, heading, paragraph, and footer, styled with inline CSS.
```html
Template
Hello, World!
This is a sample HTML template.
You can customize it according to your needs.
```
--------------------------------
### Send SMS with TFN using Node.js
Source: https://learn.sweego.io/docs/sms/us_canada_and_nanp_countries
Example of sending an SMS message using the Node.js https module.
```javascript
const https = require('https');
const data = JSON.stringify({
channel: 'sms',
provider: 'sweego',
recipients: [
{ num: '+1234567890', region: 'US' }
],
'message-txt': 'Your message content',
'campaign-type': 'transac',
'sender-id': 'YOUR_TFN'
});
const options = {
hostname: 'api.sweego.io',
path: '/send',
method: 'POST',
headers: {
'Api-Key': '',
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = https.request(options, (res) => {
let body = '';
res.on('data', (chunk) => body += chunk);
res.on('end', () => console.log(body));
});
req.on('error', (error) => console.error(error));
req.write(data);
req.end();
```
--------------------------------
### Configure Sweego Provider with Variables
Source: https://learn.sweego.io/docs/integrations/terraform
Use Terraform variables to securely pass your Sweego credentials instead of hardcoding them in your configuration files.
```hcl
provider "sweego" {
api_key = var.sweego_api_key
client_id = var.sweego_client_id
}
```