BLACKBOXCentru de ajutor

Trimiterea emailurilor din site și aplicații (SMTP)

Cum configurați site-ul, aplicația sau serverul să trimită emailuri printr-un serviciu SMTP autentificat, ce înregistrări SPF, DKIM și DMARC adăugați și ce cereți suportului pentru un server de email propriu.

generalActualizat 2026-10-09~11 min de citit
Pe această pagină

Pe un server nou, de regulă nu este configurat un serviciu de trimitere a emailurilor: formularele de contact, resetările de parolă și mesajele sarcinilor cron nu pleacă. Ghidul arată cum le trimiteți, cu autentificare, prin serverul SMTP al furnizorului de email al domeniului sau al unui serviciu de email tranzacțional și ce înregistrări DNS adăugați. Comenzile se rulează pe server, ca root, într-o sesiune SSH (Conectarea la server prin SSH (Windows, macOS, Linux)); adresa IP a serverului este în panoul app.blackbox.md, „Infrastructură” → „Serverele mele”, câmpul „IP”.

Disponibil pentru: oricine are acces root prin SSH la un server BLACKBOX. Pe un plan „VPS hosting” cu panou de control, întrebați întâi suportul ce panou este instalat: Planurile „VPS hosting” cu panou de control.

Ce vă trebuie de la furnizorul de email

Folosiți serverul SMTP al furnizorului la care este emailul domeniului dvs. sau un serviciu de email tranzacțional. Din documentația furnizorului notați:

Ce Valori uzuale În acest ghid
Serverul SMTP numele dat de furnizor SMTP_HOST
Portul și criptarea 587 cu STARTTLS sau 465 cu TLS 587
Utilizatorul și parola adresa de email și parola ei, o parolă de aplicație sau o cheie API, după cum indică furnizorul UTILIZATOR_SMTP, PAROLA_SMTP
Adresa expeditorului o adresă a domeniului dvs., permisă de furnizor ADRESA@DOMENIU

În multe aplicații, STARTTLS (portul 587) apare ca „TLS”, iar TLS de la conectare (portul 465) apare ca „SSL”.

De ce nu trimiteți direct de pe adresa IP a serverului: serverele destinatare verifică reputația adresei IP care trimite și înregistrarea ei inversă (PTR), iar o adresă nouă nu are încă reputație. Reverse DNS (PTR) nu se setează din panou: scrieți-ne IP-ul serverului și numele dorit. Prin serviciul SMTP, mesajele pleacă de pe serverele furnizorului, care trec deja aceste verificări.

Securitate Parola SMTP sau cheia API permite oricui o are să trimită emailuri în numele domeniului dvs. Nu o puneți în depozite git publice, în capturi de ecran sau în tichete. Dați fișierelor care o conțin permisiunile 600, ca să le poată citi doar proprietarul. Dacă furnizorul permite, creați un utilizator sau o cheie separată doar pentru trimitere, în locul parolei căsuței dvs. de email.

Pasul 1. Verificați conexiunea la serverul SMTP

  1. Instalați utilitarul nc. Ubuntu și Debian:

    apt update
    apt install -y netcat-openbsd

    AlmaLinux și CentOS Stream:

    dnf install -y nmap-ncat
  2. Testați portul:

    nc -vz -w 5 SMTP_HOST 587

    Rezultatul bun conține succeeded (Ubuntu, Debian) sau Connected (AlmaLinux, CentOS Stream). timed out sau TIMEOUT înseamnă că serverul SMTP nu a răspuns în 5 secunde.

  3. Verificați criptarea:

    openssl s_client -starttls smtp -connect SMTP_HOST:587 -crlf

    După certificat trebuie să apară Verify return code: 0 (ok). Scrieți apoi rândurile de mai jos, apăsând Enter după fiecare. Răspunsul la EHLO trebuie să conțină un rând cu AUTH, iar QUIT închide conexiunea.

    EHLO test
    QUIT

Pentru portul 465 testați cu:

nc -vz -w 5 SMTP_HOST 465
openssl s_client -connect SMTP_HOST:465 -crlf

Dacă testul dă timed out sau TIMEOUT:

  1. Verificați firewall-ul din sistem. ufw și firewalld lasă implicit să iasă tot traficul; dacă ați restricționat traficul de ieșire, permiteți portul: Firewall: filtrarea din rețea și ufw/firewalld pe server.
  2. Încercați celălalt port (465 în loc de 587 sau invers).
  3. Dacă tot nu merge, scrieți suportului adresa IP a serverului (IP_SERVER), portul și numele serverului SMTP: Cum contactați suportul BLACKBOX.

Pasul 2. Configurați aplicația

WordPress

WordPress trimite implicit prin funcția mail() a PHP, care pe un server nou nu are prin ce trimite. Instalați un plugin SMTP din directorul de plugin-uri WordPress și completați în setările lui:

  • serverul: SMTP_HOST;
  • portul: 587, criptarea TLS (STARTTLS); sau portul 465, criptarea SSL;
  • autentificarea activată, cu utilizatorul și parola sau cheia API;
  • adresa expeditorului: ADRESA@DOMENIU.

Trimiteți apoi emailul de test din plugin. Instalarea WordPress: WordPress pe LEMP (nginx, MariaDB, PHP).

Alte aplicații și framework-uri

Completați setările SMTP în configurația aplicației sau în fișierul .env. Numele variabilelor diferă de la o aplicație la alta: folosiți-le pe cele din documentația ei. Un exemplu:

MAIL_HOST=SMTP_HOST
MAIL_PORT=587
MAIL_ENCRYPTION=tls
MAIL_USERNAME=UTILIZATOR_SMTP
MAIL_PASSWORD=PAROLA_SMTP
MAIL_FROM_ADDRESS=ADRESA@DOMENIU

Lăsați fișierul cu parola în afara depozitului git (adăugați-l în .gitignore) și permiteți citirea lui doar utilizatorului sub care rulează aplicația, de exemplu www-data:

chown www-data:www-data /var/www/APLICATIE/.env
chmod 600 /var/www/APLICATIE/.env

Reporniți aplicația, ca să citească noile setări.

Pe AlmaLinux și CentOS Stream, SELinux blochează implicit conexiunile din PHP (inclusiv WordPress) spre serverul SMTP. Permiteți-le:

setsebool -P httpd_can_sendmail 1

Pasul 3. Trimiterea de pe server cu msmtp (opțional)

Sarcinile cron, funcția mail() din PHP și programele care apelează sendmail au nevoie de un program care predă mesajele mai departe. msmtp le trimite prin serverul SMTP al furnizorului, cu aceleași date. El nu primește emailuri și nu ține o coadă de mesaje.

Ubuntu și Debian

apt update
apt install msmtp msmtp-mta
  • Pachetul msmtp-mta creează comanda /usr/sbin/sendmail, pe care o folosesc cron și PHP.
  • La întrebarea „Enable AppArmor support?” lăsați răspunsul implicit, „No”.

Atenție Dacă apt anunță că va șterge pachete (The following packages will be REMOVED), de exemplu postfix sau exim4, răspundeți n. Pe server rulează deja un program de email, folosit de un panou de control sau de un server de email propriu: nu-l înlocuiți cu msmtp, ci întrebați suportul.

AlmaLinux și CentOS Stream

  1. Verificați întâi dacă pe server există deja un program de email:

    ls -l /usr/sbin/sendmail

    Rezultatul bun conține „No such file or directory”. Dacă fișierul există, pe server rulează deja un program de email, folosit de un panou de control sau de un server de email propriu: nu instalați msmtp, ci întrebați suportul.

  2. Instalați msmtp din depozitul EPEL:

    dnf install -y epel-release
    dnf install -y msmtp nano
  3. Pachetul msmtp creează și comanda /usr/sbin/sendmail, pe care o folosesc cron și PHP. Verificați:

    readlink -e /usr/sbin/sendmail

    Rezultatul trebuie să fie /usr/bin/msmtp. Dacă comanda nu afișează nimic, creați legătura:

    ln -s /usr/bin/msmtp /usr/sbin/sendmail

Fișierul de configurare

  1. Creați fișierul:

    nano /etc/msmtprc
  2. Lipiți conținutul de mai jos, înlocuiți valorile cu majuscule, salvați cu Ctrl+O și Enter, apoi ieșiți cu Ctrl+X:

    defaults
    auth           on
    tls            on
    tls_starttls   on
    tls_trust_file /etc/ssl/certs/ca-certificates.crt
    syslog         LOG_MAIL
    
    account        default
    host           SMTP_HOST
    port           587
    from           ADRESA@DOMENIU
    set_from_header on
    user           UTILIZATOR_SMTP
    password       PAROLA_SMTP
    Rândul Ce face
    tls_trust_file fișierul cu autoritățile de certificare de încredere; pe AlmaLinux și CentOS Stream scrieți /etc/pki/tls/certs/ca-bundle.crt
    port 587 și tls_starttls on pentru portul 465 scrieți port 465 și tls_starttls off
    from adresa expeditorului; trebuie să fie permisă de furnizor
    set_from_header on pune adresa din rândul from în antetul „From” al fiecărui mesaj; fără el, mesajele cron pleacă de la root, iar unii furnizori le resping
    syslog LOG_MAIL scrie în jurnalul sistemului câte un rând pentru fiecare mesaj trimis
  3. Permiteți citirea fișierului doar lui root:

    chmod 600 /etc/msmtprc

Testul

printf 'Subject: Test\n\nTest' | msmtp ADRESA_DESTINATAR

Dacă comanda nu afișează nimic, mesajul a fost predat furnizorului. Verificați căsuța destinatarului, inclusiv dosarul Spam. Rezultatul trimiterii îl vedeți în jurnal:

journalctl -t msmtp -n 20

Un rând reușit se termină cu exitcode=EX_OK. La o eroare, msmtp afișează mesajul serverului SMTP: vedeți tabelul „Probleme frecvente” de mai jos.

PHP

  1. Configurați PHP-FPM să trimită prin msmtp, apoi reîncărcați-l. Ubuntu 24.04 (pe alt sistem, înlocuiți 8.3 cu versiunea PHP instalată, de exemplu 8.2 pe Debian 12):

    printf 'sendmail_path = "/usr/bin/msmtp -t"\n' > /etc/php/8.3/fpm/conf.d/99-msmtp.ini
    systemctl reload php8.3-fpm

    AlmaLinux și CentOS Stream:

    printf 'sendmail_path = "/usr/bin/msmtp -t"\n' > /etc/php.d/99-msmtp.ini
    systemctl reload php-fpm
  2. PHP rulează ca www-data (Ubuntu, Debian) sau apache (AlmaLinux, CentOS Stream) și nu poate citi un fișier 600 al lui root. Dați drept de citire grupului acestui utilizator. Ubuntu și Debian:

    chown root:www-data /etc/msmtprc
    chmod 640 /etc/msmtprc

    AlmaLinux și CentOS Stream, unde SELinux trebuie să permită și trimiterea din PHP:

    chown root:apache /etc/msmtprc
    chmod 640 /etc/msmtprc
    setsebool -P httpd_can_sendmail 1

Astfel, orice cod PHP de pe server poate citi datele SMTP: încă un motiv să folosiți un utilizator SMTP separat, doar pentru trimitere.

Cron

Cron trimite rezultatul sarcinilor la adresa din variabila MAILTO. Fără ea, trimite la utilizatorul local (de exemplu root), o adresă pe care serverul SMTP nu o poate livra.

  1. Deschideți crontab-ul:

    crontab -e
  2. Adăugați la început rândul de mai jos și salvați:

    MAILTO=ADRESA_DESTINATAR

Pasul 4. Adăugați SPF, DKIM și DMARC

Fără aceste înregistrări TXT, mesajele ajung des în Spam sau sunt respinse. Valorile exacte vi le dă furnizorul de email. Ce face fiecare înregistrare: secțiunea „Bune practici pentru trimiterea emailurilor” din Politica de utilizare acceptabilă: ce nu este permis.

Înregistrare „Nume” „Conținut”
SPF @ v=spf1 include:SPF_FURNIZOR ~all
DKIM SELECTOR._domainkey valoarea v=DKIM1; … dată de furnizor
DMARC _dmarc v=DMARC1; p=none; rua=mailto:ADRESA@DOMENIU
  • Un domeniu are o singură înregistrare SPF. Dacă există deja una, adăugați în ea include: al furnizorului, nu creați a doua. Adăugați ip4:IP_SERVER doar dacă serverul trimite el însuși, fără serviciu SMTP (de exemplu, un server de email propriu).
  • SELECTOR este numele dat de furnizor. Unii furnizori dau cheia DKIM ca înregistrare CNAME: dacă valoarea ei conține caracterul _, adăugați-o direct în contul furnizorului DNS, nu din panou.
  • Începeți DMARC cu p=none. Treceți la quarantine sau reject după ce rapoartele arată că mesajele dvs. trec verificarea.

Înregistrările se adaugă la furnizorul DNS al domeniului. Dacă ați conectat Cloudflare sau GoDaddy, le puteți adăuga din pagina „DNS” a panoului (app.blackbox.md/dns): „Adaugă înregistrare”, tipul TXT, câmpurile „Nume” și „Conținut”, apoi „Salvează”. Pașii: Gestionarea înregistrărilor DNS din panou.

După câteva minute, verificați pe server sau pe calculatorul dvs. (Linux, macOS):

dig +short TXT DOMENIU
dig +short TXT _dmarc.DOMENIU
dig +short TXT SELECTOR._domainkey.DOMENIU

Fiecare comandă trebuie să afișeze valoarea adăugată, între ghilimele. Pe Windows folosiți:

nslookup -type=TXT DOMENIU

Dacă dig lipsește pe server, instalați-l. Ubuntu și Debian:

apt install -y dnsutils

AlmaLinux și CentOS Stream:

dnf install -y bind-utils

Verificați livrarea

Unde Ce căutați
Jurnalul msmtp: journalctl -t msmtp exitcode=EX_OK la fiecare mesaj
Postfix, dacă îl folosiți: journalctl -u 'postfix*'; dacă sistemul are rsyslog, și /var/log/mail.log (Ubuntu, Debian) sau /var/log/maillog (AlmaLinux, CentOS Stream) status=sent
Căsuța destinatarului: mesajul original (sursa, cu antetele complete) rândul Authentication-Results, cu spf=pass, dkim=pass și dmarc=pass

Server de email propriu

Dacă vreți căsuțe de email pe server sau să primiți emailuri (Postfix și Dovecot ori emailul unui panou de control):

  • Un server de email pe VPS are nevoie de porturi (25, 465, 587, 993) care nu sunt deschise implicit în filtrarea din rețea. Filtrarea administrată de BLACKBOX lasă deschise implicit porturile 22, 80 și 443 și ping; alte porturi, la cerere, prin suport (Firewall: filtrarea din rețea și ufw/firewalld pe server).
  • Serverul trimite direct altor servere de email, deci contează reputația adresei IP și înregistrarea PTR. Reverse DNS (PTR) nu se setează din panou: scrieți-ne IP-ul serverului și numele dorit.
  • Pentru căsuțe de email, un furnizor specializat este de obicei mai simplu: nu administrați singur filtrarea spamului, reputația adresei și copiile de rezervă ale mesajelor.
  • Pe un plan „VPS hosting”, întrebați suportul ce panou de control este instalat: Planurile „VPS hosting” cu panou de control.

Important Întrebați suportul înainte de a instala un server de email. Scrieți adresa IP a serverului, numărul comenzii (BBX-…) și porturile de care aveți nevoie.

Regulile pentru trimiterea emailurilor

Capitolul 2 din „Termeni și condiții” (blackbox.md/info/terms) interzice:

  • spamul „în orice formă” trimis prin serviciile BLACKBOX, precum și spamul trimis prin alt furnizor pentru a face reclamă unor resurse găzduite la BLACKBOX (punctul 2.2);
  • adăugarea adreselor în liste de distribuție fără double opt-in. Dovezile consimțământului se păstrează cât timp există lista, iar listele cumpărate sau închiriate sunt interzise (punctul 2.3).

Trimiteți newsletterele și campaniile în masă printr-un serviciu specializat de email, nu prin SMTP-ul obișnuit al unei căsuțe. Detalii: Politica de utilizare acceptabilă: ce nu este permis.

O coadă de emailuri care tot crește sau mesaje pe care nu le-ați trimis pot însemna că serverul sau site-ul a fost spart: Serverul a fost spart sau este atacat: ce faceți.

Probleme frecvente

Mesaj sau simptom Cauza Ce faceți
Connection timed out, timed out sau TIMEOUT pe portul 587 sau 465 traficul de ieșire spre serverul SMTP nu trece verificați regulile ufw/firewalld, încercați celălalt port, apoi scrieți suportului IP-ul serverului, portul și serverul SMTP
535 sau „authentication failed” utilizator sau parolă greșită, ori furnizorul cere o parolă de aplicație sau o cheie API verificați datele; creați la furnizor o parolă de aplicație sau o cheie API
„Relay access denied” sau „Sender address rejected” furnizorul nu permite adresa expeditorului trimiteți de pe o adresă permisă de furnizor; la unii furnizori adăugați și verificați întâi domeniul
Mesajele ajung în Spam lipsesc SPF, DKIM sau DMARC, ori domeniul expeditorului diferă de cel autentificat adăugați înregistrările de la pasul 4 și trimiteți de pe o adresă a domeniului verificat la furnizor
sendmail: not found lipsește comanda sendmail Ubuntu și Debian: instalați msmtp-mta; AlmaLinux și CentOS Stream: creați legătura de la pasul 3
cannot set X509 trust file tls_trust_file indică fișierul altei distribuții folosiți calea pentru sistemul dvs. din tabelul de la pasul 3
account default not found: no configuration file available, la trimiterea din PHP utilizatorul PHP nu poate citi /etc/msmtprc aplicați chown și chmod 640 din secțiunea PHP
Pe AlmaLinux sau CentOS Stream, PHP nu trimite, deși testul din consolă reușește SELinux blochează trimiterea din PHP rulați comanda setsebool din secțiunea PHP

Întrebări frecvente

Pot comanda căsuțe de email de la BLACKBOX? Nu din cont: căsuțele de email nu se comandă online. Întrebați suportul ce vă poate oferi: Produse și configurații disponibile la cerere.

Poate asistentul AI să configureze trimiterea emailurilor? Da, cu unealta run_server_command și un token cu permisiunea „Rulează orice comandă ca root pe serverele mele” (servers:exec): Rularea comenzilor pe server prin AI. Datele SMTP pe care i le dați ajung la furnizorul modelului AI: folosiți un utilizator SMTP separat și schimbați-i parola dacă ați lipit-o într-o conversație (Securitatea token-urilor și a agenților AI).

Trebuie să configurez și aplicația, și msmtp? Nu neapărat. Dacă aplicația are setări SMTP proprii (pasul 2), acestea sunt suficiente. msmtp vă trebuie pentru cron, pentru funcția mail() din PHP și pentru programele care apelează sendmail. Cu msmtp configurat pentru PHP, și WordPress trimite fără plugin SMTP.

Am mutat site-ul de la alt furnizor și formularele nu mai trimit emailuri. De ce? La vechea găzduire, trimiterea era de obicei configurată de furnizor. Pe serverul BLACKBOX o configurați dvs., cu pașii de mai sus. Despre mutarea emailului: Mutarea unui site pe serverul BLACKBOX.

N-ați găsit răspunsul?Scrieți-ne și echipa de suport vă răspunde. support@blackbox.md
Deschideți un tichet