Avatar billede alphine Nybegynder
24. november 2002 - 13:29 Der er 8 kommentarer og
1 løsning

Auto Send Email

hvordan laver man en script som ved f.eks når man trykke på en box vil afsende en email til en speciel adresse som f.eks står i en edit? og hvordan kan man gøre sådan at det er specielle oplysninger den sende med mailen.

på forhånd tak.
Avatar billede alphine Nybegynder
24. november 2002 - 13:30 #1
lige en rettelse...
et script
Avatar billede arne_v Ekspert
24. november 2002 - 13:31 #2
script ?

CGI-script ?
Avatar billede alphine Nybegynder
24. november 2002 - 13:34 #3
ehhh :) ved ikke hvad står CGI for ?
bare et eller andet der kan gøre sådan at jeg kan sende en email et stykke kode er ligeså godt
håber jeg er forståelig nok
Avatar billede arne_v Ekspert
24. november 2002 - 13:45 #4
Nej - jeg er ikke sikker på, at jeg ved, hvad du vil.

Men hvis du skal sende en email fra C/C++, så er der
flere ting du kan gøre:
  - finde et library specielt til formålet
  - selv sende en email via SMTP

Det er ret nemt at sende en email via SMTP. Du åbner
en socket til port 25 på mail-serveren og skriver
nogle ret simple tekst-linier.

Jeg kan godt give detaljer, hvis du er interesseret.
Avatar billede arne_v Ekspert
24. november 2002 - 13:50 #5
CGI = Common Gateway Interface

Konteksten er:
  * en web-side med HTML som indeholder en FORM
  * brugeren klikker på en button
  * browseren sender en POST request til HTTP-serveren
  * HTTP-serveren kører et CGI-script til at processe
    tingene (son f.eks. at sende en email)

CGI-scripts i C/C++ er ikke så moderne idag, men for en
5-7 siden var det ganske almindeligt.

Men det lyder ikke som det er konteksten, snarere som
du har en GUI som du vil sende email fra.
Avatar billede alphine Nybegynder
24. november 2002 - 14:24 #6
Jeg har faktisk tænk på at ville have en side oppe til samme formål, som statistik. Men det lader til at jeg må sætte mig lidt bedre ind i de pågældende begreber, så jeg kan bruge de eventuelle svar jeg får.

men det lader til at det der SMTP måske kan bruges, men hvad kræver det?
jeg går ud fra at en server er indlysende, men skal man deruder havde sit eget domainname? så emailen kan blive sendt et sted fra?  og hvis det er er tilfældet skal jeg vel gå ind og forbinde nogle scripts mellem mit program og f.eks outlook.
Avatar billede arne_v Ekspert
24. november 2002 - 14:34 #7
SMTP kræver ikke så meget:
  - en SMTP-server som jeg formoder at du allerede har
    enten hos din internet-udbyder eller hos dit firma
  - en email-addresse som den pågældende SMTP-server
    vil acceptere (din internet-udbyders SMTP-server
    accepterer naturligvis din adresse hos dem og
    dit firmas SMTP-server accepterer naturligvis
    den adresse, så det bør ikek være noget problem)

Så er det bare et spørgsmål om hvad man sender.

Der kan enten selv læse RFC 821 og 822 eller få
noget kode at starte med.
Avatar billede borrisholt Novice
25. november 2002 - 08:43 #8
Hvilken compiler bruger du ?

Jens B
Avatar billede soepro Nybegynder
25. november 2002 - 11:35 #9
Under windows kan du normalt slippe afsted med at bede Windows om at starte dit mail program op, på samme måde som man ville gøre fra en HTML side:

  HINSTANCE  shellExe;
  AnsiString tmpStr, cgiStr;
  char      buffer[257];

  // Start default e-mail application with specified e-mail address,
  // subject "Driver instructions for <vehicle>", and "Hi <driver>"
  // + message as body text.
  tmpStr = "mailto:"
        + edtTO->Text
        + "?subject="
        + edtSUBJECT->Text
        + "&body="
        + memoBODY->Lines->Text;

  // Create new string, where all blanks have been converted to %xx where
  // xx is the hexadecimal value of the character.
  cgiStr = MakeCGIstring(tmpStr);

  shellExe = ShellExecute(Application->Handle, "open", cgiStr.c_str(),
                          /*Parms*/ NULL, NULL, SW_SHOWNORMAL);
  if ((int)shellExe <= 32L)
    Application->MessageBox("E-mail program could NOT be automatically started - Check that a default mail "
                            "application has been defined, or start it manually. Then try again.",
                            "Error starting e-mail program",
                            MB_ICONERROR | MB_OK);

hvor MakeCGIstring() ser sådanher ud:

AnsiString __fastcall MakeCGIstring(AnsiString S)
{
  AnsiString tmpStr;
  char      tmpHex[5];
  int        C;

  for (int idx = 1; idx <= S.Length(); idx++)
  {
    C = (unsigned char)S[idx];
    if (C >= 'A' && C <= 'Z'
    ||  C >= 'a' && C <= 'z'
    ||  C >  ' ' && C <= '@')
      tmpStr += S[idx];
    else
    {
      sprintf(tmpHex, "%%%02x", C);
      tmpStr += tmpHex;
    };
  }; // Entire string.

  return tmpStr;
} // MakeCGIstring.
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