evre
TR

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

FieldValue
Hostsmtp.evre.email (veya api host’un)
Port2525 / 587 (STARTTLS) veya 465 (implicit TLS)
Usernameapikey (boş olmayan herhangi bir değer çalışır)
PasswordProje API key (evre_…)
EncryptionTLS 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.