
Tengo una aplicación Rails ejecutándose, que envía correos electrónicos utilizando Postfix como retransmisión. aqui esta el flujo
Rails -> Resque Workers -> Postfix -> SES -> enviar correo electrónico a los clientes
Mi problema es que quiero encontrar la relación entre los registros de Rails y Postfix, para asegurarme de que ni un solo correo electrónico se pierda y se envíe correctamente al destinatario.
por ejemplo, si se muestran registros de Rails, el correo electrónico se envía a "[correo electrónico protegido]"entonces puedo verificar los registros a los que se envía el correo electrónico[correo electrónico protegido]y también quiero consultar el mismo correo electrónico en postfix. Por supuesto, tendrá una entrada allí, pero para ser precisos y precisos, ¿es necesario saber si ese correo electrónico específico se envió mediante postifx o no? como si un destinatario pudiera enviar 100 correos electrónicos a[correo electrónico protegido], o pueden ser 50, con diferentes intervalos de tiempo, entonces, ¿cómo puedo agregar una ETIQUETA especial, una ID o cualquier cosa en la aplicación Rails que pueda rastrear en los registros de Postifx?
Espero que el problema esté claro.
Gracias
Respuesta1
Si tu Rails usa SMTP para conexiones a Postfix, te interesa la 250
respuesta:
250 2.0.0 Ok: queued as 41F1A40412
Si logra que Rails registre esta ID, es fácil encontrar en los registros de Postfix lo que le sucedió más tarde:
$ 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
Al menos el deliver.now!
método muestra esta respuesta ya que fuerza el envío inmediato. Si esto no sucede con el deliver
método normal, probablemente se deba a que SMTP, por diseño, no es ambiguo en cuanto a quién tiene la responsabilidad de entregar el mensaje: solo debe eliminarse de cualquier cola cuando el siguiente salto acepta la responsabilidad con la misma 250 Ok
respuesta.