Newsgroup: it.comp.programmare.win32
Titolo: r: spedire una email

magari senza il "mailto:" (non l'ho provato)
Grazie, ho provato con 
ShellExecute(NULL,"open",Ind.c_str(),0,0,SW_NORMAL);
e funziona. La Stringa Ind contiene il o gli indirizzi a cui devo mandare l'
email nel formato "mailto: indirizzo1; indirizzo2; etc..".
Il problema sorge se la stringa e' piu lunga di 255 caratteri, la stringa
viene troncata e non tutti gli indirizzi vengono visualizzati nel programma
di posta elettronica. C' e' qualche soluzione a questo problema? Purtroppo
ho la necessita di usare il browser di default per tenere traccia delle
email inviate, praticamente a me interessa aprire il programma di posta di
default e un messaggio di posta vuoto con tutti gli indirizzi contenuti
nella stringae probabilmente ShellExecute non permette l' invio di un
messaggio piu lungo di 255 caratteri.
--
Posted from [193.3.141.40] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

programma di posta elettronica.
Dall'help di ShellExecute non risulta un limite di 256 car. per i parametri
di tipo LPCTSTR. Forse è un limite del client di posta.
Si può provare a effettuare una suddivisione della stringa che contiene gli
indirizzi e spedirla al client in più volte.
Magari provo a implementare qualcosa.
Ciao.


Non credo sia un limite del client, nella fattispecie Outlook, accetta la
stringa dopo aver fatto il copia e incolla da una messagebox che visualizza
la stringa runtime (poco elegante in effetti). Se suddivido la stringa la
devo mandare in piu di una comando con la conseguente apertura di piu di un
messaggio?
Grazie
P.S.
(Il cambio di indirizzo e' dovuto al fatto che ero in ferie)


Ho scritto un programmino con BCB 4 che  attiva Outlook Express.
Il client accetta una lista di 440 caratteri in una soluzione.
Ho anche scritto una routine che suddivide una stringa di 980 caratteri in
stringhe di max 256 e le invia separatamente al client ma vengono aperte
diverse finestre.
Ecco il codice:
String sInd1, sInd2;
sInd1 = "mailto: indir...@qualcosa.boh; indir...@qualcosa.boh;" +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;");
  sInd2 = AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;") +
          AnsiString(" indir...@qualcosa.boh; indir...@qualcosa.boh;
indir...@qualcosa.boh;");
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ShellExecute(NULL,"open",sInd1.c_str(),0,0,SW_NORMAL);// spedisce la
stringa di 440 car.
}
file://suddivide la stringa di 980 car in stringhe di max 256 e le spedisce
separatamente
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  String sT, sIndParz;
  int iI, iC, iL;
  String sInd = sInd1 + sInd2;
  iI = sInd.Pos(";");
  sIndParz = sInd.SubString(1, iI); // copia "mailto: e il primo ind"
  iC = iI;
  iI++;
  iL = sInd.Length();
  sT = "";
  while(iC < iL){
    do{
      iC++;
      sT = sT + sInd[iC];
    }while((iC < iL) && (sInd[iC] != ';'));
    if(((sIndParz.Length() + sT.Length()) > 256) || (iC == iL)){
      ShellExecute(NULL,"open",sIndParz.c_str(),0,0,SW_NORMAL);
      sIndParz = "mailto:";
    };
    sIndParz = sIndParz + sT;
    sT = "";
  };
}
/************************
se ti interessa il progr.  completo mandami una e-mail a 
dm...@usa.net
 cosě
mi ricavo il tuo indirizzo di posta.
Spero di essere stato utile.

di posta elettronica. C' e' qualche soluzione a questo problema? =
La soluzione e' quella di interfacciare Outlook via COM.
Se ti interessa ti mostro come fare.

 wrote in message
399b4d8...@diesel.cu.mi.it...

Grazie, sono tutto orecchi (occhi) :)