Ti riporto il codice che ho utilizzato per inviare una mail con allegato.
I componenti Indy sono dotati anche di una Guida in linea, che ho consultato per poter capire come funzionava il componente.codice:procedure TForm1.bbSendClick(Sender: TObject); var FilePath: string; Recipient: TIdEmailAddressItem; begin // SMTP setup if cbMailLogon.Checked then IndySMTP.AuthenticationType := atLogin else IndySMTP.AuthenticationType := atNone; IndySMTP.Host := edHost.Text; IndySMTP.Password := edPassword.Text; IndySMTP.Port := StrToIntDef(edPort.Text, 25); IndySMTP.Username := edUser.Text; // Message setup IndyMsg.Body.Clear; IndyMsg.Body.Add('Test'); IndyMsg.Organization := edOrganization.Text; IndyMsg.Subject := 'Simple mailer test'; IndyMsg.From.Address := edSenderAddress.Text; IndyMsg.From.Name := edSenderName.Text; Recipient := IndyMsg.Recipients.Add; Recipient.Address := edToAddress.Text; Recipient.Name := edToName.Text; FilePath := ExtractFilePath(Application.ExeName) + 'data\demo.pdf'; TIdAttachment.Create(IndyMsg.MessageParts, FilePath); IndySMTP.Connect; try IndySMTP.Send(IndyMsg); finally IndySMTP.Disconnect; end; end;
Nel codice, i dati per la spedizione del messaggio vengono presi ovviamente da controlli Edit che si trovano sul form (non posso riportare in chiaro i dati privati); il componente IndyMsg è di tipo TIdMessage e può essere inizializzato con i dati del messaggio da inviare, mentre il componente IndySMTP è di tipo TIdSMTP, che permette all'applicazione di fare da client per un server di posta SMTP allo scopo di inviare una email.
Per il significato delle singole proprietà e metodi utilizzati, ti rimando alla Guida in linea.
Ciao!![]()

Rispondi quotando