2010-09-01 3 views
1

Je vous envoie un e-mail aux destinataires suivants: [email protected], [email protected], [email protected]Envoyer du courrier avec SMTP à plusieurs adresses: relayer le message à différents serveurs?

Le message est envoyé à mon serveur smtp local qui doit transmettre à @example.com et @test.com.

Ma question est: comment le serveur devrait le faire?

  • Laissez le message tel quel et le relais à un serveur smtp plus sophistiqué qui fera l'une des autres options

  • Pause en deux messages et le relais d'un message à @exampl e et deux autres à @test.com dans un seul message

  • Pause en trois messages et relais une fois à @example.com et deux fois pour @test.com

Et comment le serveur de réception, par exemple @example.com sais que ce ne doit pas envoyer le message @test.com par lui-même aussi? (n'importe quel en-tête de courrier?)

Et si @example.com et @test.com sont servis par le même serveur, recevra-t-il le message plus d'une fois?

Il me manque probablement quelque chose dans le protocole SMTP.

Répondre

1

L'enveloppe (RFC822 et plus) ne sont que les limites extérieures. Le plaisir se passe dans le protocole ESMTP.

En termes de SMTP ordinaire, chaque destinataire (RCPT TO) incendies un nouveau message dans la file d'attente Outbox - Un pour chaque destinataire. Ensuite, il est livré.

Maintenant passons à parler de la livraison: Supposed J'ai demandé de livrer à [email protected] Voilà comment cela fonctionne:

L'adresse host.com est interrogé sur le DNS, en particulier, pour un enregistrement de MX (Mail Exchanger) de type. (nslookup -q = MX devrait vous montrer comment cela est fait)

Ils sont triés (numéro le plus petit en premier), et la livraison est essayée sur une base circulaire en utilisant ce type.

Lorsqu'il est remis à n'importe quel hôte d'enregistrement MX, c'est terminé. Cependant, la raison pour laquelle il existe plusieurs hôtes MX est due à la nécessité de mettre en file d'attente le courrier pendant les pannes, par exemple. Ainsi, un hôte MX supérieur est susceptible de faire la queue juste et ne pas laisser l'origine rebond du serveur hôte et viennent à échéance le message (et qui est ce qui se passe lorsque le message est bloqué sur un hôte donné - Vous pouvez suivre via ses en-têtes)

Chaque serveur a ses propres règles de livraison. Toutefois, lorsque vous transférez vers un hôte qui a tenté de se livrer sur la cible MX, nous l'appelons un hôte actif. Un hôte sait s'il doit ou non faire la queue pour un autre hôte (relais) ou livrer localement via le message d'accueil SMTP (HELO).

également: Une connexion SMTP unique vous permet d'envoyer plusieurs messages, même si vous avez à des destinataires, il va se produire qu'une seule connexion (bien que deux messages dans la file d'attente de courrier)

+0

Je sais que sur tous les MX trucs, ma question est de savoir comment "hôte intelligent" savoir quoi faire avec le message? Y a-t-il une configuration par défaut? –

+1

Oui, il y a. Vérifiez les paramètres de postfix, qui répertorie 4 types de profils de concentrateur de messagerie: http://www.postfix.org/STANDARD_CONFIGURATION_README.html En termes généraux, il conserve une liste des domaines qu'il doit recevoir par e-mail, à la fois pour la livraison locale sous ainsi que pour faire la queue pour la livraison finale, ou simplement un relais intelligent. Il pourrait également être géré via un backend SQL. De toute façon, je me souviens de quelque chose: les règles de livraison sont mauvaises. Postfix essaie le mieux de rationaliser cela, mais si vous prenez un exemple sendmail.cf, vous verrez un script malveillant dans GNU m4 fait juste pour gérer ce routage. – aldrinleal

+0

La réponse que je cherchais est cachée dans la deuxième phrase de la réponse d'origine: Le serveur SMTP ne lit pas les en-têtes To: Cc: ou Bcc: du message. Le client SMTP fournira les adresses pour lesquelles le serveur SMTP devrait recevoir les messages dans les lignes "RCPT" TO. –

Questions connexes