Cancelado

Cliente/Servidor SMTP para linux en lenguaje C

Descripción:

PROYECTO DE SMTP EN LINUX PROGRAMADO EN C USANDO API DE SOCKET, DOS VERSIONES: PARA SOCKETS UDP Y TCP

Entorno de desarrollo

Estación de trabajo Linux

API de Sockets

Lenguaje de programación C

Especificaciones del protocolo

El servidor que vamos a realizar se corresponde con el protocolo SMTP originalmente definido en la RFC 821 ([url removed, login to view]). No obstante, nuestro servidor no implementará todo el protocolo, sino únicamente un subconjunto muy reducido de éste. Además, SMTP se proporciona sobre TCP pero nosotros realizaremos también una versión para UDP.

Mensaje de petición del cliente

El dialogo con el servidor comienza con la orden HELO. A continuación se envía un correo con tres pasos. En el primero se especifica la orden MAIL con información del destinatario, a continuación una serie de uno o más receptores con la orden RCPT y por último el contenido del mensaje con la orden MAIL. Si no se desea enviar más correos se finaliza con la orden QUIT

La órden HELO se forma:

HELO sender-domain[CRLF]

La órden MAIL se forma:

MAIL FROM:reverse-path[CRLF]

Donde reverse-path es el correo electrónico del originador, y [CRLF] los caracteres de retorno de carro y salto de línea.

La orden RCPT:

RCPT TO:forward-path[CRLF]

Donde forward-path es el correo electrónico del receptor.

La órden DATA:

DATA[CRLF]

...

[CRLF].[CRLF]

Los puntos suspensivos serán el texto del mensaje que finaliza cuando se mande una línea que sólo contenga un punto.

Se pueden enviar los correos que se desee hasta que se finaliza con la orden QUIT.

Mensaje de respuesta del servidor

Algunos de los valores son:

220 Simple Mail Transfer Service Ready (Respuesta cuando el cliente realiza la conexión)

250 OK (Respuesta correcta a las ordenes MAIl, RCPT, DATA)

354 Start mail input; end with. (Respuesta al envio de la orden DATA)

221 Service closing transmission channel (Respuesta a la orden QUIT)

500 Syntax error (Respuesta a errores de sintaxis en cualquier orden)

Ejemplo de dialogo

(S: Servidor, C: Cliente)

S:220 nombre-equipo SMTP

C: HOLA [url removed, login to view]

S: 500 Syntax error

C: HELO [url removed, login to view]

S: 250 nombre-equipo HELO

C: MAIL FROM pepe

S: 500 Syntax error

C: MAIL FROM:Smith@[url removed, login to view]

S: 250 OK

C: RCPT TO:Jones@[url removed, login to view]

S: 250 OK

C: RCPT TO:Brown@[url removed, login to view]

S: 250 OK

C: DATOS

S: 500 Syntax error

C: DATA

S: 354 Start mail input; end with.

C: Bla bla bla...

C: ...etc. etc. etc.

C:.

S: 250 OK

C: QUIT

S: 221 nombre-equipo closing connection

Programa Servidor

Aceptará peticiones de sus clientes tanto en TCP como en UDP.

Registrará todas las peticiones en un fichero de "log" llamado [url removed, login to view] el que anotará:

Comunicación realizada: nombre del host, dirección IP, protocolo de transporte, nº de puerto efímero del cliente y la fecha y hora a la que se ha producido.

Una línea por cada mensaje recibido indicando todos sus datos y si se ha recibido correctamente o en caso contrario especificar la causa del error.

Se ejecutará como un daemon.

Programa Cliente

Se conectará con el servidor bien con TCP o UDP.

Leerá por parámetros el nombre del servidor de la siguiente forma:

cliente nombre_o_IP_del_servidor TCP

Realizará peticiones al servidor como se ha indicado anteriormente.

Realizará las acciones oportunas para su correcta finalización.

Durante la fase de pruebas el cliente podrá ejecutarse como se muestra en el ejemplo de diálogo, pero en la versión para entregar el cliente leerá de un fichero las órdenes que ha de ejecutar ([url removed, login to view]) y escribirá las respuestas obtenidas del servidor y los mensajes de error y/o depuración en un fichero con nombre el número del puerto efímero y extensión txt.

Habilidades: Programación en C, Linux, E/S Socket, Ubuntu

Ver más: trabajos freelancer para tecnicos en linux, trabajo para programadores en c# sin experiencia, que herramienta se necesita para programar en linux, http www lawebdelprogramador com foros dev c 1510273 programa en codigo c para leer por varios clientes html, como conseguir trabajo como programador en lenguaje c++ en lima, nicecast para linux, rfid symbol para linux, simple smtp client linux sample, showmypc para linux, keylogger para linux, forex para linux, simulador fms para linux, install smtp server linux, cliente servidor sharp con sql server, mass tube para linux, install config postfix smtp server linux, smtp drupal linux

Información del empleador:
( 0 comentarios ) Spain

Nº del proyecto: #15850624

3 freelancers están ofertando el promedio de €361 para este trabajo

€100 EUR en 0 días
(81 comentarios)
5.4
skilldev

Hola señor, Somos una empresa india de desarrollo de base. hemos comprobado sus datos publicados y queremos más aclaraciones, así que envíenos un mensaje para que lo analicemos. Gracias.,./.,

€822 EUR en 3 días
(3 comentarios)
3.2
SayanProgrammer

Hey ! I'm SAYAN PROGRAMMER I've reviewed your complete job description, and I fulfill all the qualifications required for this project. I have more than 15 years of experience in this field. I am sure if you will Más

€161 EUR en 3 días
(0 comentarios)
0.0