SMTP send v C

Jan Houstek houstek na utf.troja.mff.cuni.cz
Pondělí Květen 26 16:10:56 CEST 2003


> > Pomoci system() nebo fork() + exec() si zavolat sendmail?
>
> To mne taky napadlo. V c jsem naprostej amater zacatecnik, a nejsem si
> jisty ze uplne chapu prave vztahy mezi sys volanim a navratovejma
> hodnotama a tak.
>
> Navic, ten program co delam by mel byt pouzitelny i na strojich bez
> sendmailu, coz je hlavni duvod proc bych radsi pouzil nejaky kod v C.

Na unixu se mail bezne posila tak, ze se preda programu 'sendmail'. To
jmeno je vicemene zavadejici, protoze ne kazdy pouziva jako MTA zrovna
sendmail, ale je to zavedene (mozna to je dokonce v POSIXu), takze i jiny
MTA obsahuje sendmail (alespon jako symlink).

Druha moznost je pripojit se na port 25 nejakeho SMTP serveru a mail mu
SMTP protokolem predat (coz muzete udelat sam, nebo lepe pouzit nejake
hotove reseni ve forme knihovny, jak tu uz nekdo radil).

Pokud ma vysledny program bezet na UNIXu, tak bych se priklanel k prvni
moznosti, protoze v pripade te druhe musite z kristalove koule vyvestit,
jaky pouzit SMTP server (mate sice slusnou sanci, ze uspejete s adresou
127.0.0.1, ale pravdepodobnost, ze se na tom systemu bude vyskytovat
/usr/sbin/sendmail je o dost vetsi).

Pokud jste z toho, co pisu zmaten, zkuste se podivat, jak se posilaji
maily napr. z PHP na ruznych platformach.

-- Honza Houstek


Další informace o konferenci Linux