¿Hay alguna forma de detectar (utilizando los encabezados RFC 2822) que un correo electrónico es un correo electrónico reenviado?Detección de correo electrónico reenviado
Respuesta
Hay dos cosas que normalmente se conocen como "reenvío".
Cuando configura el reenvío automático a nivel de cuenta a otra dirección de correo electrónico, su sistema de correo generalmente presentará un encabezado adicional para permitirle detectar y romper los bucles de correo. Lamentablemente, el nombre de este encabezado nunca se ha estandarizado. Some use Delivered-To
, some use X-Loop
, algunos usan X-Original-To
, algunos usan un encabezado X propiedad de su software de correo. Pero no hay un solo campo de encabezado que esté presente en todos los casos.
Cuando reenvía manualmente un mensaje haciendo clic en el botón "Reenviar" en su correo e ingresando una dirección de correo electrónico del destinatario y un texto descriptivo, se genera un nuevo mensaje con un nuevo encabezado Message-ID
. El conjunto de encabezados en este mensaje será indistinguible de una respuesta normal: In-Reply-To
y References
se configuran exactamente de la misma manera. La única diferencia es que el encabezado Subject
va a generalmente comienza con "Fwd:
" o termina con "(fwd)
". ("Por lo general," debido a que algunos clientes formato como "[Fwd: <original subject>]
" con corchetes en torno al nuevo tema, algunos clientes se localizan el prefijo Fwd:
en su propio idioma, y algunos usuarios editar manualmente el Subject
antes de pulsar "enviar".)
Entonces, hay buenas sugerencias de que se reenvía un mensaje, pero no hay reglas fijas.
Hacer 'In-Reply-To' y' Referencias 'aparece en (1) un mensaje de reenvío automático (2) un mensaje de respuesta automática? – rocketspacer
¿Aparece 'Subject' en un mensaje de respuesta? Si no es así, podemos distinguir fácilmente un mensaje de respuesta de un mensaje de reenvío – rocketspacer
Mensaje de respuesta, tendrá un asunto que comience con '" Re: "'. Estoy construyendo un extractor de correo electrónico personalizado para crear Jira Issue/Comment. Esto me ha reventado, ¿puedo distinguir con seguridad la base de correo electrónico Reenviar/Responder en el campo Asunto? – rocketspacer
Lectura de la spec, CTRL + F para "hacia adelante", da los siguientes campos de cabecera:
resent-date = "Resent-Date:" date-time CRLF
resent-from = "Resent-From:" mailbox-list CRLF
resent-sender = "Resent-Sender:" mailbox CRLF
resent-to = "Resent-To:" address-list CRLF
resent-cc = "Resent-Cc:" address-list CRLF
resent-bcc = "Resent-Bcc:" (address-list/[CFWS]) CRLF
resent-msg-id = "Resent-Message-ID:" msg-id CRLF
No estoy seguro de si el software de correo principal utiliza estos sin embargo.
EDITAR
Leer la especificación de un poco demasiado rápido, también hay esta nota:
Nota: La reintroducción de un mensaje en el sistema de transporte y el uso de campos resienten es una operación diferente de "reenvío". "Reenvío" tiene dos significados: Un sentido de reenvío es que el usuario puede enviar un programa de lectura de correo a otra persona enviando una copia de un mensaje , haciendo que el mensaje reenviado sea el cuerpo del nuevo mensaje . Un mensaje reenviado en este sentido no parece tener proceden del remitente original, pero es un mensaje completamente nuevo desde el del reenviador del mensaje. Por otro lado, el reenvío también es cuando el programa de transporte de correo recibe un mensaje y lo reenvía a un destino diferente para la entrega final. Resent los campos de encabezado no están destinados para el uso con ningún tipo de reenvío .
No hay otros avisos de "reenvío", por lo que no hay campos de cabecera que se pueden utilizar para detectar el delantero, a excepción de la convención subject = "Fwd: <msg>"
.
- 1. Detección de cliente de correo electrónico
- 2. ¿Es posible recuperar los encabezados originales de un correo electrónico reenviado en php
- 3. Integración de correo electrónico
- 4. correo electrónico validación de campo de correo
- 5. Django correo electrónico
- 6. Procesando correo electrónico entrante
- 7. vb.net enviar correo electrónico
- 8. Django correo electrónico resumen
- 9. Enviar correo electrónico - Cocoa
- 10. conseguir el URL de detección automática de la dirección de correo electrónico de Exchange
- 11. Archivos adjuntos de correo electrónico
- 12. PHP validación de correo electrónico
- 13. dirección de correo electrónico noreply.
- 14. ¿Enviar correo electrónico de Elmah?
- 15. Estilo de correo electrónico HTML
- 16. Seguimiento masivo de correo electrónico
- 17. Enviando correo electrónico demorado de
- 18. obtener correo electrónico de ActiveDirectory
- 19. Módulo de correo electrónico de Python: encabezado de formulario "De" con un nombre unicode + correo electrónico
- 20. recibir correo electrónico usando matlab
- 21. Enviando correo electrónico masivo solicitado
- 22. MySQL Validar correo electrónico Records
- 23. Comprensión del correo electrónico seguro
- 24. enviar correo electrónico desde localhost
- 25. recuperar correo electrónico usando C#?
- 26. idear: no requiere correo electrónico
- 27. CSS en el correo electrónico
- 28. Enviar correo electrónico desde Cocoa
- 29. iphone app enviar correo electrónico
- 30. enviar correo electrónico asp.net C#
¿Quiere decir "reenviado" como establecer una dirección de reenvío para que todo el correo sea redirigido automáticamente a un buzón diferente, o "reenviado" como haciendo clic en el botón "Reenviar" en su mailing e ingresando la dirección de correo electrónico del destinatario algún texto descriptivo? – dkarp
Si es el primero, consulte también http://stackoverflow.com/questions/4742533/is-the-delivered-to-header-the-right-place-to- find-the-address-of-the-recipient-f y http://stackoverflow.com/questions/4739354/email-server-design-avoiding-loops – dkarp
Quise decir el reenvío en un cliente de correo electrónico, como hacer clic en "Reenviar" – Timby