2011-07-05 16 views
9

Estoy desarrollando un sitio para el cual me gustaría proteger a los compradores anonimizando sus direcciones de correo electrónico. De forma similar al sistema de craigslist, cuando un vendedor necesita contactar a un comprador debe enviar un correo electrónico a una dirección anónima como [email protected] que luego se enrutará a la dirección de correo electrónico del usuario.Anonimización del correo electrónico Similar a Craigslist en C#

Mi plan ahora es

:

  1. Establecer un cubo (catch-all) bandeja de entrada
  2. Generar una clave aleatoria para cada comprador que será el específico de usuario sección ('1425415125' arriba) de la dirección de correo electrónico
  3. Supervise la bandeja de entrada del cubo y analice esta sección específica del usuario. Una vez que sepa el usuario, el correo electrónico puede ser enviado a la dirección correcta

Mis preguntas son las siguientes:

  1. hay algún problema con la solución anterior
  2. ¿Hay algún código abierto soluciones al problema existente
  3. ¿Hay algún problema que deba tenerse en cuenta al desarrollar un sistema de este tipo?

Gracias de antemano

JP

+0

Si bien las dos respuestas a continuación fueron reveladoras, estoy comenzando una recompensa para ver qué información adicional, especialmente la relacionada con soluciones específicas de C#, puedo encontrar –

+2

Si bien no me da ninguna recompensa, creo que este problema era [ya resuelto] (http://stackoverflow.com/questions/926345/pipe-incoming-email-to-a-script-on-windows-iis-smtp) aquí en SO. – Sumo

Respuesta

6

Hice algo relacionado, aunque no del todo igual. Configuré una bandeja de entrada de todos en mi servidor pop3 existente (probablemente ya tengas uno). Luego usé OpenPop.NET para leer todos los mensajes nuevos en un temporizador (por ejemplo, cada 30 segundos). En mi caso, dejé de procesar el mensaje, pero es bastante fácil generar un nuevo mensaje en la dirección adecuada y copiar todo el cuerpo, luego enviar el nuevo mensaje a su servidor SMTP.

Un problema que veo con su configuración, y tal vez es solo un malentendido de mi parte, es que mientras protegen las direcciones de correo electrónico originales de los usuarios, seguirán siendo accesibles en [email protected] básicamente para siempre. Si entiendo la forma en que funciona Craigslist, cada publicación tiene una dirección de correo electrónico diferente, y una vez que la publicación ha sido eliminada/eliminada (o poco después) la dirección de correo electrónico deja de funcionar. Esto hace que las personas no puedan seguir molestándote en esa dirección de correo electrónico. La solución a este problema es fácil, solo haga que la dirección de correo electrónico se convierta en una identificación postal o en alguna otra identificación en lugar de la identificación de los usuarios en la base de datos. La búsqueda será igual de rápida, pero tendrán una nueva dirección de correo electrónico cada vez.

+0

En términos de protección de direcciones de correo electrónico, las direcciones de correo electrónico anónimas se actualizarán en intervalos establecidos para que, por ejemplo, un día [email protected] sea válido y luego esa dirección de correo electrónico apuntará a nadie y en su lugar el mismo usuario estará contactable en [email protected] –

+1

Esto es desordenado ... ¿Qué sucede si el comprador y el vendedor se corresponden a través del correo electrónico? el comprador ya no podrá contactar al vendedor. Estoy de acuerdo con @Patricker en que el Id debe estar relacionado con el ID de publicación. – Variant

+0

@Variant, hay algunas preocupaciones clave específicas del negocio de las que no tiene conocimiento. Para mis propósitos, este es exactamente el comportamiento que quiero. –

1

Es posible que desee consultar correos "tubería" - la capacidad de alguien para enviar un correo electrónico a un servidor de correo, que luego se tira de inmediato a un ejecutable , que luego reenvía su correo al destinatario (tirando de la dirección de correo electrónico real de la base de datos en función de la dirección entrante del mensaje canalizado).

Mi recomendación personal sería verificar HMailServer, que tiene una API COM (la parte de administración está escrita en PHP, de ahí el requisito de interoperabilidad heredada), es gratuita y de código abierto, y está muy bien documentada. No tiene correo tuberías incorporado, pero es fácilmente extensible dada la API y soporte para scripts que se ejecutan en server-side message events

HTH,

Benjamin

1

Creo que esta solución tendrá sentido y está en uso en muchos casos. La parte más difícil es en realidad recibir los mensajes. En realidad, puede manejar todo esto dentro de su aplicación web si es necesario. Escribí una publicación de blog que destaca un par de formas al receive email in your web app. Se aplica principalmente a Rails, pero los conceptos deben ser transferibles.

+0

Son un competidor, pero [Mailgun] (http://mailgun.net/) podría hacer el truco aquí. Le permitirán recibir correos electrónicos en un buzón central y analizarlos para lo que necesite. – JonLim

0

La forma en que lo está buscando es la forma en que creé un servicio similar. No recomendaría que escribas tu propio servidor smtp. Use un servidor de correo existente y solo use encuestas o alguna API basada en eventos.

Las ventajas de utilizar un servidor de correo de terceros es que puede utilizar las herramientas de copia de seguridad y administración existentes en él.

Editar: Me acabo de dar cuenta de que esto ha sido respondido aquí con una mejor explicación.Pipe incoming email to a script on Windows IIS SMTP?

0

No veo ningún problema con su configuración, de hecho esa es la forma correcta de hacerlo porque si la aplicación programada falla, los correos electrónicos seguirán en el cuadro de correo electrónico catch-all. Solo cuando el correo electrónico haya sido entregado exitosamente a alguien, el correo electrónico debe ser eliminado. Podrá monitorear y registrar la actividad de su propia aplicación para monitorear el progreso y las fallas.

No recomiendo Piping porque, si por alguna razón las tuberías se ejecutan correctamente pero su exe falla, perderá el correo electrónico. El seguimiento será difícil. Programar los trabajos no será posible.

Si su aplicación es independiente del servidor de correo, es fácil de administrar y reemplazar su servidor de correo siempre que sea posible. Es fácil de extender.

En esto deberás usar alguna biblioteca de lector de pop, y programar tu aplicación para que se ejecute con frecuencia.

0

Además del correo electrónico, puede considerar un mecanismo de extracción en lugar de enviar, por ejemplo, un frontend web de un centro de mensajes o una fuente RSS. Digo esto porque los problemas de entrega a varios ISP pueden ser muy difíciles de solucionar y, en mi experiencia, sus usuarios nunca creerán que es su ISP.

Cuestiones relacionadas