Pregunta

Estoy escribiendo algo de código para de análisis correos electrónicos reenviados. Lo que no estoy seguro es si tal vez hay alguna biblioteca de Python, algunos RFC pude quedo con o algún otro recurso que me permitiera automatizar la tarea.

Para ser precisos, no sé si el "diseño" de los correos electrónicos reenviados está cubierta por alguna norma o recomendación, o si simplemente ha evolucionado en los últimos años por lo que ahora la mayoría de los clientes de correo electrónico producir un resultado similar para la parte del texto:

    Begin forwarded message: 

    > From: Me <me@me.me>
    > Date: January 30, 2010 18:26:33 PM GMT+02:00
    > To: Other Me <other-me@me.me>
    > Subject: Unwise question

- e ir salvaje para los archivos adjuntos (y todo lo demás secciones MIME puede estar allí).

Si todavía no es lo suficientemente precisa Voy a aclarar que, es sólo que no estoy 100% seguro de lo que debe preguntar acerca de (RFC, Python lib, convención o cualquier otra cosa).

¿Fue útil?

Solución

En mi experiencia casi siempre cliente de correo electrónico hacia adelante / responde de manera diferente. Normalmente, usted tendrá una versión en texto plano y una versión HTML codificado en el mimo en la parte inferior del paquete electrónico. cabeceras de los mensajes tienen un RFC ( http://www.faqs.org/rfcs/rfc2822.html "2822" ), pero desafortunadamente el contenido del cuerpo del mensaje es fuera del lado del alcance.

No sólo usted tiene que lidiar con la varianza cliente de correo, pero la varianza de las preferencias del usuario. A modo de ejemplo: Lotus Notes puts respuestas en la parte superior y las respuestas de Thunderbird en la parte inferior. Así que cuando un usuario Thunderbird responde a un usuario de Lotus Notes de responder que podrían insertar su respuesta en la parte superior y dejar su firma en la parte inferior.

Otro escollo quizá contendía con ajuste de texto de las cadenas contestado.

>>>> La respuesta exterior que sobrepasa el límite y es la palabra wraped por
cliente de correo del replier media \ n
>> El cuerpo del mensaje de respuesta por medio
> Respuesta anterior
El más reciente respuesta

No sería analizar el mensaje y dejar que el usuario pueda analizar en sus cabezas. O, me prestas el código de otro proyecto.

Otros consejos

A diferencia de lo que decían muchas otras personas, hay es un estándar en los correos electrónicos enviados, RFC 2046 , "Multipurpose Internet mail Extensions (MIME) Segunda parte: Tipos de medios", más de diez años de edad. Véase especialmente su sección 5.2, "Mensaje Tipo de soporte".

La idea básica detrás de la RFC 2046 es encapsular un mensaje en la parte MIME del otro, del tipo llamado (por desgracia) message/rfc822 (nunca hay que olvidar que es recursivo MIME). El href="http://docs.python.org/library/email.parser.html" rel="nofollow noreferrer"> biblioteca puede manejarlo bien.

No downvote las otras respuestas porque son correctas en un aspecto: la norma no es seguido por cada anuncio publicitario. Por ejemplo, el mutt anuncio publicitario puede reenviar un mensaje en formato RFC 2046, sino también en un formato ad hoc. Así, en la práctica, un anuncio publicitario, probablemente, no puede manejar solamente el RFC 2046, sino que también tiene que analizar los diversos demás y sintaxis underspecified.

Como las otras respuestas ya indican:. No existe un estándar, y su programa no va a ser impecable

Se puede echar un vistazo a las cabeceras, en particular, la cabecera User-Agent, para ver lo que se utilizó tipo de cliente, y el código específicamente para las mayoría de los clientes comunes.

Para saber qué clientes debe tener en cuenta que mantener, echar un vistazo a este estudio popularidad . Diversas perspectivas, Yahoo !, Hotmail, Mail.app, iPhone electrónico, Gmail y Lotus Notes primeros puestos. Alrededor del 11% del correo que se clasifica como "no detectable", pero usando los encabezados del correo electrónico reenviado que podría ser capaz de hacerlo mejor que eso. Tenga en cuenta que las estadísticas fueron recogidos mediante la colocación de una imagen dentro del correo electrónico, por lo que los resultados pueden estar sesgados.

Otro problema es el correo HTML, que puede o no puede incluir una versión de texto sin formato. No estoy seguro sobre el comportamiento habitual de los clientes en este sentido.

Estándar para una respuesta / avance se> anteponiendo cada línea el número de veces que el correo está anidado incluyendo quién envió el correo electrónico inicial es hasta el cliente de resolver. Así que lo que hay que hacer en Python es simplemente añadir> para el inicio de cada línea.

imap Test <imap@gazler.com> Wrote:
>
>twice
>imap Test wrote:
>> nested
>>
>> imap@gazler.com wrote:
>>> test
>>>
>>> -- 
>>> Message sent via AHEM.
>>>   
>>
>

Adjuntos sólo necesitan simplemente para ser incluido en el mensaje o como usted dice 'ir salvaje.'

No estoy familiarizado con Python, pero creo que el código sería:

string = string.replace("\n","\n>")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top