/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
simpel email gennem C/C++
Fra : Per Asbjoern Jensen


Dato : 26-03-01 22:23

Hej,

Er der nogen der kender en måde at sende simpel email på fra C/C++, det
drejer sig kun om en linje eller to.

Det skal foregå på en linux maskine via sendmail eller lign, men har kun
brugt sendmail i forbindelse med perl.

Håber der er nogen der kan hjælpe eller komme med en idé. Alt er velkommen.

Per Asbjørn Jensen

På forhånd tak.



 
 
Lars Kongshøj (26-03-2001)
Kommentar
Fra : Lars Kongshøj


Dato : 26-03-01 23:09

Per Asbjoern Jensen wrote:
> Er der nogen der kender en måde at sende simpel email på fra C/C++, det
> drejer sig kun om en linje eller to.
>
> Det skal foregå på en linux maskine via sendmail eller lign, men har kun
> brugt sendmail i forbindelse med perl.
>
> Håber der er nogen der kan hjælpe eller komme med en idé. Alt er velkommen.

Der findes biblioteker, der understøtter mail. Det er nok at skyde
gråspurve med kanoner. Du kan vel bare fyre en shell-kommando af gennem
system().

--
Lars Kongshøj

Carsten Svaneborg (27-03-2001)
Kommentar
Fra : Carsten Svaneborg


Dato : 27-03-01 18:43

Per Asbjoern Jensen wrote:
> Er der nogen der kender en måde at sende simpel email på fra C/C++,
> det drejer sig kun om en linje eller to.
> Det skal foregå på en linux maskine via sendmail eller lign, men
> har kun brugt sendmail i forbindelse med perl.

Du kan enten gøre det ved at lave en soket forbindelse til
localhost port 25, eller ved at pipe data igennem en socket
til sendmail programmet. Den sidste løsning er den letteste
og der er ikke nogen garenti for at sendmail kører som en
deamon på serveren, derimod findes sendmail (eller et andet
post program) altid.

Følgende er et eksempel der bruger sendmail til at emaile med,
koden er C, og laver ikke nogle checks for at der ikke opstår
fejl undervejs. Dette er dog ret let at implementere. Fejlkoder
er dokumenterede i RFC'en om SMTP (simple-mail-transfer-protocol)
du kan også kigge på log filen. Du kan selv folde det ind i en
C++ klasse hvis du vil.

#headere....

// Path til sendmail:
#define Sendmail "/usr/sbin/sendmail -bs >>log"

// pipe for sendmail
FILE* pip;

void OpenEmail(char* Server,char* Sender, char* Recipient, char*
Subject)
{
pip=popen(Sendmail,"w");
if (pip==NULL)
{
perror("Can't run Sendmail");
exit(1);
}

// Se SMTP RFC'en for det følgende
fprintf(pip,"helo %s\n",Server);
fprintf(pip,"mail from:<%s>\n",Sender);
fprintf(pip,"rcpt to:<%s>\n",Recipient);
fprintf(pip,"data\n");
fprintf(pip,"Subject: %s\n\n",Subject);
}

void CloseEmail()
{
fprintf(pip,"\n.\n");
fprintf(pip,"quit\n");
pclose(pip);
}

void main()
{

OpenEmail("Minserver","myself@localhost","yourself@somewhere.net","Re:
Testfisk");

// Her skrives body af email.
fprintf(pip,"Dette er body i email");

CloseEmail();
}

That's it.

--
* Kurosawa: Dersu Uzala Svensk TV 2 Lørdag 24/3 21:15 * Carsten dot
* Drømme Svensk Tv 1 Fredag 30/3 23:15 * Svaneborg at
* http://www.fys.risoe.dk/fys/External/casv/ * risoe dot dk


Per Asbjoern Jensen (29-03-2001)
Kommentar
Fra : Per Asbjoern Jensen


Dato : 29-03-01 07:56

Tak skal I have.
"Carsten Svaneborg" <zqex@linuxstart.com> skrev i en meddelelse
news:3AC0D129.3A85DC81@linuxstart.com...
> Per Asbjoern Jensen wrote:
> > Er der nogen der kender en måde at sende simpel email på fra C/C++,
> > det drejer sig kun om en linje eller to.
> > Det skal foregå på en linux maskine via sendmail eller lign, men
> > har kun brugt sendmail i forbindelse med perl.
>
> Du kan enten gøre det ved at lave en soket forbindelse til
> localhost port 25, eller ved at pipe data igennem en socket
> til sendmail programmet. Den sidste løsning er den letteste
> og der er ikke nogen garenti for at sendmail kører som en
> deamon på serveren, derimod findes sendmail (eller et andet
> post program) altid.
>
> Følgende er et eksempel der bruger sendmail til at emaile med,
> koden er C, og laver ikke nogle checks for at der ikke opstår
> fejl undervejs. Dette er dog ret let at implementere. Fejlkoder
> er dokumenterede i RFC'en om SMTP (simple-mail-transfer-protocol)
> du kan også kigge på log filen. Du kan selv folde det ind i en
> C++ klasse hvis du vil.
>
> #headere....
>
> // Path til sendmail:
> #define Sendmail "/usr/sbin/sendmail -bs >>log"
>
> // pipe for sendmail
> FILE* pip;
>
> void OpenEmail(char* Server,char* Sender, char* Recipient, char*
> Subject)
> {
> pip=popen(Sendmail,"w");
> if (pip==NULL)
> {
> perror("Can't run Sendmail");
> exit(1);
> }
>
> // Se SMTP RFC'en for det følgende
> fprintf(pip,"helo %s\n",Server);
> fprintf(pip,"mail from:<%s>\n",Sender);
> fprintf(pip,"rcpt to:<%s>\n",Recipient);
> fprintf(pip,"data\n");
> fprintf(pip,"Subject: %s\n\n",Subject);
> }
>
> void CloseEmail()
> {
> fprintf(pip,"\n.\n");
> fprintf(pip,"quit\n");
> pclose(pip);
> }
>
> void main()
> {
>
> OpenEmail("Minserver","myself@localhost","yourself@somewhere.net","Re:
> Testfisk");
>
> // Her skrives body af email.
> fprintf(pip,"Dette er body i email");
>
> CloseEmail();
> }
>
> That's it.
>
> --
> * Kurosawa: Dersu Uzala Svensk TV 2 Lørdag 24/3 21:15 * Carsten dot
> * Drømme Svensk Tv 1 Fredag 30/3 23:15 * Svaneborg at
> * http://www.fys.risoe.dk/fys/External/casv/ * risoe dot dk
>



Carsten Svaneborg (29-03-2001)
Kommentar
Fra : Carsten Svaneborg


Dato : 29-03-01 08:11

Per Asbjoern Jensen wrote:
> Tak skal I have.
Selv tak :*)

Men for en anden gangsskyld så behøver du ikke at citere hele
mit indlæg igen.

--
* Kurosawa: Drømme Svensk Tv 1 Fredag 30/3 23:15 *
* Email: Carsten dot Svaneborg at risoe dot dk *
* http://www.fys.risoe.dk/fys/External/casv/ *

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste