00001 #include <sys/types.h>
00002 #include <sys/socket.h>
00003 #include <netinet/in.h>
00004 #include <arpa/inet.h>
00005 #include <stdio.h>
00006 #include <stdlib.h>
00007 #include <string.h>
00008 #include <unistd.h>
00009 #include <netdb.h>
00010
00011 #include "lpbot.h"
00012
00021 int remind(lp_user *user)
00022 {
00023 struct hostent host;
00024 struct sockaddr_in conn;
00025 lp_server *server = g_new0(lp_server, 1);
00026
00027 lp_resolve("localhost", &host);
00028 server->sock = lp_create_sock();
00029 conn.sin_family = AF_INET;
00030 conn.sin_port = htons(25);
00031 conn.sin_addr = *((struct in_addr *) host.h_addr);
00032 memset(&(conn.sin_zero), 0, 8);
00033 if(connect(server->sock, (struct sockaddr *)&conn, sizeof(struct sockaddr))<0)
00034 {
00035 perror("connect");
00036 return -1;
00037 }
00038 lp_send(server, "HELO localhost");
00039 lp_send(server, "MAIL FROM: lpbot@vmiklos.hu");
00040 lp_send(server, "RCPT TO: %s", user->email);
00041 lp_send(server, "DATA");
00042 lp_send(server, "From: lpbot@vmiklos.hu");
00043 lp_send(server, "To: %s", user->email);
00044 lp_send(server, "Subject: password reminder from lpbot");
00045 lp_send(server, "");
00046 lp_send(server, "Your password is '%s'.", user->pass);
00047 lp_send(server, ".");
00048 lp_send(server, "QUIT");
00049 close(server->sock);
00050 return 0;
00051 }
00052