La commande mail nécessite-t-elle un serveur de messagerie?

16

Faut-il configurer un serveur de messagerie avant de pouvoir utiliser la mailcommande linux ?

puk
la source
@slm n'est pas vraiment le même que cette question laisse entendre que l'on a besoin d'un serveur SMTP pour exécuter le courrier, mais je demande si c'est absolument nécessaire
puk
1
Oui, c'est un doublon possible, je vous ai répondu b / c que Q le prenait un peu trop spécifique. On se sent toujours comme un dup mais je vous ai quand même répondu 8-)
slm

Réponses:

14

Non, vous n'avez pas besoin d'un serveur de messagerie pour envoyer du courrier. Je suis le plus familier avec Sendmail et il existe 3 classifications de fonctionnalités qui répondent aux e-mails en tant que service. MDA (Mail Delivery Agents) est 1, et MTA (Mail Transfer Agents) est 2, et 3 est MUA (Mail User Agents).

La terminologie devient confuse, mais vous n'avez pas besoin qu'un MTA soit exécuté tout le temps. Le MTA sera appelé chaque fois que le MUA ( mail) veut "envoyer" du courrier.

Lorsque vous exécutez mailet vous spécifiez une adresse pour envoyer du courrier à, [email protected]. Le client de messagerie invoquera le MTA ( /usr/bin/sendmail) qui interrogera ensuite DNS pour cet hôte / domaine (example.com) et découvrira quelle valeur est désignée pour son enregistrement MX. MX signifie Mail Exchanger.

Exemple

Vous pouvez utiliser la digcommande pour voir ceci:

$ dig gnu.org mx

; <<>> DiG 9.7.4-P1-RedHat-9.7.4-2.P1.fc14 <<>> gnu.org mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21053
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;gnu.org.           IN  MX

;; ANSWER SECTION:
gnu.org.        299 IN  MX  10 eggs.gnu.org.

;; ADDITIONAL SECTION:
eggs.gnu.org.       299 IN  A   208.118.235.92
eggs.gnu.org.       299 IN  AAAA    2001:4830:134:3::10

;; Query time: 218 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:27:22 2013
;; MSG SIZE  rcvd: 90

Le client tentera donc de se connecter à eggs.gnu.org sur le port 25 pour envoyer cet e-mail.

Serveur dns?

@puk a posé la question de suivi suivante:

Ce DNS est-il sur ma machine locale?

A quoi j'ai répondu:

@puk - cela peut être de la même manière que le serveur de messagerie, mais ce n'est généralement pas le cas. Regardez dans votre /etc/resolv.conffichier et aussi lorsque vous exécutez la digcommande, vous remarquerez la SERVER: ...ligne en bas. C'est le serveur DNS qui répond à votre demande.

Exemple

Mon /etc/resolv.confdossier contient les éléments suivants:

nameserver 192.168.1.8

Et des requêtes comme celle-ci, en utilisant dig:

$ dig gnu.org mx

Résultat en bas:

;; Query time: 259 msec
;; SERVER: 192.168.1.8#53(192.168.1.8)
;; WHEN: Thu Oct  3 17:46:13 2013
;; MSG SIZE  rcvd: 90

Et pour le lecteur astucieux, une ma demande, comment est-ce configuré? La réponse est le /etc/nsswitch.conffichier. Plus précisément cette ligne:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

Cela dit, utilisez d'abord les fichiers ( /etc/hosts), puis mdns4_minimal. C'est un DNS multicast. Il s'agit essentiellement d'un cache de recherches précédentes. Enfin, il utilise dnsqui est l'adresse IP du nameserverdésigné dans le /etc/resolv.conffichier.

slm
la source
Ce DNS est-il sur ma machine locale?
puk
@puk - voir les mises à jour.
slm
@puk - J'en ai ajouté plus ....
slm
7

Cela dépend vraiment de la version que mailvous utilisez.

Toutes les versions ont besoin d'un MTA pour délivrer le courrier, mais certaines versions sont capables d'utiliser SMTP pour parler à un MTA distant (le "smarthost", par exemple le serveur de messagerie de votre FAI) et certaines ne peuvent que diriger le message /usr/sbin/sendmailpour envoyer le courrier via un MTA local.

Dans ce dernier cas, le MTA local pourrait être un MTA à part entière comme sendmail ou exim ou postfix . Ou il peut s'agir d'un simple MTA d'envoi uniquement comme nullmailer ou ssmtp . Ou un mini-MTA légèrement plus sophistiqué comme msmtp qui prend également en charge la mise en file d'attente du courrier pour une livraison ultérieure.

Dans le monde du logiciel libre et open source, il existe deux variantes principales du mailxpackage (qui fournit la mailcommande): bsd-mailxet heirloom-mailx.

bsd-mailx ne parle pas SMTP et ne peut envoyer du courrier qu'en le redirigeant vers/usr/sbin/sendmail

hierloom-mailx peut parler SMTP à un smarthost ainsi que la méthode traditionnelle «pipe-to-sendmail».

Donc, pour répondre à votre question "Avez-vous besoin d'un serveur de messagerie?". Oui, en quelque sorte. Vous en avez besoin mais, selon la version du courrier que vous avez installée, il se peut que vous n'ayez pas à l'installer et à la configurer sur votre propre système.

OMI, vous êtes mieux avec un MTA minimal que msmtpde compter uniquement sur un smarthost heirloom-mailxcar vous devez toujours mettre en file d'attente le courrier pour une livraison ultérieure lorsque votre connexion Internet est en panne ou que votre smarthost est inaccessible. Avec une file d'attente locale, mailet d' crondautres programmes peuvent simplement envoyer et oublier n'importe quel courrier. Sans file d'attente locale, ils doivent en quelque sorte gérer la condition d'erreur si l'hôte intelligent n'est pas disponible.

cas
la source