
Ich habe eine Rails-Anwendung laufen, die E-Mails mit Postfix als Relay sendet. Hier ist der Ablauf
Rails -> Resque-Worker -> Postfix -> SES -> E-Mail an Clients
mein Problem ist, dass ich eine Beziehung zwischen den Protokollen von Rails und Postfix finden möchte, um sicherzustellen, dass nicht eine einzige E-Mail verloren geht und ordnungsgemäß an den Empfänger gesendet wird.
Wenn beispielsweise Rails-Protokolle angezeigt werden, wird eine E-Mail an " gesendet.[email geschützt]" dann kann ich in den Protokollen nachsehen, an welche E-Mail gesendet wird[email geschützt], und ich möchte dieselbe E-Mail auch in Postfix überprüfen. Natürlich wird es dort einen Eintrag geben, aber um genau und genau herauszufinden, ob diese bestimmte E-Mail mit Postfix gesendet wurde oder nicht? Ein Empfänger kann beispielsweise 100 E-Mails an[email geschützt], oder vielleicht 50, mit unterschiedlichen Zeitintervallen. Wie kann ich also ein spezielles TAG, eine ID oder irgendetwas in der Rails-App hinzufügen, damit ich es in den Postifx-Protokollen nachverfolgen kann?
Ich hoffe, das Problem ist klar.
Danke
Antwort1
Wenn Ihr Rails SMTP für Verbindungen zu Postfix verwendet, interessiert Sie die 250
Antwort:
250 2.0.0 Ok: queued as 41F1A40412
Wenn Sie Rails dazu veranlassen, diese ID zu protokollieren, können Sie anhand der Postfix-Protokolle leicht herausfinden, was später damit passiert ist:
$ grep 41F1A40412 /var/log/mail.log
postfix/smtpd[1900]: 41F1A40412: client=localhost[127.0.0.1]
postfix/cleanup[1903]: 41F1A40412: message-id=<[email protected]>
postfix/qmgr[29213]: 41F1A40412: from=<[email protected]>, size=299, nrcpt=1 (queue active)
postfix/smtp[1904]: 41F1A40412: to=<[email protected]>,
relay=example.net[198.51.100.51]:25, delay=14, delays=13/0.07/0.26/0.71, dsn=2.0.0,
status=sent (250 2.0.0 OK 5D47140412)
postfix/qmgr[29213]: 41F1A40412: removed
Zumindest deliver.now!
zeigt die Methode diese Antwort an, da sie das sofortige Senden erzwingt. Wenn dies mit der normalen Methode nicht geschieht, deliver
liegt das wahrscheinlich daran, dass SMTP von Haus aus eindeutig ist, wer für die Zustellung der Nachricht verantwortlich ist: Sie sollte nur dann aus einer Warteschlange entfernt werden, wenn der nächste Hop die Verantwortung mit der 250 Ok
Antwort selbst übernimmt.