PDA

Visualizza la versione completa : [DELPHI] Invio email a indirizzi presenti in TListBox


camaleonteplus
13-03-2009, 03:59
questo Ŕ il codice che sto usando:

MailMessage.From.Address := Da.Text;
MailMessage.From.Name := Nome.Text;
MailMessage.Recipients.EMailAddresses :=
A.Text;
MailMessage.CCList.EMailAddresses := CC.Text;
MailMessage.BccList.EMailAddresses := Ccn.Text;
MailMessage.Subject := Oggetto.Text;
MailMessage.Body.Text := Messaggio.Text;
if FileExists(Allegato.Text) then
TIdAttachment.Create(MailMessage.MessageParts,
Allegato.Text);

io vorrei da un TlistBox inviare la posta ho provato ma non ci sono riuscito, come posso fare?

123delphi321
13-03-2009, 07:47
cosa significa vuoi inviare da una TlistBox?????

forse intendi che in una tlistbox hai n indirizzi a cui inviare?

se e' cosi io lo farei con un ciclo 'for'



procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to ListBox1.Count-1 do
begin

ShowMessage(ListBox1.Items[i]);
....tuo codice per inviare email


end;
end;


ps.: cerca sempre di postare quanti piu' dettagli possibile riguardo il tuo problema
quando posti il codice inseriscilo tra i tag code e /code
ti suggerisco un buon sito dal quale ho tratto molte conoscenze di base http://www.delphibasics.co.uk/

ciao

camaleonteplus
13-03-2009, 07:57
Ho una lista di contatti tipo:
lello@libero.it
pippo@libero.it
franco@live.it
e vorrei per ogn'uno inviare una email!

123delphi321
13-03-2009, 08:00
e allora puoi risolvere come meglio credi di, o lo fai con il codice che giÓ ti ho postato, o altrimenti potresti catturare tutti gli indirizzi email ed inserirli nella stringa cc o ccn.

camaleonteplus
13-03-2009, 08:03
con il codice cicli ne ho fatto un uso diverso da questo, adesso vorrei sapere come posso caturare tutti i contatti e metterli in CCn?

123delphi321
13-03-2009, 08:07
ok, capito.... ti Ri-posto il codice



var i:integer;
begin
ccn.text:='';
for i:=0 to ListBox1.Count-1 do
begin
// ShowMessage(ListBox1.Items[i]);
ccn.text:=ccn.text+' '+ListBox1.Items[i];
end;
end;


ti piace cosi'?

:ciauz:

camaleonteplus
13-03-2009, 08:32
nella compilazione non mi da errori
ho inserito i contatti di prova per l'invio
ho premuto invio
mi da questo errore: list index out of bounds (0)
ho notato che quando premo invio si svuota la lista.

123delphi321
13-03-2009, 08:47
posta il codice

camaleonteplus
13-03-2009, 08:50
var
I: Integer;
begin
Lista.Items.Clear;
for I := 0 to StrToInt(Num.Text)-1 do
begin
//visualizza IP
begin
//setup SMTP
SMTP.Host := Server.Text;
SMTP.Port := 25;
//Camuffare il programma
SMTP.MailAgent := Agent.Text;
//setup mail message
MailMessage.From.Address := Da.Text;
MailMessage.From.Name := Nome.Text;
MailMessage.Recipients.EMailAddresses :=
A.Text + ',' + CC.Text;
MailMessage.CCList.EMailAddresses := CC.Text;
MailMessage.BccList.EMailAddresses := Ccn.Text;
MailMessage.Subject := Oggetto.Text;
MailMessage.Body.Text := Messaggio.Text;
if FileExists(Allegato.Text) then
TIdAttachment.Create(MailMessage.MessageParts,
Allegato.Text);
//send mail
try
try
SMTP.Connect(3000);
SMTP.Send(MailMessage);
except on E:Exception do
Messaggio.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then
SMTP.Disconnect;

123delphi321
13-03-2009, 08:52
il codice lo devi postare tra i tag code e /code altrimenti si capisce poco...

e poi posta il codice completo ad occhio e croce mancano un paio di end.... o ci sono troppi begin

Loading