Pregunta

¿Cómo puedo hacer que el HTML del correo electrónico sea seguro para mostrarse en el navegador web con Python?

No se deben seguir ninguna referencia externa cuando se muestra.En otras palabras, todo el contenido mostrado debe provenir del correo electrónico y nada de Internet.

Los correos electrónicos que no sean spam deben mostrarse lo más cerca posible de la intención del autor.

Me gustaría evitar codificar esto yo mismo.

También se aceptan soluciones que requieren la última versión del navegador (firefox).

¿Fue útil?

Solución

html5lib contiene un desinfectante HTML + CSS. Actualmente permite demasiado, pero no debería ser demasiado difícil modificarlo para que coincida con el caso de uso.

Lo encontré en aquí .

Otros consejos

No tengo muy claro qué quiere decir exactamente con " safe " ;. Es un tema bastante grande ... pero, por lo que vale:

En mi opinión, el analizador de eliminación del ActiveState Cookbook es uno de los más fáciles soluciones Puede copiar / pegar la clase y comenzar a usarla.

Echa un vistazo a los comentarios también. El último indica que ya no funciona, pero también tengo esto ejecutándose en una aplicación en algún lugar y funciona bien. Desde el trabajo, no tengo acceso a ese cuadro, así que tendré que buscarlo durante el fin de semana.

Utilice el módulo HTMLparser o instale BeautifulSoup y utilícelos para analizar el HTML y deshabilitar o eliminar las etiquetas.Esto dejará el texto del enlace que estaba allí, pero no se resaltará y no se podrá hacer clic en él, ya que lo está mostrando con un componente del navegador web.

Podrías dejar más claro lo que se hizo reemplazando el <A></A> con un <SPAN></SPAN> y cambiar la decoración del texto para mostrar dónde solía estar el enlace.Tal vez un tono de azul diferente al normal y un guión bajo discontinuo para indicar quebrantamiento.De esa manera, estará un poco más cerca de mostrarlo según lo previsto sin engañar a las personas para que hagan clic en algo en lo que no se puede hacer clic.Incluso podrías agregar un desplazamiento JavaScript o CSS puro Aparece una información sobre herramientas que explica que los enlaces se han deshabilitado por razones de seguridad.

Se podrían hacer cosas similares con <IMG></IMG> etiquetas, incluido reemplazarlas con un rectángulo en blanco para garantizar que el diseño de la página sea similar al original.

He hecho cosas como esta con Hermosa sopa, pero HTMLparser está incluido con Python.En distribuciones de Python más antiguas, había una htmllib que ahora está en desuso.Dado que el HTML de un mensaje de correo electrónico puede no ser completamente correcto, utilice Beautiful Soup 3.0.7a, que es mejor para entender el HTML roto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top