Prevod kodu z Perlu do C - Longer (WAS: code in attachment)

Zdenek Hatas Zdenek.Hatas na unient.cz
Pátek Červen 25 11:53:39 CEST 1999


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Sorry, atach neprosel.
Takze znova.


Zdenek Hatas

/* We use this port for sending mail */
#define MAILPORT 25

/* we send mail to <user na host>: */
char *mail_to = "<root na localhost>";

/* IP of the machine which sends our mail */
char *mail_host = "127.0.0.1";

/* mail  send from host: */
char *from_host = "localhost";

/* mail  send from user: */
char *from_addr = "jouda na xx.com";
/* Subject to mail*/
char *from_addr = "Test mailik";

.... nejaky kod

int send_mail()
{
        static struct sockaddr_in sa;
        char buf[1024], combuf[256];
        
        char *comm[] = { "HELO ",                       from_host,
                         "MAIL FROM: "		,       from_addr,
                         "RCPT TO:"             ,       mail_to,
                         "DATA"                 ,       " "
                        };
        
        i = fork();
        
        if (i < 0) return -1;
        if (!i) return 0;
        
        sprintf(buf,"%s\r\nNejaky textik mailu\r\n.\r\n",subject);
                                        

        sa.sin_port = htons(MAILPORT);
        sa.sin_family = AF_INET;
        if ((sa.sin_addr.s_addr = inet_addr(mail_host)) == -1)
                exit (-1);
        
        bzero(&sa.sin_zero, 8);
        if ((s = socket(AF_INET,SOCK_STREAM,0)) < 0)
                exit (-1);
        
        if (connect(s,(struct sockaddr *) &sa, sizeof (struct
sockaddr)) < 0)
                exit (-1);
        
        for (i = 0; i < 8 ; i += 2){
                sprintf(combuf,"%s%s\n",comm[i],comm[i+1]);
                if (write(s,combuf,strlen(combuf)) < 0 ){
                        close(s);
                        exit(-1);
                }
                sleep(1);
        }
        if (write(s,buf,strlen(buf)) < 0) exit(-1);
        sleep(1);
        if (write(s,"QUIT\n",5) < 0) exit (-1);
        
        close(s);
        exit(0);
}
        
-----BEGIN PGP SIGNATURE-----
Version: PGP Personal Privacy 6.0.2

iQA/AwUBN3NFALoJA2GjfJ9qEQKCPQCeMDOBeFObW2NPBepnvRsExh/3tpAAniRN
PjlxEqgrL0vl5w2mKDNJKR0u
=/2x4
-----END PGP SIGNATURE-----


Další informace o konferenci Linux