Crear Servidor SMTP

31/03/2008 - 18:20 por Javito | Informe spam
Estoy intentando enviar correo si necesidad de conectarme a un Servidor SMTP
externo, la idea es la de crear un aplicación que haga de Servidor SMTP y
conectarla directamente a un Servidor DNS para que saque los correos.
Veo que en .Net existe el espacio de nombres System.Net.Mail que incluye la
clase SmtpClient que tiene la opción de conectarse a un Servidor SMTP
externo y enviar el correo o dejarlo en un directorio para que otro Servidor
lo envíe, pero ¿ existe alguna clase que permita crear dorectamente el
Servidor y controlar lo que se envía o no llega etc. ?

un saludo
 

Leer las respuestas

#1 Alberto Poblacion
31/03/2008 - 20:39 | Informe spam
"Javito" wrote in message
news:%
Estoy intentando enviar correo si necesidad de conectarme a un Servidor
SMTP externo, la idea es la de crear un aplicación que haga de Servidor
SMTP y conectarla directamente a un Servidor DNS para que saque los
correos.
Veo que en .Net existe el espacio de nombres System.Net.Mail que incluye
la clase SmtpClient que tiene la opción de conectarse a un Servidor SMTP
externo y enviar el correo o dejarlo en un directorio para que otro
Servidor lo envíe, pero ¿ existe alguna clase que permita crear
dorectamente el Servidor y controlar lo que se envía o no llega etc. ?



No, en las clases que vienen con las librerías del Framework no hay nada
para construir directamente un servidor SMTP. Solo tienes el SmtpClient, que
lo único que hace es conectarse como cliente a un servidor SMTP ya
existente.
Si quisieras crear un servidor SMTP, tendrías que leerte las RFCs para
ver cómo es el protocolo, y usar la clase TcpListener para escuchar en el
puerto 25, y sockets para recibir y procesar los datos entrantes.
Pero si lo que quieres hacer no es _recibir_ correos, sino solo conseguir
que un programa tuyo envíe correos a los destinatarios sin depender de un
servidor que actúe como "forwarder" (que es lo que habitualmente se hace),
entonces a lo mejor la solución es más simple: bastaría con que interrogues
al DNS para averiguar el registro MX del dominio destinatario, y usar el
SmtpClient para conectarse al servidor que hayas obtenido en el MX (que es
el "punto de entrega" para los correos dirigidos al destinatario).
Una advertencia que hay que hacer si intentas esto, es que si lo haces
desde una IP dinámica (por ejemplo, desde una línea ADSL), entonces hay
muchos servidores que te rechazan el correo creyendo que eres un spammer.
Para evitarlo, conviene que el envío lo hagas desde una ip fija debidamente
registrada en el dns inverso con el dominio que ponga en el remite de los
correos que envías.

Preguntas similares