Visualizzazione dei risultati da 1 a 9 su 9

Discussione: E-mail delphi

  1. #1

    E-mail delphi

    Ciao,
    sono alla ricerca del comando che mi consenta di spedire un e-mail con un immagine(non in allegato) cosi come si può fare con Outlook facendo inserisci/immagine.
    Sto utilizzando l'oggetto NMSMTP per l'invio dell'email(se è necessario posso anche cambiarlo).
    Il tutto in delphi6.
    Fatemi sapere, grazie.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Indy!!

    Scarica i componenti Indy dal sito Nevrona Designs.

    Si tratta di una suite costituita all'incirca da 100 componenti che implementano di tutto (POP3, SMTP, TELNET, ...), sia dal punto di vista client che dal punto di vista server.

    Te li consiglio poichè sono molto potenti e sono quelli adottati in Delphi 7 al posto del package NetMaster che stai utilizzando.

    Il componente che fa al caso tuo è IdSMTP: si tratta di un componente che permette alla tua applicazione di agire come client SMTP per collegarsi ad un server SMTP e spedire una mail con allegati nella codifica che preferisci.

    Io l'ho utilizzato per diversi motivi: invio di email di assistenza tecnica direttamente dal programma, spedizione di documenti integrata, ecc.

    Dal sito Nevrona trovi anche riferimenti esterni a siti esplicativi con istruzioni, articoli ed esempi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Grazie, ora controllo.

  4. #4
    Ciao Alka,
    ho frugato nel sito che mi hai consigliato ma non ho risolto tanto.
    Non trovo demo.
    Il componente che mi hai consigliato di usare (idSMTP) ce l'avevo già nella versione delphi6, ma non lo riesco a gestire.
    Cosa mi consigli?
    Hai qualche demo piccolissima da mostrarmi?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Un po' di codice...

    Ti riporto il codice che ho utilizzato per inviare una mail con allegato.
    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;
    I componenti Indy sono dotati anche di una Guida in linea, che ho consultato per poter capire come funzionava il componente.

    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!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Ciao Alka, ho letto ora la risposta; non ho provato il codice che mi hai madato perchè ho letto come nota iniziale che il codice serviva per mandare e-mail con allegato. Credo di riuscire a mandare allegati anche io, a me però serve mandare un immagine nella schermata iniziale, come ho scritto nel primo messaggio, praticamente devo fare come si fà con outlook (inserisci/immagine).
    Spero di essermi spiegato bene e che abbia una soluzione da darmi.
    Fammi sapere. Ciao grazie.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Se ho capito bene, devi inviare email in formato HTML contenenti immagini?

    Non ho tempo per fare ricerche approfondite, ma credo che il componente IdMessage fornisca il supporto per tutte le alternative possibili nell'invio di un messaggio.

    Attraverso la proprietà ContentType, puoi definire il tipo di contenuto del messaggio (solo testo, HTML, RTF, ecc.) mentre la proprietà MessageParts ti permette di comporre il messaggio pezzo per pezzo, inserendo elementi che andranno allegati al messaggio oppure incorporati al contenuto; da quello che si legge dalla Guida in linea, pare che sia MessageParts a gestire l'inserimento di contenuti in linea con la specificazione di un identificatore per richiamare un elemento e visualizzarlo nel testo, se necessario.

    Nell'esempio che ti ho postato, viene creato un IdAttachment, un oggetto che dispone di diverse proprietà (che trovi spiegate sulla Guida in linea) per modificare le caratteristiche dell'allegato affinchè venga incorporato o disposto assieme ad altri elementi IdText, che sono analoghi all'Attachment ma contengono parti di testo da riunire nel messaggio.

    Se il tuo scopo è quello di inviare newsletter informative (sto facendo un programma che esegue questa funzione), è sempre meglio inserire i riferimenti alle immagini del messaggio affinchè siano scaricate da un sito Web piuttosto che incorporate nel messaggio, poichè l'ultima opzione rischia di ingrandire di molto le dimensioni del messaggio stesso e renderlo meno interessante e scartabile da parte di molti recipienti.

    Prova a creare un progetto vuoto di esempio in cui inserisci e configuri in diversi modi i componenti IdSMTP e IdMessage inviando mail ad una casella a te nota, per verificare il risultato ottenuto con ogni soluzione.

    Altro non so, per il momento.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Hai centrato in pieno il discorso, il fatto che si appesantiscano troppo spero non sia determinante visto che le immagini incorporate che mando pesano circa 70kb.
    Per il resto spero bene, mi metto a fare prove, anche se ci sono da qualche giorno dietro e sto trovando difficoltà.
    Se hai novità al riguardo, scrivimi qua sul forum così dò un okkiata.
    Ciao grazie mille.

  9. #9
    Ciao,
    Alka nell'ultimo messaggio mi ha scritto che è possibile modificare proprietà del IdAttachment affinchè venga incorporato o disposto assieme ad altri elementi IdText; che proprietà devo modificare per fare ciò? devo incorporare un immagine nella mia e-mail(ma non in allegato) e non ci riesco.
    Cosa mi consigliate?
    Alka, hai trovato qualcosa?
    Fatemi sapere... grazie.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.