Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: giosch - Maggio 13, 2012, 02:24:31 pm

Titolo: Problema mail
Inserito da: giosch - Maggio 13, 2012, 02:24:31 pm
Stavo seguendo l'how to di xinyiman rigardo al mandare email con lazarus usando synapse.
Dopo aver scaricato synapse e messo tutte le librerie nella cartella ho creato mylibmail ed non volendo usare i form ho tolto tutte le librerie tranne quelle per il socket, class e sysutils.
Ho dovuto quindi togliere anche un application.processmessages
(In qualunque caso quelle librerie non le trovava, qualcuno mi darebbe anche delucidazioni in merito? :) grazie).

Ho quindi creato un programma che senza form manda un email a me stesso da me stesso tramite hotmail (smtp.live.com, porta 25, teoricamente ssl attiva)
Però da errore, sul login e logout con ssl=true e solo nel logout con ssl=false.
Posto libreria
Codice: [Seleziona]
unit MyLibMail;
{$mode objfpc}{$H+}
interface

uses
    blcksock, smtpsend, pop3send, ssl_openssl //librerie di synapse
    , MimePart, MimeMess,SynaChar
    ,Classes, SysUtils;

  type
      MyMailObject=class
      private
             StrList: TStringList;
             Mime : TMimeMess;
             SMTP : TSMTPSend;
             MyUser, MyPassword, MySMTPHost, MyPorta, MyNome, MyFrom, MyRisposta, MyOggetto, MyCorpoMail: string;
             MySicurezza: integer;
             MyTesto, MyToList, MyCCList, MyAllegatoList:TStringList;
             tmp : TMemoryStream;
             function RetNomeFile(PathFile: string): string;
      public
            constructor Create();
            destructor Destroy();
            function MySendMail(var Errore: string): boolean;
            procedure SetMyUser(UserP: string);
            procedure SetMyPassword(PasswordP: string);
            procedure SetMySMTPHost(SMTPHostP: string);
            procedure SetMyPorta(PortaP: string);
            procedure SetSSLTLS(SicurezzaP: boolean);
            procedure SetMyNome(NomeP: string);
            procedure SetMyFrom(FromP: string);
            procedure SetMyRisposta(RispostaP: string);
            procedure AddDestinatario(DestP: string);
            procedure AddMyAllegatoList(AllegatoListP: string);
            procedure SetMyOggetto(OggettoP: string);
            procedure AddRowCorpoMail(RigaP: string);
      end;

implementation
              constructor MyMailObject.Create();
              begin
                   StrList := TStringList.Create;
                   MyToList := TStringList.Create;
                   MyTesto := TStringList.Create;
                   MyCCList := TStringList.Create;
                   MyAllegatoList := TStringList.Create;
                   Mime := TMimeMess.Create;
                   SMTP := TSMTPSend.Create;
                   SetMyUser('');
                   SetMyNome('');
                   SetMyFrom('');
                   SetMyPassword('');
                   SetMyPorta('25');
                   SetMySMTPHost('');
                   SetMyOggetto('');
                   SetSSLTLS(false);
                   SetMyRisposta('');
              end;

              Destructor MyMailObject.Destroy();
              begin
                   //Free finale degli oggetti
                   StrList.Free; //Prova
                   MyTesto.Free;
                   MyToList.Free;
                   MyCCList.Free;
                   MyAllegatoList.Free;
                   Mime.Free; //Prova
                   smtp.Free;
              end;

              procedure MyMailObject.SetMyUser(UserP: string);
              begin
                   MyUser:=UserP;
              end;

              procedure MyMailObject.SetMyPassword(PasswordP: string);
              begin
                   MyPassword:=PasswordP;
              end;

              procedure MyMailObject.SetMySMTPHost(SMTPHostP: string);
              begin
                   MySMTPHost:=SMTPHostP;
              end;

              procedure MyMailObject.SetMyPorta(PortaP: string);
              begin
                   MyPorta:=PortaP;
              end;

              procedure MyMailObject.SetSSLTLS(SicurezzaP: boolean);
              begin
                   if SicurezzaP=TRUE then
                      MySicurezza:=2
                   else
                      MySicurezza:=1;
              end;

              procedure MyMailObject.SetMyNome(NomeP: string);
              begin
                   MyNome:=NomeP;
              end;

              procedure MyMailObject.SetMyFrom(FromP: string);
              begin
                   MyFrom:=FromP;
              end;

              procedure MyMailObject.SetMyRisposta(RispostaP: string);
              begin
                   MyRisposta:=RispostaP;
              end;

              procedure MyMailObject.AddDestinatario(DestP: string);
              begin
                   MyToList.Add(DestP);
              end;

              procedure MyMailObject.AddMyAllegatoList(AllegatoListP: string);
              begin
                   MyAllegatoList.Add(AllegatoListP);
              end;

              procedure MyMailObject.SetMyOggetto(OggettoP: string);
              begin
                   MyOggetto:=OggettoP;
              end;

              procedure MyMailObject.AddRowCorpoMail(RigaP: string);
              begin
                   StrList.Add(RigaP);
              end;

              function MyMailObject.MySendMail(var Errore: string): boolean;
              var
                 ret: boolean;
                 k: integer;
              begin
                   ret:=FALSE;
                   Errore:='';
                try
                  //====================================
                  //If authorization is required, then fill in username
                  smtp.UserName := MyUser;
                  //Specify user's password
                  smtp.Password := MyPassword;
                  //Specify target server IP (or symbolic name)
                  smtp.TargetHost := MySMTPHost;
                  //Specify target server port
                  if (Trim(MyPorta) = '') then begin
                    //Porta non impostata
                    smtp.TargetPort := '25'; //Porta di default
                  end
                  else begin
                     smtp.TargetPort := MyPorta;
                  end;
                  //Enable SSL|TLS protocols
                  smtp.autoTLS := True;
                  //smtp.Timeout := 60;

                  if (MySicurezza = 2) then begin
                    //SSL/TLS
                    smtp.FullSSL := True;
                  end;

                  //Connect to SMTP server
                  if not smtp.Login() then Errore:=Concat(Errore, #13#10 , 'SMTP ERROR: Login:' , smtp.EnhCodeString);
                  //if not smtp.StartTLS () then showmessage('SMTP ERROR: StartTLS:' + smtp.EnhCodeString);

                  //If you successfully pass authorization to the remote server
                  if smtp.AuthDone then begin
                    //Corpo mail
                    for k := 0 to (MyTesto.Count - 1) do begin
                      StrList.Add(MyTesto[k]);
                    end;
                    //Mime.Header.CharsetCode := UTF_8; //Da' errore
                    Mime.Header.From := MyNome + ' <' + MyFrom + '>';
                    //E-mail per rispondere (eventuale)
                    if (Trim(MyRisposta) = '') then begin
                      //E-Mail di risposta non indicata
                      Mime.Header.ReplyTo := MyFrom; //Indirizzo di risposta = indirizzo mittente
                    end
                    else begin
                      //E-Mail di risposta indicata
                      Mime.Header.ReplyTo := MyRisposta;
                    end;
                    //To
                    for k := 0 to (MyToList.Count - 1) do begin
                      Mime.Header.ToList.Add(Trim(MyToList[k]));
                    end;
                    //CC (eventuale)
                    if (MyCCList.Count > 0) then begin
                      for k := 0 to (MyCCList.Count - 1) do begin
                        Mime.Header.CCList.Add(Trim(MyCCList[k]));
                      end;
                    end;
                    //Oggetto
                    Mime.Header.Subject := MyOggetto;
                    //Corpo mail
                    Mime.AddPartMultipart(MyCorpoMail, Nil);
                    Mime.AddPartText(StrList, Mime.MessagePart);
                    //Eventuali allegati
                    if (MyAllegatoList.Count > 0) then begin
                      //Ci sono allegati
                      {//Questo blocco funziona correttamente, ma non e' possibile impostare il nome degli allegati che vengono poi visualizzati dal destinatario
                      for k := 0 to (MyAllegatoList.Count - 1) do begin
                        hdAttach := Trim(MyAllegatoList[k]);
                        if (hdAttach <> '') then begin
                          Mime.AddPartBinaryFromFile(hdAttach, Mime.MessagePart);
                        end;
                      end;
                      }
                      tmp := TMemoryStream.Create;
                      for k := 0 to (MyAllegatoList.Count - 1) do begin
                        try
                          tmp.Clear; //Cmq. non sembra necessario
                          tmp.LoadFromFile(Trim(MyAllegatoList[k]));
                          Mime.AddPartBinary(tmp, RetNomeFile(MyAllegatoList[k]), Mime.MessagePart); //Nome da visualizzare allegato
                        finally
                          //tmp.Free;
                        end;
                      end;
                      tmp.Free;
                    end;
                    //Codifica messaggio
                    Mime.EncodeMessage;
                    //Invio: From
                    if not SMTP.MailFrom(MyFrom, Length(Mime.Lines.Text)) then exit;
                    //Invio: To
                    for k := 0 to (MyToList.Count - 1 ) do begin
                      if not SMTP.MailTo(Trim(MyToList[k])) then exit;
                    end;
                    //Invio: CC
                    if (MyCCList.Count > 0) then begin
                      //Ci sono indirizzi CC
                      for k := 0 to (MyCCList.Count - 1) do begin
                        if not SMTP.MailTo(Trim(MyCCList[k])) then exit;
                      end;
                    end;
                    //Invio: Corpo messaggio + eventuali allegati
                    if not SMTP.MailData(Mime.Lines) then exit;
                  end;
                  //Logout
                  if not smtp.Logout() Then
                    Errore:=Concat(Errore, #13#10 , 'SMTP ERROR: Logout:' , smtp.EnhCodeString);
                  //Se arrivati qui tutto OK
                  ret := True; //OK
                  Result:=ret;
                finally
                  //Processa messaggi
                  {Application.ProcessMessages;}
                end;
              end;

              function MyMailObject.RetNomeFile(PathFile: string): string;
              var
                 car, car2, ret: string;
                 i: integer;
              begin
                   ret:='';
                   car:='/';
                   {$IFDEF WIN32}
                            car:='\';
                   {$ENDIF}
                   for i:=1 to Length(PathFile) do
                   begin
                        car2:=PathFile[i];
                        if car2=car then
                        begin
                             ret:='';
                        end
                        else
                        begin
                             ret:=Concat(ret, car2);
                        end;
                   end;
                   RetNomeFile:=ret;
              end;

end.
                                                                         

e programma

Codice: [Seleziona]
program mail;
uses MyLibMail;
var
   app: MyMailObject;
   Errore: string;
begin
     app:=MyMailObject.Create;
     {setto i parametri}
     app.SetMyUser('gio.sch@hotmail.it');
     app.SetMyNome('gio.sch');
     app.SetMyFrom('gio.sch@hotmail.it');
     app.SetMyPassword('********');
     app.SetMyPorta('25'); //set to hotmail
     app.SetMySMTPHost('smtp.live.com'); //set to hotmail
     app.SetMyOggetto('Log');
     //app.SetSSLTLS(TRUE);
     app.AddDestinatario('gio.sch@hotmail.it');

     //app.AddMyAllegatoList('c:\1.txt');
     //app.AddMyAllegatoList('c:\2.txt');

     app.AddRowCorpoMail('PIPPO');
     app.AddRowCorpoMail('PLUTO2');

     { invio la mail }
     app.MySendMail(Errore);
     writeln(errore);
     { libero la memoria }
     app.Destroy();
     readln;
end.               

Spero sappiate aiutarmi a capire dove sbaglio :)
Titolo: Re:Problema mail
Inserito da: xinyiman - Maggio 13, 2012, 09:06:40 pm
Per capire, qual'è errore?!
Riporta l'errore esatto! Comunque la mail te la manda?!
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 13, 2012, 09:54:33 pm
con ssl false
scrive su prompt

SMTP ERROR: Login:Success-Other undefined Status
SMTP ERROR: Logout:???-Other undefined Status

con ssl true

SMTP ERROR: Login:???-Other undefined Status
SMTP ERROR: Logout:???-Other undefined Status

Cosa sbaglio? L'uso della tua unit o i dati per l'email? o cos'altro?
Devo dire che non sono molto ferrato sull'uso di protocolli per la rete...
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 13, 2012, 10:06:38 pm
Scusa la domanda banale, ma usi hotmail.it.
Se ricordo bene, l'smtp e il pop sono a pagamento su hotmail.
Credo che dia il 2 di picche per questo motivo.
Se hai l'abbonamento ... non so cosa dirti, aspettiamo il guru di turno ;)

EDIT:
Aggiungo un'altra osservazione ... ti stai mandando la mail da solo?
Non so se hotmail permetta di mandare delle mail con FROM e TO uguali ...
Non ricordo le restrizioni del protocollo. Forse xinyiman (http://www.lazaruspascal.it/index.php?action=profile;u=1) è in grado di dare delucidazioni in merito ;)
Titolo: Re:Problema mail
Inserito da: xinyiman - Maggio 14, 2012, 07:57:22 am
Sinceramente io hotmail non l'ho mai usato. Ho sempre mandato mail da GMail. Quindi delle sue varie restrizioni dovrebbe magari informarsi sul sito di hotmail e vedere se trova notizie in questo senso.
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 03:10:49 pm
Ok, ho creato un account gmail e ho settato la porta su 465 e messo ssl true
Codice: [Seleziona]
program mail;
uses MyLibMail;
var
   app: MyMailObject;
   Errore: string;
begin
     app:=MyMailObject.Create;
     {setto i parametri}
     app.SetMyUser('xxxxxxxxx@gmail.com');
     app.SetMyNome('xxxxxxxxx@gmail.com');
     app.SetMyFrom('xxxxxxxxx@gmail.com');
     app.SetMyPassword('xxxxxxxx');
     app.SetMyPorta('465'); //set to gmail
     app.SetMySMTPHost('smtp.gmail.com'); //set to gmail
     app.SetMyOggetto('Log');
     app.SetSSLTLS(TRUE);
     app.AddDestinatario('gio.sch@hotmail.it');

     //app.AddMyAllegatoList('c:\1.txt');
     //app.AddMyAllegatoList('c:\2.txt');

     app.AddRowCorpoMail('PIPPO');

     { invio la mail }
     app.MySendMail(Errore);
     writeln(errore);
     { libero la memoria }
     app.Destroy();
     readln;
end.                         


però continua a dirmi lo stesso errore (il secondo)
Codice: [Seleziona]
SMTP ERROR: Login: ???-Other undefined Status
SMTP ERROR: Logout: ???-Other undefined Status
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 14, 2012, 03:32:01 pm
Dico la cosa più banale, ma spesso è quella che può sfuggire (almeno a me capita spesso...  :'( ): non è che c'è qualche firewall che impedisce l'invio?
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 14, 2012, 03:35:00 pm
Legolas, basta che non inizi a smontare il differenziale di casa perchè è staccata la presa della lavatrice ;)
In effetti le impostazioni si Windows potrebbero rompere le scatole.
Ma chi ne capisce di + è xinyiman;)
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 03:48:35 pm
esssendo profonamente ignorante in materia, non credo che il firewall di windows blocchi la porta per smtp....
Ma comunque, qualche soluzione? A vuoi funziona questo algoritmo?
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 14, 2012, 04:18:53 pm
In linea di principio, il firewall di Window, blocca l'accesso ad una porta, ma la regola è impostata per programma.
Puoi anche mettere regole più complesse basate sugli IP, ma credo esuli dal problema.
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 04:33:56 pm
scusa, ma blocca tutte le porte? Non solo quelle senza un client ? Comunque non vorrei farlo manualmente... É possibile fare in modo che il mio programma apra la porta e comunichi col server smtp ?
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 14, 2012, 04:51:23 pm
In genere quando un programma prova ad accedere (da XP in poi) ad una porta, Windows chiede cosa si deve fare.
Bloccare o consentire.
Con w2k non ricordo come si comportava ... :( Sorry
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 14, 2012, 04:57:02 pm
Spulciando google ho trovato questo:
http://www.lazarusforum.de/viewtopic.php?p=26751#p26751 (http://www.lazarusforum.de/viewtopic.php?p=26751#p26751)

Il colpevole in questo caso è l'antivirus McAfee. Magari prova a disattivare temporaneamente il tuo antivirus e vedi se funge
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 05:30:58 pm
Disattivando realtime protecion di avira non cambia nulla. Ho provato con un account email.it (quindi smtp.email.it) ma sempre lo stesso errore...
Quando lo eseguo non escono finestre di richieste da parte del firewall, quindi mi sembra strano che lo blocchi...
Idee? o meglio, Soluzioni? ;)

EDIT
aggiunta manualmente la regola mail.exe come eccezione nel firewall  ma non va comunque.
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 14, 2012, 05:55:54 pm
so che usando SSL/TLS bisogna specificare anche il metodo di autenticazione (pass normale/cifrata/kerberos/bla bla bla)
già controllato se può essere quello?
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 06:19:28 pm
non saprei come fare, anche perché non conosco il protocollo...mi spiegheresti cosa dovrei fare in pratica?
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 14, 2012, 07:29:18 pm
intendevo dire di controllare bene le proprietà ed i metodi che hai a disposizione per vedere se c'è qualcosa che rimanda al metodo di autentizazione
Titolo: Re:Problema mail
Inserito da: xinyiman - Maggio 14, 2012, 08:49:56 pm
Giusto per capire, hai provato a compilare il programma originale (ovviamente con i tuoi dati) e ad eseguirlo?! Solo per capire ovviamente...
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 14, 2012, 09:27:41 pm
il tuo archivio, aprendo il project nella cartella principale da errore perchè non trova la dll libeay32
io ho provato a rinominare il file libeay32.dll.a presente nella cartella in libeay32.dll ma mi dice che non è compatibile con windows.
Da li poi ho rinunciato e ho provato a fare a modo mio (sbagliando probabilmente).

Ti chiedo due cose: 1 come posso correggere il mio codice? Avrei veramente bisogno di inviare automaticamente un file di testo per email.....

(la seconda è un po' OT) 2 come posso imparare ad usare librerie come synapse? da cosa si parte? Devo studiarmi prima qualcos'altro come i form e la grafica? e anche quelli da dove parto?
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 14, 2012, 09:52:20 pm
Ecco scoperto l'arcano :)
Scaricati questo:
http://slproweb.com/download/Win32OpenSSL_Light-1_0_1c.exe
dentro c'è la dll che ti serve. Copiala nella directory del progetto, compila e divertiti ;)
Titolo: Re:Problema mail
Inserito da: xinyiman - Maggio 15, 2012, 07:56:35 am
Mi sa che Legolas ha centrato la risposta.

Guarda qui sul forum puoi trovare un sacco di informazioni.

Per Synapse l'unica è andare sul loro sito e imparare dalle loro guide.

http://synapse.ararat.cz/doku.php/start
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 15, 2012, 09:36:27 am
In effetti ho provato a compilare l'esempio e anche a me, dopo il messaggio di dll non trovata, dava lo stesso errore. Scaricata la dll giusta, tutto ha funzionato alla perfezione :)
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 15, 2012, 04:02:11 pm
Ok grazie a tutti, ho risolto solo grazie a voi ;)
Ora va!

Ma non sperate che sia finita!! tornerò presto con nuove domande ;)
Ciao :)
Titolo: Re:Problema mail
Inserito da: xinyiman - Maggio 15, 2012, 04:27:36 pm
Ti aspettiamo  ;)
Ciao
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 15, 2012, 04:45:14 pm
senza contare che anche noi avremo bisogno di una mano per spedire le mail con l'altro progetto ;)
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 16, 2012, 03:17:07 pm
adesso viene il bello ;) (continuo qua perché é lo stesso argomento)
Esiste un modo per far funzionare il programma senza avere installato le librerie? O meglio, senza fare l'installazioni guidata? Avrei bisogno di far girare il programma in molti computer, anche in alcuni senza autorizzazzione per l'installazione di programma (a scuola per esempio)
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 16, 2012, 03:21:44 pm
Certo che si può fare ... ma cosa devi fare sui pc di scuola?
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 16, 2012, 03:26:10 pm
in pratica sto creando un programma che data una cartella ne estrapola un file con delle informazioni sui file e sarebbe molto più comodo e divertente (se funzonasse) averle per email. Sui computer sui quali lavoro non ho possibilità di installare le openssl...
Non é possibile "inserirle all'interno dell exe" come una libreria statica? Tu cosa volevi propormi?
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 16, 2012, 04:29:37 pm
Piccoli cracker crescono  ;D

In linea di massima ti potrebbe bastare avere le dll necessarie nella stessa directory dell'eseguibile, quindi non avresti niente da dovere installare.

Occhio a non farti beccare dai prof!  ;)
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 16, 2012, 05:15:09 pm
Legolaaaaaaaaaaaaaaaas, porca paletta, gli hai detto come farsi spedire per mail i compiti in classe il giorno prima :(
Come diceva Legolas, non serve installare una DLL ... ma farla trovare al tuo eseguibile.
Altra cosa ... il tuo programma spione, deve rimanere attivo, ma qui si parla di servizi e i servizi hanno qualche rogna in + sulla security di Windows ...
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 16, 2012, 05:33:42 pm
LOL ;D
In effetti bisognerebbe impegnare tempo e risorse nello studio, piuttosto che nel cercare modi (rischiosi) di aggirare il problema  ::)
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 16, 2012, 06:17:19 pm
alzi la mano chi all'esame di maturità non ha pensato di telefonare in australia per farsi dare le prove d'esame con qualche ora di anticipo :D
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 16, 2012, 06:45:20 pm
1



In linea di massima ti potrebbe bastare avere le dll necessarie nella stessa directory dell'eseguibile, quindi non avresti niente da dovere installare.

so che un modo era questo, ma non è così comodo, cercavo altro...

2



Piccoli cracker crescono   
Occhio a non farti beccare dai prof! 


Legolaaaaaaaaaaaaaaaas, porca paletta, gli hai detto come farsi spedire per mail i compiti in classe il giorno prima :(
Come diceva Legolas, non serve installare una DLL ... ma farla trovare al tuo eseguibile.
Altra cosa ... il tuo programma spione, deve rimanere attivo, ma qui si parla di servizi e i servizi hanno qualche rogna in + sulla security di Windows ...


LOL ;D
In effetti bisognerebbe impegnare tempo e risorse nello studio, piuttosto che nel cercare modi (rischiosi) di aggirare il problema  ::)

La fiducia prima di tutto eh? ;) Frequento il liceo scientifico più rinomato della mia città e ho la media dell'8.40 netto (la più alta della classe)...
Mai copiato e non credo che inizierò, anche perchè i nostri professori non sanno usare il computer... e  soprattutto non usano quelli a scuola ;)

Questo programma mi serve per sincronizzare una mia cartella di progetti a scuola con un "cloud" (gli allegati delle email  ;D)
E comunque con
Avrei bisogno di far girare il programma in molti computer, anche in alcuni senza autorizzazzione per l'installazione di programma (a scuola per esempio)
intendevo che gli account degli studenti non hanno le autorizzazioni per installare qualunque programma...vedono solo i propri file e i propri progetti.
La mia era solo una domanda per sapere se oltre ad tenere le dll nella stessa cartella o nella cartella di sistema c'era un modo per rendere il tutto più "elegante" e mettere tutto nell'eseguibile...

Comunque pensate pure quello che volete, ma dovete ammettere che appena qualcuno fa un passo falso scatta la caccia all'untore... ;)
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 16, 2012, 09:23:09 pm
Ok, dai, mi fido, magari hai la media dello 04.8 se ma lo leggi sempre al contrario ;)
Le DLL basta che siano nella stessa cartella dell'eseguibile.
Così con la pennina usb porti tutto a casa ;)
Non lasci traccia sul filesystem, ma rimane segnato sull'ISP della scuola che il tuo account di posta ha fatto delle operazioni. Quindi non è del tutto alla Lupin la cosa.
Se prevedi un lancio manuale, nessun problema.
(Vuoi fare lo smerdone fino in fondo? Metti un autoplay sulla chiavetta, così parte appena la metti dentro. E i prof non si accorgono nemmeno di quello. E puoi passare a fregare tutto il file system ai docenti ;) , senza nemmeno toccare la loro tastiera ... pensa te :D )
EDIT :
Ti sconsiglio di usare le DLL come risorse embedded dell'applicazione. Non è per niente elegante... e soprattutto non ha nessun vantaggio pratico, se non fare la figura dei NERD brufolosi. Se li piazzi nella directory di avvio dell'eseguibile non hai rogne di nessun tipo .. o quasi ;)
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 16, 2012, 09:25:52 pm
Hehehe... Le apparenze ingannano: abbiamo pensato che il tizio col passamontagna davanti alla banca fosse un ladro, invece era semplicemente un tizio che aveva freddo  ;D
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 16, 2012, 09:31:49 pm
E pensare che ai miei tempi portavo a casa le cose con i floppy ... come mi sento giurassico.
Quindo ero in seconda superiore (anche qui mi sento giurassico ... all'ITIS)
I compiti in classe ci hanno provato 2 volte a fregarli ... ma nello scassinare la porta dell'aula insegnanti ... hanno fatto un casino micidiale... i bidelli si sono svegliati e vi lascio immaginare la faccia dei carabinieri che si trattenevano dalle risate ... la seconda per andare sul tranquilo hanno dato fuoco alla stanza direttamente :D I carabinieri quella volta non hanno riso molto... e come per magia il triennio non ha fatto nessuna gita ... e pensare che a distanza di anni non so ancora chi sia stato ... ma se lo trovo gli tiro una pedata sulle palle ... ha bruciato anche i miei compiti in classe .. grrr abbiamo dovuto rifarli tutti ...)
Diciamo che se vedo un tizio con il passa montagna dopo che mi hanno rapinato ...
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 17, 2012, 02:01:52 pm
EDIT :
Ti sconsiglio di usare le DLL come risorse embedded dell'applicazione.
Sono curioso, è proprio quello che cercavo :) sapresti  darmi qualche informazione in merito o linkarmi una wiki?
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 17, 2012, 02:14:30 pm
Il forum inglese è pieno di post con i casini che hanno trovato...
Poi, mi spiegi sta manfrina delle DLL da nascondere?
EDIT:
Se devi fare una cosa che spedisce mail, senza che venga installato, è più che sufficiente avere le DLL sulla cartella di avvio.
Il resto è solo un aumentare il livello di complessità per niente....
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 17, 2012, 02:18:27 pm
siccome è un programma che deve andare anche in mano ai miei compagni (impediti) sarebeb più comodo per me, ma più che altro è curiosità :) va benissimo anche mettere le dll nella stessa cartella, cosa che sapevo già che si poteva fare ;)
Se hai voglia di mettermi sulla strada giusta ti ringrazio ;)
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 17, 2012, 02:31:54 pm
è che così... assomiglia tanto ad un trojan...
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 17, 2012, 02:55:13 pm
http://it.wikipedia.org/wiki/Trojan (http://it.wikipedia.org/wiki/Trojan)
se è questo che intendi non ci siamo proprio...volevo solo sapere, ma se credete che io non debba sapere come allora...
Titolo: Re:Problema mail
Inserito da: Legolas - Maggio 17, 2012, 03:09:29 pm
Una volta inserita la dll nelle risorse dell'eseguibile, non è utilizzabile direttamente da lì. Bisogna comunque estrarla e scriverla su disco.
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 17, 2012, 03:23:03 pm
ok grazie ;) alla prossima, e comunque abbiate un po' più di fiducia nel prossimo :)
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 17, 2012, 03:24:34 pm
http://it.wikipedia.org/wiki/Trojan
se è questo che intendi non ci siamo proprio...volevo solo sapere, ma se credete che io non debba sapere come allora...
giosch, non è che non devi sapere. Ma fare una cosa che non serve, perchè vuoi fare il figo in classe ... (o così sembra).
Vuoi dirmi che la gnocca della classe non è capace a lanciare un exe, e rischia di mandare in esecuzione la DLL....?
Ma daiiiiiii
Ti stiamo solo sconsigliando nel fare una clamorosa ... zzzata?
Titolo: Re:Problema mail
Inserito da: nomorelogic - Maggio 17, 2012, 03:28:02 pm
se è questo che intendi non ci siamo proprio...volevo solo sapere, ma se credete che io non debba sapere come allora...

direi proprio di no tranquillo, scusa per la provocazione :)

puoi vedere se ti è utile questo link
http://wiki.freepascal.org/Lazarus_Resources#Lazarus_Resource_Form_File
poi come dice legolas le devi salvare su disco prima di poterle uzilizzare

però penso comunque che per una sincronizzazione non sia necessario nascondere le dll usate all'interno di un eseguibile :)
Titolo: Re:Problema mail
Inserito da: giosch - Maggio 17, 2012, 03:33:20 pm
http://it.wikipedia.org/wiki/Trojan
se è questo che intendi non ci siamo proprio...volevo solo sapere, ma se credete che io non debba sapere come allora...
giosch, non è che non devi sapere. Ma fare una cosa che non serve, perchè vuoi fare il figo in classe ... (o così sembra).
Vuoi dirmi che la gnocca della classe non è capace a lanciare un exe, e rischia di mandare in esecuzione la DLL....?
Ma daiiiiiii
Ti stiamo solo sconsigliando nel fare una clamorosa ... zzzata?
Ho afferrato il concetti grazie :)
Titolo: Re:Problema mail
Inserito da: Stilgar - Maggio 17, 2012, 03:42:58 pm
 ;D