Forum » Programiranje » SMTP v c -ju
SMTP v c -ju
Base-T ::
Pozdravljeni!
Zanima me, če ima kdo izdelan SMTP v c -ju. Rabil bi takšnega čisto enostavnega, ki izvede tele stvari:
S: 220 www.example.com ESMTP Postfix
C: HELO mydomain.com
S: 250 Hello mydomain.com
C: MAIL FROM: od nekoga
S: 250 Ok
C: RCPT TO: nekomu
S: 250 Ok
C: DATA
S: 354 End data with
C: Subject: test message
C: From: sender@mydomain.com
C: To: friend@example.com
C: Hello,
C: This is a test.
C: Goodbye.
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
Kdor kolii mi lahko pomaga bi mu bil zelo hvaležen!
Zanima me, če ima kdo izdelan SMTP v c -ju. Rabil bi takšnega čisto enostavnega, ki izvede tele stvari:
S: 220 www.example.com ESMTP Postfix
C: HELO mydomain.com
S: 250 Hello mydomain.com
C: MAIL FROM: od nekoga
S: 250 Ok
C: RCPT TO: nekomu
S: 250 Ok
C: DATA
S: 354 End data with
C: Subject: test message
C: From: sender@mydomain.com
C: To: friend@example.com
C: Hello,
C: This is a test.
C: Goodbye.
S: 250 Ok: queued as 12345
C: QUIT
S: 221 Bye
Kdor kolii mi lahko pomaga bi mu bil zelo hvaležen!
yeti ::
Ma saj si ze vse napisal, spiši si ga sam;
5 funkcij moraš klicat, posiljas pa kar si sam napisal, big deal... WSAStartup, socket, connect, send, recv
Sicer pa vrži v google; "+socket +tutorial +client"...
5 funkcij moraš klicat, posiljas pa kar si sam napisal, big deal... WSAStartup, socket, connect, send, recv
Sicer pa vrži v google; "+socket +tutorial +client"...
Zgodovina sprememb…
- spremenil: yeti ()
Base-T ::
Ja napisam sem kako mora to zgledat, sam programski jezik c mi pa ne leži ravno. Zato , če bi kdo to imel, bi mu bil res hvaležen.
Vanquish ::
yeti uporabi perl imaš praktično že vse narejeno samo funkcije kličeš
še link: http://alma.ch/perl/Mail-Sendmail-FAQ.h...
še link: http://alma.ch/perl/Mail-Sendmail-FAQ.h...
Zgodovina sprememb…
- spremenil: Vanquish ()
Vanquish ::
ti hočeš pomoč al da kdo napiše namesto tebe? Namreč če je vse kaj rabiš programček za pošiljanje mailov lahko uporabiš perl brez posebnega poznavanja programiranja. Če pa maš kakšno nalogo, ki moreš oddat napisat le tega v c-ju in želiš, da ti bo ga kompletno nekdo drug napisa pa mislim, da vsaj tukaj ne boš dobil pomoči
BigWhale ::
Kaj, ko bi napisal kaj si ze naredil? In povedal kje se ti zatakne, pa ti bomo pomagali..
Najbrz se ti ne zatakne pri int main() {return 0;}, mar ne?
Najbrz se ti ne zatakne pri int main() {return 0;}, mar ne?
yeti ::
vanquish: "yeti uporabi perl imaš praktično že vse narejeno samo funkcije kličeš"
uf.. vanquish vesel sem da mi zelis pomagati, samo glede na to da sem pop in smtp proxy naredil za avtomatično elektronsko podpisovanje in kriptiranje poštnih sporočil (ne boš verjel v c++u, z thread poolingom, multithreaded queuom, ECC podpisovanjem/kriptiranjem sporočil) se bojim da nisem pravi naslov za perl (saj ne da ne bi bil dve leti sistemc na "firmi" za ~300 zaposlenimi in poleg ostalih "malenkosti" spam assasina fural na mail serverju... ceprav moram priznati da nisem ravno fan, obicajno si raje sam spišem kar rabim in to good old way s compilerjem in linkerjem ne interpreterjem...)
uf.. vanquish vesel sem da mi zelis pomagati, samo glede na to da sem pop in smtp proxy naredil za avtomatično elektronsko podpisovanje in kriptiranje poštnih sporočil (ne boš verjel v c++u, z thread poolingom, multithreaded queuom, ECC podpisovanjem/kriptiranjem sporočil) se bojim da nisem pravi naslov za perl (saj ne da ne bi bil dve leti sistemc na "firmi" za ~300 zaposlenimi in poleg ostalih "malenkosti" spam assasina fural na mail serverju... ceprav moram priznati da nisem ravno fan, obicajno si raje sam spišem kar rabim in to good old way s compilerjem in linkerjem ne interpreterjem...)
Base-T ::
Torej! Problem ima s povezavo na server, in pa pošiljanjem vsakega podatka posebej nanj.(MAIL FROM:, RCPT TO in druge)
Vanquish ::
yeti ja sej obvladaš, celo tolko, da po kompjutersko nisi spoznal moje napake, da sem mislil Base-T in ne tebe
yeti ::
Sem sem, pa sem izkoristil priloznost da se malo hvalim... jebat ga najbolj osamljen posel, kolegi te ne razumejo kaj delaš, bejbe zaspijo ali pobegnejo če se jim drzneš kaj o programiranju sploh omenit,...
yeti ::
... pa še ko bi rad na kaksnem boardu komu potozil te skurcajo da pretiravas in da je to dreamjob
'FireSTORM' ::
naj ti bo že obstoječi smtp daemon v pomoč
ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.13.8.tar.gz
ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.13.8.tar.gz
Those penguins.... They sure aint normal....
Base-T ::
Tega je čisto preveč, se prav nič ne znajdem, hvala vseeno za pomoč.
Pa pozna kdo kakšen program, ki bi java kodo pretvoril v c, ker v javi mi smtp že dela?
Pa pozna kdo kakšen program, ki bi java kodo pretvoril v c, ker v javi mi smtp že dela?
yeti ::
V tem casu bi si ze sam lahko spisal, kaj ce bi vsaj probal, a? Ti rade volje pomagam, lenobe pa ne bom podpiral.
Base-T ::
Yeti tvojega teženja ni treba pisati na forumu. Če ti kaj ne paše, raje bodi tiho in se ne oglašaj na to temo več.
yeti ::
Trudim se pridobiti napis "Persona non grata" pod nick, se mi zdi strasno cool... no ja in pa oprosti ce mi gredo na zivce paraziti, ki se prisesajo na tuje znanje in ga izkoriscajo namesto, da bi si vzeli 5 minut casa in prebrali najbolj lame napisan tutorial za client sockete, ki ga bi zelo verjetno nasel celo v slovenscini (s tem se bo zelo verjetno se marsikdo strinjal zato ne razglasaj prevec naokrog kaj sem ti napisal, ker ti je lahko samo v sramoto). Sicer cisto verjamem, da sem taksnim trn v peti, saj jim ozim moznost izbora zrtev katerim bodo sesale kri, ampak to je pac njihov problem, mar ne? Seveda bi ti lahko koristil pri tem ko si pises programcek, samo krvodajalska organizacija pa tudi nisem...
(... pa v jok pa na drevo pa gajbo laškega sabo in nikoli več dol )
Zgodovina sprememb…
- spremenil: yeti ()
Base-T ::
imam tole funkcijo
static int smtpOpen(void){
char *dest = SMTP_ADDRESS;
struct in_addr addr;
int type = SOCK_STREAM;
struct sockaddr_in sock_out;
int res;
/* create a socket to write to */
res = socket(PF_INET, type, 0);
if (res == -1) {
return -1;
}
addr.s_addr = inet_addr(dest);
sock_out.sin_addr = addr;
sock_out.sin_port = htons(SMTP_PORT);
sock_out.sin_family = PF_INET;
if (connect(res,(struct sockaddr *)&sock_out,sizeof(sock_out))) {
close(res);
return -1;
}
return res;
}
rezultat je -1 kar pomeni da se mi ne poveže prav
kakšen moram dat SMTP_PORT in SMTP_ADDRESS sam sem dal takole pa ne vem če je prav
#define SMTP_PORT 25
#define SMTP_ADDRESS "127.0.0.1"
kam pa je potrebno dat smtp.volja.net
Hvala za pomoč
static int smtpOpen(void){
char *dest = SMTP_ADDRESS;
struct in_addr addr;
int type = SOCK_STREAM;
struct sockaddr_in sock_out;
int res;
/* create a socket to write to */
res = socket(PF_INET, type, 0);
if (res == -1) {
return -1;
}
addr.s_addr = inet_addr(dest);
sock_out.sin_addr = addr;
sock_out.sin_port = htons(SMTP_PORT);
sock_out.sin_family = PF_INET;
if (connect(res,(struct sockaddr *)&sock_out,sizeof(sock_out))) {
close(res);
return -1;
}
return res;
}
rezultat je -1 kar pomeni da se mi ne poveže prav
kakšen moram dat SMTP_PORT in SMTP_ADDRESS sam sem dal takole pa ne vem če je prav
#define SMTP_PORT 25
#define SMTP_ADDRESS "127.0.0.1"
kam pa je potrebno dat smtp.volja.net
Hvala za pomoč
BigWhale ::
> sock_out.sin_addr = addr;
Tole ne vem ce deluje tako kot treba.
Takole probaj:
sock_out.sin_addr.s_addr = inet_addr("127.0.0.1");
Tole ne vem ce deluje tako kot treba.
Takole probaj:
sock_out.sin_addr.s_addr = inet_addr("127.0.0.1");
Base-T ::
mislim da je tole kar pomagalo,
kako bi pa sedaj lahko naredil tole:
write(fd,"HELO %s\n", hostname);
int n = read(res,hostname,255);
if (n < 0)
error("ERROR reading from socket");
write(res,"MAIL FROM: SIZE=%d\n", FROM);
write(res,"RCPT TO: \n", TO);
write(res,"Subject: %s\n", SUBJECT);
write(res,"Body: %s\n", BODY);
write(res,"\n.\n",1);
write(res,"QUIT\n",4);
Nekako ni tole najbolj prav :)
kako bi pa sedaj lahko naredil tole:
write(fd,"HELO %s\n", hostname);
int n = read(res,hostname,255);
if (n < 0)
error("ERROR reading from socket");
write(res,"MAIL FROM: SIZE=%d\n", FROM);
write(res,"RCPT TO: \n", TO);
write(res,"Subject: %s\n", SUBJECT);
write(res,"Body: %s\n", BODY);
write(res,"\n.\n",1);
write(res,"QUIT\n",4);
Nekako ni tole najbolj prav :)
Base-T ::
Jaz sem že čist obupan, ne vem kako bi lahko na najlažji način gor pisal in sprejemal odgovore.
BigWhale ::
telnetaj se na port 25 enega mail serverja, pa poglej kako tocno delujejo stvari.
PS:
Takoj po tem, ko posljes kaj na server ponavadi dobis odgovor od serverja.
PS:
Takoj po tem, ko posljes kaj na server ponavadi dobis odgovor od serverja.
Zgodovina sprememb…
- spremenil: BigWhale ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c] ne sprejme UDP paketaOddelek: Programiranje | 990 (578) | slovencl |
» | [C++] bindOddelek: Programiranje | 1456 (1234) | fiction |
» | Delo z omrezjem v linuxuOddelek: Programiranje | 1304 (1150) | CCfly |
» | C: connect() funkcija, kako nastaviti timeoutOddelek: Programiranje | 1782 (1563) | fefko-the-bulldog |
» | Casovni problem v C/C++Oddelek: Programiranje | 1258 (1159) | sid_dabster |