Debian, exim4

Dacă trebuie să configurați expedierea mesajelor de pe serverul nostru prin poștă pentru domenii de la Yandex.

Introduceți adresa de e-mail pentru această gazdă (smarthost): smtp.yandex.ru:587







atribuim parola pentru cutia poștală în fișierul /etc/exim4/passwd.client:

Dacă serverul de e-mail Yandex jură, aveți nevoie de un câmp FROM completat. Înregistrați-o în fișierul /etc/exim4/conf.d/rewrite/00_exim4-config_header:

Acum puteți trimite mesaje cu Apache (puțin mai târziu voi descrie modul de configurare) sau o comandă a formularului ecou "Testing Exim" | mail-uri de testare [email protected]

Ei bine și da - nu spam 😉
De asemenea, nu utilizați această metodă pentru acele cazuri în care accesul la server prin ssh (sau chiar ftp în directoarele disponibile prin http) are acces la persoanele care pot începe spamul.

Cum se limitează lista cutiilor care pot trimite mesaje de la server

Acum creați fișierele de care avem nevoie:

În fișierul /etc/exim4/conf.d/router/01_exim4-outgoing-filter scrieți regulile care vor fi aplicate la poșta de ieșire:

Dacă ați ales încă "Configurația împărțită în fișiere mici: nu", atunci aceste reguli ar trebui să fie scrise imediat după linie

Această regulă vă permite să trimiteți numai e-mailuri din orice căsuțe poștale de domeniu care sunt listate în fișierul /etc/exim4/allowed.domains sau casetele listate în fișierul /etc/exim4/allowed.mails. Fiți atenți la "sau" - dacă domeniul este scris în primul fișier, atunci în cel de-al doilea sens este inutil să-i listați cutiile. Și dacă trebuie să permiteți trimiterea numai dintr-o casetă de domeniu - atunci nu este nevoie să o scrieți în permis.domeni, trebuie să scrieți o căsuță poștală specifică în permis. Mails

Cutiile și domeniile trebuie să fie scrise în întregime (fără reguli, asteriscuri și altele) câte unul pe rând:

Puteți verifica astfel:

În / var / log / exim4 / mainlog ca răspuns la acest lucru veți vedea ceva în spirit:

A doua regulă (check_outgoing) verifică dacă valoarea câmpului expeditorului (care este, de asemenea, smtp.sender, este și numele smtp.name) este potrivit pentru una dintre cele trei reguli. Primul este expeditorul gol (acesta include e-mailurile generate de serverul de poștă în sine - de exemplu, bucăți de livrare). Al doilea este că expeditorul se potrivește cu șablonul * @ oricum, numele listei este reținut. Domenii. În al treilea rând, întregul câmp de expeditor (user @ domain) este specificat în permis.mails.

De asemenea, rețineți că linia din configurația apache2 este pentru introducerea formularului:

expune valorile câmpului expeditorului la [email protected] (în acest caz, nu va funcționa din scripturi în sine, doar prin htaccess). Prin urmare, dacă CMS trimite scrisori dintr-o cutie diferită de cea specificată în acest loc - va înceta să trimită scrisori.

În fișierul de configurare php, corectați calea sendmail_path.

În Debian: /etc/php5/apache2/php.ini sau /etc/php4/apache2/php.ini

<в других дистрибутивах>

Corectați setarea SPF

Pe scurt, SPF este o modalitate de a combate spamul.

Vom trimite mailuri de la un server al cărui IP PTR nu este egal cu unul din înregistrările MX ale serverului și în cele mai multe cazuri PTR IP nu este egal cu domeniul nostru (nu întotdeauna hocherii sunt de acord să schimbe PTR). În acest caz, probabilitatea de a obține scrisori în spam este mărită. Dar există o modalitate bună de ao micșora: specificați corect înregistrarea SPF a domeniului nostru.







Înregistrarea SPF este o înregistrare obișnuită a unei zone de domeniu, care are tipul TXT. Puteți afla valoarea curentă pentru domeniu folosind comanda gazdă în Linux:

Se vede că IP-ul PTR, la care domeniul meu este legat (IP-ul serverului meu) este server.adminunix.ru.

v = spf1 și mx ptr ptr: example.com includ: _spf.google.com

Înregistrarea este specificată corespunzător domeniului dvs., determinată de proprietarul serverului DNS. De obicei, serverul este gestionat de un server și oferă posibilitatea de a efectua modificări în zonele DNS prin panoul de găzduire. Sau poate schimba înregistrarea la cerere. În fișierul de zonă ar trebui să apară o înregistrare ca:

adminunix.ru. TXT v = spf1 și mx ptr includ: _spf.google.com

După actualizarea zonei, gazda va afișa următoarele:

$ host -t TXT adminunix.ru
adminunix.com TXT »v = spf1 și mx ptr includ: _spf.google.com

bool mail (șir $ la. șir $ subiect șir $ message [, string $ additional_headers [, string $ additional_parameters]])

Este $ additional_parameters și interisuet. În acesta este necesar să transferați expeditorul real:

mail ($ la, $ subiect, $ mesaj, $ additional_headers, $ additional_parameters. "[email protected]");

Expeditorul este indicat cu opțiunea -f.

Acum mesajele trimise prin poștă () vor fi absolut adecvate (cu condiția să specificați toate anteturile SMTP necesare, cum ar fi "FROM:", "TO:", etc.).

Și dacă mai multe site-uri cu IP diferite (setarea Exim pentru a trimite mesaje de la IP diferite)?

Vrem să folosim un server SMTP local pentru a trimite poștă de pe toate site-urile de pe server. Nu există nici o problemă dacă Exim este configurat corect (vezi mai sus). Dar problema apare dacă diferite site-uri lucrează pe diferite IP-uri. Nu vrem să "aruncăm" prin poștă faptul că toate site-urile noastre trăiesc pe același server. În mod implicit, Exim trimite toate e-mailurile din interfața principală (prima) IP și acest IP către toți destinatarii din literele "Received:" pentru anteturile SMTP. În plus, este indicat numele serverului, care în cazul diferitelor site-uri de pe server a fost ales neutru.

Pentru a nu "scorch" serverul IP, trebuie să trimiteți un mesaj către serverul de la distanță de la IP, egal cu înregistrarea A a domeniului site-ului. Acest lucru se face simplu prin schimbarea configurării Exim. Vom face modificări în setările de transport SMTP ale Exim. Dacă alegeți o configurație monolit, trebuie să editați fișierul:

local_interfaces = a.a.a.a. b.b.b.b. c.c.c.c. d.d.d.d
smtp_active_hostname = $ lsearch>
smtp_banner = "$ smtp_active_hostname ESMTP $ tod_full"

În fișier găsim linia "remote_smtp:" (căutați în nano - F6). Adăugați la sfârșitul acestui bloc:

Aceasta înseamnă că atunci când trimiteți un mesaj trebuie să determinați domeniul expeditorului e-mailului (pentru [email protected] este adminunix.ru) și să trimiteți e-mailuri de la adresa IP la care este legat acest domeniu. Este de la sine înțeles că domeniul trebuie să fie legat de serverul unde este instalat Exim.

De asemenea, trebuie să creați un fișier oriunde în fișierul de legare a domeniilor în IP (domeniul poate avea mai multe adrese IP, așa că doar căutarea - nu va fi rulată). Am ales locul pentru fișier: / etc / exim4 / domain2ip

Acolo intrăm în domeniile noastre conform șablonului:

adminunix.ru: 123.123.123.123
vasya.ws: 123.123.123.124

Nu uitați să adăugați domeniul în fișier în cazul în care apare un site nou.
Apropo, șirul helo_data = "$ sender_address_domain" poate fi adăugat la fișier, chiar dacă aveți un IP pentru toate site-urile. Apoi, în protocolul HELLO SMTP (și, prin urmare, în anteturile literelor) domeniul dvs. va apărea.

Rămâne să verificați dacă toate setările funcționează corect. Pentru a face acest lucru, trimiteți pur și simplu un mesaj de la serverul local prin intermediul consolei.

$ mail -a "De la: [email protected]" -s Test [email protected] - [email protected]
test
cc:

Verificăm scrisoarea trimisă în cutia receptorului:

Dar textul protocolului SMTP:

Pentru a trimite mesaje către root, la fel ca multe utilitare ca smartd do, e-mailul nu a mers la [email protected], ci la [email protected]. Am schimbat / etc / aliases:

În fișierul /etc/exim4/conf.d/rewrite/00_exim4-config_header scriem regulile,

Și pentru mashing primite de la anteturile de litere de la serverele ip care se conectează la mailer noastre, trebuie să adăugăm această linie:

Citiți alte articole interesante







Articole similare

Trimiteți-le prietenilor: