SMTP
Yalnızca SMTP konuşan legacy uygulamalar ve araçlar, POST /emails ile aynı kontrol düzlemi üzerinden gönderebilir (verified-from, suppression’lar, ramp, tracking, SES).
Etkinleştir
api process’inde (Coolify / Docker — serverless değil):
EVRE_SMTP_ENABLED=1
EVRE_SMTP_PORT=2525 # optional; 587 is common with STARTTLS
Coolify’da api container’ında TCP 2525 veya 587’yi aç. Hostname örneği: smtp.evre.email → o port.
TLS (STARTTLS)
SMTP hostname için bir sertifika sağla:
EVRE_SMTP_TLS_CERT="-----BEGIN CERTIFICATE-----..."
EVRE_SMTP_TLS_KEY="-----BEGIN PRIVATE KEY-----..."
# or file paths on the container:
# EVRE_SMTP_TLS_CERT_FILE=/certs/fullchain.pem
# EVRE_SMTP_TLS_KEY_FILE=/certs/privkey.pem
Her ikisi de çözüldüğünde sunucu STARTTLS ilan eder ve AUTH öncesi TLS ister.
Cert materyali yoksa AUTH plaintext’te izinlidir (yalnızca private network / edge terminator). Production’da STARTTLS’i (veya aşağıdaki implicit TLS’i) tercih et.
Implicit TLS (port 465)
Bazı istemciler/kütüphaneler yalnızca implicit TLS destekler (bağlantıda hemen TLS — STARTTLS negociasyonu yok). STARTTLS’in yanında onlar için ikinci bir listener çalıştır; aynı cert/key:
EVRE_SMTP_IMPLICIT_TLS_ENABLED=1
EVRE_SMTP_IMPLICIT_TLS_PORT=465 # optional; 465 is the SMTPS convention
EVRE_SMTP_TLS_CERT/EVRE_SMTP_TLS_KEY (veya *_FILE) gerektirir — implicit TLS’in
plaintext fallback’i yoktur, bu yüzden api process cert olmadan bu listener’ı başlatmayı reddeder.
Coolify’da api container’ında 2525/587 ile birlikte TCP 465’i aç.
Kimlik bilgileri
| Field | Value |
|---|---|
| Host | smtp.evre.email (veya api host’un) |
| Port | 2525 / 587 (STARTTLS) veya 465 (implicit TLS) |
| Username | apikey (boş olmayan herhangi bir değer çalışır) |
| Password | Proje API key (evre_…) |
| Encryption | TLS env ayarlıysa STARTTLS; etkinse 465’te implicit TLS |
Örnek (nodemailer)
import nodemailer from "nodemailer";
// STARTTLS (587)
const transport = nodemailer.createTransport({
host: "smtp.evre.email",
port: 587,
secure: false,
requireTLS: true,
auth: {
user: "apikey",
pass: process.env.EVRE_API_TOKEN!,
},
});
// Implicit TLS (465) — same credentials, secure: true instead
const transportImplicit = nodemailer.createTransport({
host: "smtp.evre.email",
port: 465,
secure: true,
auth: {
user: "apikey",
pass: process.env.EVRE_API_TOKEN!,
},
});
await transport.sendMail({
from: "Acme <hello@mail.example.com>",
to: "user@example.com",
subject: "Hello",
html: "<p>via SMTP</p>",
});
Limitler
HTTP gönderim yoluyla aynı: doğrulanmış From domain, ek limitleri, suppression’lar, güven kotaları. Zamanlama ve templateId SMTP üzerinden desteklenmez — bunlar için REST API’yi kullan.