Oppure

Loading
04/01/09 17:21
inuyasca
Ariciao a tutti tanto per comminciare. Vi volevo comunicare che ho rinunciatto al vecchio progetto Computo 2, richiede troppo tempo, percio pensavo di lavorare a un programma di posta eletronica tanto per prendere fiato diciamo. Ma sicome non ho mai costruito niente che funzioni all'esterno del mio computer francamente non so da dove iniziare e gli esempi e le istruzioni sono poco chiare mi potreste dare qualche dritta plzz?? magari un'esempio pratico di come si scarica ancora meglio.
Grazie per la pazienza :=)))
aaa
05/01/09 1:15
Darietto
Postato originariamente da inuyasca:

Ariciao a tutti tanto per comminciare. Vi volevocomunicare che ho rinunciatto al vecchio progetto Computo 2, richiede troppo tempo, percio pensavo di lavorare a un programma di posta eletronica tanto per prendere fiato diciamo. Ma sicome non ho mai costruito niente che funzioni all'esterno del mio computer francamente non so da dove iniziare e gli esempi e le istruzioni sono poco chiare mi potreste dare qualche dritta plzz?? magari un'esempio pratico di come si scarica ancora meglio.
Grazie per la pazienza :=)))


ciao se vuoi inviare una email inserisci nella form dai componenti indy clients: IDSmtp e aggiungi da Indy Misc il componente IdMessage

dopo di che usa questo codice per inviare una email
procedure TForm1.Button1Click(Sender: TObject);
begin
IDsmtp1.Host:= 'smtp.alice.it';//in base alla connessione che usi
IDsmtp1.Port:= 25; //se hai tele 2 la porta e' la 587
IDMessagel.From.Address:= 'ciao_ciao@alice.it'; //mittente
   IDMessage1.Recipients.EMailAddresses:= 'prova@alice.it' + ',' + 'prova@alice.it'; //destinatario
   IDMessage1.Subject:= 'soggetto'; //soggetto del messaggio
   IDMessage1.Body.Text:= 'corpo del messaggio'; // corpo del messaggio
   try //prova a 
   IDsmtp1.Connect; //connettere al server
   IDsmtp1.Send(IDmessage1); mandare la mail
   IDsmtp1.Disconnect; //disconnettere dal server
   Application.MessageBox('Email spedita con successo.','Conferma' , MB_OK +  mb_iconInformation); //messaggio di successo
   except

   Application.MessageBox('Si è verificato un errore di connessione, controlla i dati inseriti!' , 'Errore' , MB_OK+MB_ICONEXCLAMATION);
   IDsmtp1.Disconnect; //Messaggio di  Errore
   end;
   
end;


non lo ho provato fammi sapere se funziona... ciao ciao
Ultima modifica effettuata da Darietto 05/01/09 1:18
aaa
05/01/09 9:26
inuyasca
^^Cavolo grazie mille non mi aspettavo fosse cosi facile la provo subito capperi ^^
aaa
05/01/09 21:58
inuyasca
Fatto ma l'esempio che mi hai dato anche se mi ha aiutato un sacco era incompleto pero ci sono riuscito mo ti mostro function inviamail(sender:tobject):tobject;
begin
try
form1.msSMTPClient1.Send;
showmessage('Inviato messaggio');
except
showmessage('Inviato non messaggio');
raise;
end;



end;

procedure TForm1.Button1Click(Sender: TObject);
begin
form1.msMessage1.Recipients.Clear;
form1.msMessage1.Recipients.AddAddress(edit5.Text,''); //destinattario
form1.msMessage1.Subject:=edit6.Text;//nome della mail
form1.msMessage1.Body:=memo1.Lines;//testo della mail
form1.msMessage1.Attachments.Clear;
inviamail(sender);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
msSMTPClient1.Host:=edit1.Text; //smtp del server
msMessage1.Sender.Address:=edit2.Text; //tuo indirizzo
msMessage1.Sender.Name:=edit3.Text;//nome server ossia il pop3
end;
end.
Pero ho dei seri problemi a gestire gli errori del server ho provarto con la funzione separata dal resto del programma inviamail(sender:tobject) + try except ma non serve a niente manda in pacca tutto il programma mi devo inventare un sistema per evitarlo ti terro informato ok :k:
aaa
05/01/09 23:18
Darietto
Per evitare di visualizzare errori puoi provare cosi:

Inserisci una statusbar nella form e inserisci nel codice una variabile di tipo string... Ti faccio un esempio:


var
Error:string;
begin
try
etc etc etc...
except 
On E: exception do begin
Error:= E.message;
Statusbar1.simpleText:= Error;
end;


Compila il progetto e provalo dall'exe non da delphi... Fammi sapere ciao
aaa