May 01

Relay mail from your server without MTA

Reading time: < 1 minute

Sometime you need to send notifications or simply you need to use sendmail command from your server, but you don't want to use a local mail server. Maybe use simple SMTP (ssmtp) could be a good idea to solve this kind of situations.

I use to configure SSMTP with a GMail account to send notifications from server different daemons, for example, crontab, supervisord, etc.

This is a cookbook configuration for SSMTP and GMail:

/etc/ssmtp/ssmtp.conf
root=user@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=user@gmail.com
UseSTARTTLS=YES
AuthUser=user@gmail.com
AuthPass=password
FromLineOverride=YES

/etc/ssmtp/revaliases

root:username@gmail.com:smtp.gmail.com:587
localusername:username@gmail.com:smtp.gmail.com:587

Installation in ubuntu server is as easy as: apt-get install ssmtp

Oct 14

Screencast 0×00 – Com funciona el SMTP?

Reading time: 2 – 3 minutes

Tal com vaig comentar en el post del desè aniversari en aquesta temporada intentaré convertir moltes de les publicacions que faig en forma de podcast a un format d’screencast. Per tal de fer això ja fa uns mesos que he estat jugant amb la Wacom Bamboo. De fet, la primera prova que he fet pel podcast és el video que publico en aquest post i que alguns ja heu vist a través de youtube. Es tracta d’un video que parla sobre com funciona el protocol SMTP.

Algunes persones m’han comentat que li troben a faltar musiqueta de fons mentre parlo, de fet, és un tema que tinc molt en compte de fer. Malgrat això la post-producció dels videos que gravo és el que més em molesta de fer així doncs si algú s’anima a col·laborar serà benvingut perquè a mi és la part que menys m’agrada, es nota que per mi el món multimedia és només un mitjà, oi?

Bé doncs, si teniu algún suggeriment d’on treure música creative commons per acompanyar els meus monòlegs aviseu. Ja que fins que no tingui algo clar segurament ho continuaré publicant amb el format que he fet aquest primer pilot. Obviament estic obert a mil altres suggerències, tot i que la tònica serà la de sempre. És a dir, contingut molt tècnic i notes orientades a gent a perfil geek. Potser aquesta primera nota serà la més light ja que només la vaig fer per provar.

Dec 16

authsmtp – serveis de relay autenticat

Reading time: 2 – 2 minutes

Tot llegint documentació sobre temes de postfix que com sempre ja sabeu que hi estic molt posat he trobat una empresa que es dedica a vendre serveis de relay dels nostres dominis via processos autenticats. És a dir, podem usar el nostre servidor domèstic amb una simple ADSL amb IP dinàmica i a través d’ASMTP podem enviar correus a través d’una IP lliure d’RBLs, registre PTR i altres problemes similars. Per tant, els nostres correus sortiran a la xarxa de forma totalment legítima i ben protegits a través d’aquest enllaç. El millor són els preus del servei que són més que raonables. Per exemple, per moltes PIMES i sistemes domèstics el cost mensual no superaria els 2€-3€.

No us confongueu, els serveis de l’empresa són de relay és a dir, no fan de mail-backup per tant els correus entrants no els guardaran ells i els re-enviaran cap al vostre SMTP sinó alrevés; el que vosaltres envieu usarà com a smart-host el servidor d’aquesta empresa. A més d’aquest servei també fan còpies de seguretat de tot el que s’envia perquè es pugui consultar a posteriori i es comprova que no s’enviin correus duplicats. A més quan vosaltres no estigueu dintre de l’oficina o de casa podreu enviar correus directament contra l’ASMTP com si del vostre servidor de correu es tractés. Tot el correu que s’envia passarà també per un anti-virus per assegurar que no envieu virus sense voler als vostres destinataris, això és realment una descàrrega de feina molt gran pels servidors de la vostre empresa ja que sovint és el que més carrega els servidors de correu.

Si voleu donar un cop d’ull a l’empresa: AuthSMTP

Dec 12

ACL Policy Daemon for Postfix

Reading time: 3 – 4 minutes

Fins ara l’únic policy daemon que usava per postfix és el policyd v1 que esta fet amb C i per temes de rendiment em donava grans funcionalitats, rapidesa i escalavilitat sobretot pel seu backend en MySQL. Però avui m’he vist obligat a instalar el ACL Policy Daemon que esta programat amb Twisted+Python i que a través de la seva capacitat de configurar les regles d’accés al Postfix vai ACLs m’he pogut montar una funcionlitat un pel rebuscada que em calia per un client.

El problema és que aquest client necessita:

  • Rebre correu pels seus dominis
  • Permetre relay previa autenticació dels seus roadwarriors

Doncs bé això planteja un problema degut a una funcionalitat contradictoria. Si configurem el Postfix perquè rebi correu local, podem protegir aquest correu contre UBE tan com volguem i més però si l’origen especificat en la transacció SMTP indica que el remitent és una compte de correu del mateix domini que el destí (sovint la mateixa compte de correu), aquest correu s’acceptarà com a legítim i no es demanarà autenticació perquè l’MTA on s’està enviant el correu és el destí del mateix. Gràcies a això el correu serà acceptat al MTA i només quedarà a expenses del anti-spam i regles UBE anturar-lo, el qual malgrat via SPF i d’altres similars intentarà aturar aquest correu això no sempre serà possible i menys si els intents d’injecció són de l’ordre de desenes de milers al dia. Ens trobavem que alunes desenes passaben els filtres igualment.

Així doncs, gràcies a aquest policy daemon he pogut programar un regla que diu algo així:

  • si IP d’enviant no és local
  • si origen del correu és un domini local
  • si destí del correu és un destí local
  • si l’usuari no s’ha autenticat
  • NO es pot enviar aquest correu!

Els clients que estan fora de l’empresa (roadwarriors) sempre que envien un correu ho fan via ASMTP així doncs, si volen enviar un correu a alguna compte del mateix domini que la seva ho faran de forma autenticada. Per altre banda, si un client de correu intern a l’emrpesa intenta enviar un correu ho farà amb una IP local de l’empresa i aquest filtre no el bloquejarà.

Com podeu veure el problema és una mica enrabassat. Per altre banda, si voleu fer un cop d’ull al fitxer de configuració policy.conf (un dels fitxers de configuració del aplicyd) que he creat és de l’estil d’aquest:

acl wl client_address NET_IP/MASK
action nice_users DUNNO
access wl nice_users

acl remitent sender @example.com
acl desti recipient @example.com
acl aut sasl_method (PLAIN|LOGIN)
action rej REJECT Auth required
access remitent desti !aut rej

Malgrat jo he usat el apolicyd per temes molt concrets s’ha de dir que el seu codi font és molt entenedor i simple de modificar, a més de suportar moltíssimes funcionalitats de serie que permeten ajustar les nostres regles de filtrat moltíssim. Realment m’ha sorprès de forma molt positiva no m’esperava que estigués tan ben pensat.

Aug 05

podcast 1×12: mail-gateway (GatV2)

Reading time: 2 – 4 minutes

GatV2 es un servidor de correo para hacer smart-relay o para que se entienda mejor el concepto para usar como frontend del servidor de correo de la empresa o del ISP (backend). GatV2 nos filtra todo el correo UCE y nos ofrece una herramienta de gestión del SPAM.

El siguiente esquema ofrece una idea de donde estaría el GatV2:

GatV2 network schema

A través del podcast podreis seguir cual es el proceso que sigue un correo para pasar através del GatV2. Obviamente no es sencillo entender a la primera todo lo que hace pero a través de este gráfico (pinchar encima para zoom), de la explicación y de la documentación de la web del proyecto espero que podais comprender mejor el proceso.

inside GatV2 process

Para ver las capturas de pantalla a las que se habla durante el podcast pasarós por la documentación del proyeco GatV2.

Finalmente el podcast:

El podcast dur alrededor de 1h, así pues Jorge me ha ayudado a hacer una tabla de contenidos del mismo así pues, podeis ir directamente al minuto que os interesa del podcast gracias a la siguiente información:

  • Presentación: 0-1m44s
  • Historia: 1m44s – 3m
  • En que consiste: 3m – 8m15s
  • Los componentes: 8m15s – 24m20s
  • Como funciona: 24m20s – 42m49s
  • WebUI del DSPAM: 42m49 – 55m55s
  • Despedida y cierre: 55m55s – 56m56s

En los próximos dias publicaremos (Jorge y yo) el podcast dividido en pequeños MP3 en l página del proyecto GatV2 para mayor comodidad de los interesados en el proyecto.

Jun 11

Postfix tips

Reading time: 6 – 9 minutes

Aquest inici de setmana l’he passat moltes i moltes hores llegint documentació del Postfix per tal de solucionar un problema a un client que tenia una cua de correu inmensa i que no hi havia manera de servir perquè el servidor no donava coll. Doncs bé, degut a això m’he hagut de llegir molts documents i volia referenciar-los per no perdre’ls de vista ja que molts d’ells són interessentíssims. Realment cada dia que passa estic més convensut que Postfix és la millor opció com a MTA, diria que he passat moltes hores i molts anys provant sendmail, exim i qmail. Però l’experiència sempre m’ha dit que Postfix era el que em solucionava les problemàtiques més inversemblants i així ha estat aquest cop també.

  • Postfix Bottleneck Analysis: aquest document és una introducció a l’eina qshape la qual ens permet veure quin és l’estat de les diferents cues que té postfix, no només om a totals sinó també destriat en dominis i amb una distribució temporal del temps que fa que el correu és a la cua. Realment molt i molt útil per saber on tenim realment acumulat el correu i quines mesures hem de prendre.
  • postsuper – Postfix superintendent: aquesta comanda ens permet fer tasques de manteniment a les cues de postfix. Malgrat la comanda postqueue també permet fer tasques d’aquest tipus aquestes tasques són molt més limitades i orientades a usuaris que no pas a administradors del sistema. Perquè entengueu la potència del postsuper algunes de les seves funcions són: borrar missatges d’una cua concreta a través del seu ID, posar missatges en estat hold així aquests missatges no s’intenten enviar i els tenim retinguts fins que ens interessi, es poden re-encuar missatges que ja han estat encuats així podem tornar a aplicar-los filtres que s’havien aplicat malament, etc.
  • Postfix built-in content inspection: bàsicament es tracta d’un conjunt d’ordres del fitxer main.cf que permeten filtrar els correus en funció d’expressions regulars aplicades a la capçalera del correu (header_checks), cos del correu (body_checks), adjunts mime (mime_header_checks) o caçalers dels correus adjunts als correus (nested_header_checks).
  • Postfix After-Queue Content Filter: aquest document explica com filtrar els correus de formés molt més avançades, per exemple, s’explica la base que tenen de funcionar aplicacions com l’amavisd-new quan s’integren amb postfix. Al que refereixo és a tenir un postfix escoltant el port 25, quan entra un correu aquest s’envia a un port de localhost, allà es processa el correu i es generen d’altres correus amb informes d’spam si fa falta i després es re-injecta a un altre port localhost en aquest cas publicat pel postfix i finalment aquest correu es serveix. Doncs això que sembla senzill de montar té les seves pecualiritats que cal tenir en compte i en aquest document s’expliquen molt i molt bé, a més ens referencia a eines que comento a continuació per crear els nostres propis SMTP proxies on podem aplicar els filtres que ens interessin. Un exemple d’aplicació, a part dels típics filtres anti-spam, seria montar serveis de comandes via SMTP o sigui, que enviant un correu amb un format concret aquest fes una serie d’accions i el resultat tornés al seu origen via email. En la meva època del packet radio usabem això per fer smtp2ftp, per exemple.
  • smtpprox – simple efficient SMTP proxy in perl: amb aquesta eina és trivial montar les nostres aplicacions a mida per fer filtres de correu tal com comentava en el punt anterior, a més des de la pròpia pàgina es referència a moltíssims patches per tal de fer funcions espcífiques amb aquesta eina. Alguns exemples: podem fer el mateix que fa amavisd-new però amb un codi molt més simple, podem fer de proxy d’autenticació per un SMTP que no té autenticació montada, tenir una llista de blacklist en MySQL, etc.Bàsicament l’SMTP proxy només fa de servidor SMTP per un costat i client SMTP per l’altre, al mig nosaltres podem processar el correu segons la seva informacó: capaçalera, adjuns, contingut del correu, etc.

Volia comentar de forma explícita una de les solucions ineressants que es presenta al primer document, el que parla sobre qshape. La idea és que a través d’aquesta utilitat podem trobar un domini sobrel el que s’hi encuen molts correus i per tant la cua de sortida de correus es veu perjudicada perquè aquest destí monopolitza gran part de la cua. Doncs bé, es tracta de construir una cua de sortida de correu només per aquest destí i fer que els correus que vagin cap allà es processin a part.

Per montar això cal:

  • Modificar el fitxer master.cf i afegir un “smtp” transport per la destinació en concret. Això es faria així:
  • /etc/postfix/master.cf:
        # service type  private unpriv  chroot  wakeup  maxproc command
        fragile   unix     -       -       n       -      20    smtp
  • Fixeu-vos que fixem el número de processos a un màxim de 20, això vol dir que com a molt hi podran haver 20 instàncies simultanees del procés “smtp” per servir correus d’aquesta cua de sortida.
  • Al main.cf configurem els límits de la cua que s’usarà pel transport “fragile” que hem configurat.
  • /etc/postfix/main.cf:
    transport_maps = hash:/etc/postfix/transport
        fragile_destination_concurrency_failed_cohort_limit = 100
        fragile_destination_concurrency_limit = 20
    
  • Ara toca crear el fitxer de transport on indicarem que els correus per aquest domini es serveixen per una cua particular, al costat del nom de la cua si es vol es pot indicar un host i un port cap a on es farà relay:
  • /etc/postfix/transport:
        example.com  fragile:
    
  • Recordeu que després de crear el fixer transport cal fer un postmap transport.
  • Per veure quin és l’estat de la nova cua, només cal fer qshape fragile.

Espero que si no coneixieu postfix aquest petit post hagi servit per veure fins a quin punt és simple i dinàmic de configurar, no pretenia fer cap introducció només una pura referència de documentació que crec que a partir d’ara intentaré tenir aprop.

May 26

phpList: newsletters i mailings de correu OpenSource

Reading time: 6 – 9 minutes

phpList logoFa temps l’O.Manyà em va demanar una aplicació per fer just això i no n’hi vaig saber dir cap, el més frustrant és que ja coneixia aquesta eina de fa molt de temps però mai li havia fet massa cas. De fet, la veia com una evolució del mailman. Però ara me’n adono que és algo molt més corporatiu, és a dir, no és pas una eina per gestionar llistes de correu (diria que no és capaç de fer-ho). Sinó que esta molt més orientat al concepte de newsletter o de mailings. O sigui, ideal per emetre comunicats d’empresa als nostres clients o per escriure mailings personalitzats als nostres clients informant del que sigui. Després de fer un repàs per les moltíssimes funcionalitats què té diria que la pinta és excel·lent. A més si ús passeu per la web del phpList veure-ho que té força screenshots i screencasts que poden donar-vos una idea molt aproximada de tota la funcionalitat que té l’eina.
A continuació adjunto el llistat de funcionalitats que té l’eina, com deia val la pena invertir-hi una estona en donar un cop d’ull. M’ha cridat molt l’atenció la possibilitat de poder generar mailings a partir de subscripcions a RSS. Així doncs, si a l’empresa tenim un blog podriem emetre un butlletí de notícies de forma automàtica gràcies a aquesta funcionalitat.

  • The Web Interface lets you write and send messages, and manage phplist over the internet.
  • phplist keeps sending messages from your web server, even after you shut down your computer.
  • 100 000 + subscribers. phplist is designed to manage mailing lists with hundreds of thousands of subscribers. phplist is excellent with smaller lists too!
  • No duplicate messages. No ‘forgotten’ messages. phplist manages message delivery with a message queue, ensuring that every subscriber gets the email message, and that no subscribers receive two copies, even if they’re subscribed to more than one list!
  • Open/View Tracking tells you how many users opened your email message. This provides a minimum statistic, as many email clients with privacy or security policies block images (gmail, thunderbird, and others).
  • Click Tracking tracks links and URLs. Statistics can be viewed by message, URL or subscriber.
  • Multiple Subscribe Pages allow you to choose many different combinations of templates, languages, user attributes and lists.
  • Templates are completely customizable, and make site integration a breeze.
  • Multiple Templates on different subscribe pages can integrate phplist with several different web sites.
  • Subscriber Attributes like ‘name’, ‘country’, and other personal information, are completely customizable. You can specify what information you need to get from users when they subscribe.
  • User Specific Content. You can use Subscriber Attributes in message content to make each and every email message personalized with the subscribers name, country, or any other attribute.
  • HTML email messages. Subscribers can be given the choice between text or html email messages. You decide whether subscribers can choose, what the default choice is, and what format a message is sent in: text only, html only, or both!
  • The HTML Editor allows you to edit html messages from phplist using FCKeditor. TinyMCE is also available.
  • Internationalization. phplist is available in English, French, German, Spanish, Portuguese, Traditional Chinese, Dutch, Vietname and Japanese and translation work is in progress for other languages.
  • Easy Install via Fantastico, FTP upload, or SSH.
  • Multiple List Administrators. The super-admin can assign lists to List Managers, who can manage their users and lists. The super-admin user can ‘prepare’ messages that can be sent by list managers to their lists.
  • Subscriber Preferences. Every email message contains personalized URLs for subscribers to update their preferences or unsubscribe. Subscribers can update their own information and keep your database up to date. Unlike most other mailing list managers, in phplist subscribers can change their email address.
  • The User Management tools are excellent to manage and maintain large databases of subscribers.
  • Bounce Processing keeps your database clean of unused and non-existent email addresses.
  • Advanced Bounce handling let’s you teach phplist to distinguish between permanent and temporary message-delivery errors. You can define automated actions on receipt of bounce messages according to matches with your regular expressions.
  • CSV Import and Export. Use CSV and tab delimited files to import your existing list of users or to export the users on the phplist system for use in your in-house database. phplist’s database has a ‘foreign key’ to help keep multiple copies of databases synchronized without duplicating users.
  • Attachments can be uploaded and included in messages for download.
  • Send a Web page. Tell phplist the URL of a web page you want to send to your users, and phplist will fetch it and send it. You can even put subscriber-specific parameters in the URL.
  • RSS feeds can be automatically sent to a mailing list weekly, daily, or monthly.
  • PDF messages can be automatically created and sent as attachments to ensure that your message is seen the way it was designed by all your subscribers, regardless of their email message reader.
  • Batch Processing is useful in shared hosting environments. Set the maximum number of sent messages in a given time period.
  • Throttling can limit the load on your server so it doesn’t overload.
  • Domain Throttling limits the number of emails to specific domains to keep on the friendly side of their system administrators.
  • Scheduled Sending let’s you tell phplist when the message is to be sent.
  • Repetition. A message can be repeated automatically to send updated dynamic content and attachments.
  • Text from HTML. Text email messages are managed fluently in phplist. phplist will automatically create a text version of an html message. Optionally the message composer can create it manually.
  • PGP signing and encrypting (soon).
    Send your message digitally signed or encrypted, or both.
  • Email to Fax (soon).
    Configure the details of your favourite email 2 fax gateway and phplist will send the HTML version of the message as a PDF attachment to your fax gateway. The fax will include the images in the HTML.
  • Integration with other tools. Several systems exist on the internet that integrate phplist with your favourite CMS or blogging tool. Check out the Documentation for a list.

Nov 22

Evolution ‘search folders’

Reading time: 2 – 4 minutes

Aquesta funcionalitat d’Evolution fa molt temps que la vaig veure, però no se m’havia mai acudit com treure-li rendiment amb la meva forma d’usar el correu. Com sabeu de fa molt de temps tinc les carpetes organitzades intentant seguir la idea de GTD. Doncs bé, malgrat això tenia certs problemes per seguir alguns llistes de correu i d’altres informacions que m’arriben al correu però que són de caire més secundari o personal. La solució l’he trobat gràcies a aquestes carpetes tan especials que em permeten agrupar correus en funcionar de paràmetres ben diferents.

Per si això de les search folders ni ús sona, jo ho definiria com carpetes amb continguts virtuals, és a dir, imagineu que teniu configurades diverses comptes de correu, llavors tindreu divers carpetes d’entrada de correu (inbox) si a més cada una de les comptes té diverses carpetes creades això farà que els diversos inbox no capiguen a la pantalla. Llavors sempre haureu d’estar fent scroll per estar al corrent dels nous correus que ús entren en les diverses comptes i diverses carpetes de cada compte.

Llista de carpetes de tipus search folder:

search-folders-001.png

La solució és tan senzilla com la de configurar, per exemple, un general inbox:

search-folders-002.png

Un altre search folder que tinc configurada és una que m’agrupa tots els missatges que tinc marcats com a importants, això ho acostumo a usar moltíssim per varies funcions. Per exemple, contestar correus en llistes de correu, saber tasques importants que esperant que es facin ja, o coses importants que espero que arribin fetes, etc.

search-folders-003.png

A més d’aquests dos exemples que he comentat tinc ues quantes carpetes més d’aquest tipus, com la de missatges no llegits, tasques a fer, tasques en espera, etc. a mi aquesta idea realment m’ha canviat la forma d’usar Evolution.

No oblideu que els missatges realment, no tenen perquè pertanyer a la mateix compte de correu i que la carpeta virtual no és una carpeta real. Així doncs, no s’hi poden arrossegar elements a dintre. De totes formes, si que es poden arrossegar correus de dintre cap a un altre carpeta, no virtual. Així doncs el focus de treball del meu Evolution ha canviat molt i ara treballo sempre amb la vista posada a la part on hi ha aquestes carpetes especials i a sobre tinc obertes totes les carpetes de la compte de correu principal. Així puc anar arrossegant i organitzant les tasques tal com feia abans.

Jul 22

pop2smtp: POP3 (“recojetodo”) a SMTP amb múltiples destins

Reading time: 2 – 3 minutes

Alguns ISPs ens permeten tenir una compte que reculli tot el correu enviat a un domini, això per exemple es pot usar com a mail-backup del nostre domini. Doncs bé a través de fetchmail és molt senzill re-injectar el correu enmagatzemat a una compte POP3 a un servidor SMTP contra un usuari. El més complicat, és si el correu que hi ha a la compte POP3 pot anar a més d’un destí, com el que deia fa un moment en comptes POP3 tipus ‘recojetodo’ o cul de sac com diuen alguns.

Doncs bé, per això he fet un petit script en python que a partir d’un fitxer BSMTP modifica la companda RCPT TO en funció de la informació de l’etiqueta Envelope to que conté una llista de les comptes d’email destí a qui va dirigit el correu. Així doncs, bàsicament la tasca consisteix en buscar quines comptes d’email apareixen a l’etiqueta comentada i després borrem la comanda RCPT TO i creem tantes comandes d’aquest tipus com faci falta en el seu lloc per enviar copies del correu que volem enviar als seus destins. Aquest nou fitxer BSMTP modificat l’injectem al nostre MTA. Aquest MTA serà l’encarregat de processar aquest correus i entregar-los a les comptes destí.

En el meu cas he decidit fer un petit shell script que s’executa des del crontab cada 10min. Aquest script, Crida a fetchmail per obtenir el fitxer BSMTP amb el correu que hi havia a la compte POP3, després crida l’script de python per modificar el fitxer BSMTP d’entrada tal com he comentat i crea un nou fitxer BSMTP de sortida. Finalment aquest fitxer s’injecta via SMTP cridant un petit script que gràcies al NetCat envia per SMTP el contingut del fitxer BSMTP de sortida.

L’script amb l’estructura de directoris empaquetat en un fitxer: pop2smtp_r1.tar.gz.

Segur que hi ha formes més elegants de resoldre el problema, però la veritat no les he sabut trobar.

Jun 12

Postfix: Verifiquem recipients des del mailgateway

Reading time: 2 – 3 minutes

El maig de l’any passat vaig publicar un petit manual de com configurar un Postfix per fer de ‘mailgateway’ d’un altre servidor MTA. Doncs bé, avui hi he afegit una funcionalitat que inicialmen creia impossible. Es tracta de comprobar si el correu que estem rebent des de fora i que va dirigit a un usuari local existeix en el servidor destí on enviarem el correu. Fins ara tots els correus amb destí @dominilocal.tld els agafabem i ja era el MTA intern qui el refusava. El problema d’això és que genera un email de resposta del MTA intern cap al host de ‘relay’ (mailgateway) i aquest correu després s’intenta entregar al remitent orignal. Amb el conseqüènt problema de creixement de la cua de missatges sobretot si el remitent és un email problemàtic.

diagrama-xarxa.png

Doncs bé buscant per la documentació de Postfix he trobat que a través del fitxer /etc/postfix/main.cf podia usar la comanda smtpd_recipient_restrictions per afegir una nova restricció que fos verificar el recipient (reject_unverified_recipient). Però això no és el problema. Sinó que el problema esta en després d’això anar a verificar aquest recipient a l’altre host. Això es fa amb la comanda address_verify_local_transport on li indiquem quin és el host que realment té la base de dades d’usuaris.

smtpd_recipient_restrictions =
...
        reject_unverified_recipient
...
address_verify_local_transport=ip_interna_host_MTA

Obviament el MTA intern ha d’estar configurat de forma que no accepti correus per comptes que no existeixin. Per tant, no pot estar configurat amb un cul de sac, o com diuen en castellà amb una direcció de correu ‘recojetodo’. Així doncs, quan un MTA d’internet envii un correu al servidor de relay (mailgateway) aquest obrirà una connexió contra l’MTA intern i verificarà que existeix la compte de correu a través de la comanda RCPT TO, això ens permet no haver d’activar la temuda comanda VERIFY BY, per tal de saber si existeix o no una compte al servidor intern i per tant, refusar en cas de que sigui necessari aquest correu que es preten entregar.