3 votes

sendmail - s'assurer qu'un email est envoyé

J'essaie d'envoyer des courriels par le biais de sendmail, et j'empêche qu'ils soient mis en file d'attente. Je veux seulement que les emails soient envoyés, ce qui a été un problème extrême jusqu'à présent.

dans sendmail.cf, et submit.cf, j'ai ce paramètre :

O QueueLA=99

Dans le journal du courrier, il est écrit que l'email en question est à la fois envoyé et en file d'attente. Sérieusement, n'est-ce pas terriblement déroutant ?

Feb 10 17:04:34 nnn sendmail[27910]: r1AG4Q0V027910: to=vvv@someone.com, 
ctladdr=admin@vvv.se (33/33), delay=00:00:08, xdelay=00:00:04, 
mailer=relay, pri=30391, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, 
stat=Sent (r1AG4U09027911 Message accepted for delivery)

Feb 10 17:04:36 nnn sm-mta[27913]: r1AG4U09027911: to=<vvv@someone.com>, 
delay=00:00:06, xdelay=00:00:02, mailer=esmtp, pri=120589, 
relay=mail1.someone.com. [207.106.200.39], dsn=2.0.0, stat=Sent 
(Queued! 1360512372 qp 15149 <201302101604.r1AG4Q0V027910@mail.nnn.se>)
  1. Au moment où ce journal est écrit, l'email est-il envoyé ou non ?
  2. Y a-t-il un moyen d'éviter cette dernière file d'attente ?

2voto

chylarides Points 81

Pourquoi voudriez-vous changer cela ? C'est exactement comme ça que sendmail est censé fonctionner. Sendmail, avant de confirmer à l'expéditeur original qu'il a accepté le courrier, le sauvegarde dans une file d'attente sur le disque dur. Il le récupère ensuite et conserve la copie physique jusqu'à ce que le destinataire suivant confirme la réception. C'est ainsi que sendmail s'assure que le courrier n'est pas perdu en cas de panne du système dur ou si sendmail se plante lui-même. Sendmail retarde également le courrier pour diverses raisons. Parfois, les autres MTAs que vous ne contrôlez pas retardent le courrier (problèmes de réseau, charges du système, liste grise). Il a besoin de stocker le courrier en toute sécurité quelque part.

Le courrier électronique n'est PAS un mécanisme de livraison juste à temps comme la messagerie instantanée. Attendez les 2 secondes dans des circonstances normales.

Vous savez qu'il a été envoyé lorsque vous voyez l'autre serveur de courrier avec stat=Sent : relay=mail1.someone.com. [207.106.200.39], dsn=2.0.0, stat=Sent

2voto

Falcon Momot Points 24815

Le SMTP ne garantit pas que le courrier électronique atteindra sa destination ; il s'agit d'un mécanisme de livraison au mieux, sans retour synchrone de bout en bout sur le sort de votre trafic. Le serveur auquel vous envoyez des messages doit vous dire directement s'il les accepte pour une livraison éventuelle, mais il n'est pas nécessaire qu'il les livre de manière synchrone (il peut les stocker pour plus tard et ne pas vous le dire), et il n'est pas nécessaire qu'il les livre directement (le chemin comporte plusieurs sauts). En pratique, presque tous les démons SMTP mettent les courriers en file d'attente.

Les accusés de réception et de lecture, qui ne sont pas largement pris en charge en raison de leur utilisation abusive par les spammeurs, ont été conçus pour surmonter cette limitation. En outre, les serveurs peuvent, s'ils le souhaitent, à un moment ultérieur, vous envoyer une notification s'ils rejettent votre message après que le serveur initial auquel vous l'avez transmis l'a accepté, mais ils ne sont pas tenus de le faire.

Votre application doit traiter l'acceptation du saut suivant comme un cas de réussite. C'est le retour d'information le plus fiable que SMTP vous donnera systématiquement.

2voto

drDoctor Points 31

Après quelques recherches, j'ai découvert que le message entre parenthèses (Queued ! 1360512372 qp 15149 201302101604.r1AG4Q0V027910@mail.nnn.se) est le message du serveur récepteur.

c'est-à-dire :

  1. oui l'email est envoyé.
  2. non, car le message est mis en file d'attente sur le serveur de réception.

Voici quelques explications sur la façon dont je pourrais obtenir ma réponse : freebsd 8 mail log status, qu'est-ce que cela signifie ? quelques citations de la réponse qui m'ont semblé fiables :

"L'entrée de statut de envoyé signifie que le serveur distant a accepté le message."

"Les commentaires entre parenthèses d'une entrée de statut sont la réponse donnée par le serveur distant lors de l'envoi du courriel. Il est utile pour voir pourquoi un message a été rejeté, différé ou mis en attente."

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X