Avatar billede esquimal Nybegynder
06. april 2001 - 12:53 Der er 4 kommentarer og
1 løsning

Afsending af mail, C++ under linux

Hej alle eksperter

Jeg sidder og nørkler lidt med et program der skal sende en mail på et bestemt tidspunkt i program forløbet. Selve mail kommandoen får jeg fat i ved hjælp af system() kaldet. Hvordan får jeg outputtet et \"enter tryk\", som når jeg skal lave en tom linie med kun . for at afslutte mail\'en?? Foreløbig har jeg noget kode der ser således ud:

bool SendMail()
{
  string Subject;
  string Body;
  string MailCommand;
  int ErrorLevel;

  Subject = \"\'Test\'\";
  Body = \"\'Dette er en test\'\";
  Body += \". \\n\";
  MailCommand = \"mail -s \" + Subject + \" \" + EmailAddress + \"\\n \" + Body;
  ErrorLevel = system(MailCommand.c_str());
  if (ErrorLevel != 0)
  {
    perror(\"Send mail\");
    return false;
  }
  else
  {
    return true;
    exit(0);
  }
|

Men det eneste der sker lige nu er mail står og venter på body og et .

Avatar billede esquimal Nybegynder
06. april 2001 - 12:53 #1
Eller er der en nemmere/federe måde at maile på via c++ ??
Avatar billede karlkoder Nybegynder
07. april 2001 - 12:24 #2
du kan skrive til skærm med:

cout << \"enter tryk\";

og bede om brugerens input med:

char InBuffer[100];
cin >> InBuffer;    // resultat fra bruger..
 
Avatar billede karlkoder Nybegynder
07. april 2001 - 12:29 #3
cin >> Inbuffer

... den tager vist kun til og med en Delimiter (et mellumrum eller andet specielt tegn)

brug istedet:

istream & getline( InBuffer, 100, char delim = \'\\n\' );

så får du brugerens indput indtil denne trykker på RETURN/ENTER !!
Avatar billede esquimal Nybegynder
07. april 2001 - 12:58 #4
Problemet er bare at det skal helst køre fuldstændig automatisk...uden nogen som helst form for interaktion. Er det ikke muligt?? Det behøver ikke være med mail kommandoen hvis der er andre alternativer??
Det er nemlig et program der skal køre på en server og sende mails ud i forskellige situtationer
Avatar billede morten2 Nybegynder
09. august 2001 - 12:33 #5
Jeg tror du skal bruge noget lignende

MailCommand = \"mail -s \" + Subject + \" \" + EmailAddress;
FILE* mailfp = popen(MailCommand.c_str(),\"w\");
if(!mailfp)
{
  /* reportError */
}
else
{
  fprintf(fp,\"%s\\n\",body.c_str());
}
pclose(mailfp);

Jeg har ikke linux så det er ikke testet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester