* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Maggio 16, 2024, 05:51:42 am

Inserisci il nome utente, la password e la durata della sessione.

663 Visitatori, 0 Utenti

Autore Topic: invio email  (Letto 13098 volte)

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
invio email
« il: Aprile 16, 2012, 03:05:32 pm »
ciao,
qualcuno mi sa dare qualche dritta su qualche funzione (oggetto o codice) che mi permetta di inviare una mail da un programma?

Fabio

  • Full Member
  • ***
  • Post: 106
  • Karma: +0/-0
Re:invio email
« Risposta #1 il: Aprile 16, 2012, 03:15:21 pm »
Dai un occhiata a questo componente
http://wiki.lazarus.freepascal.org/lNet

Va compilato nell'IDE per renderlo disponibile.

Hai anche un esempio poi volendo
..\lnet\examples\visual\smtp

Non posso aiutarti oltre però non l'ho provato ancora.
« Ultima modifica: Aprile 16, 2012, 03:18:57 pm da Fabio »

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:invio email
« Risposta #2 il: Aprile 16, 2012, 03:20:52 pm »
grazie, lo provo poi ti faccio sapere

ciao!!

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:invio email
« Risposta #3 il: Aprile 16, 2012, 03:26:01 pm »
Nella sezione How To si trovano già un sacco di suggerimenti. Al riguardo avevo fatto questo!

http://www.lazaruspascal.it/index.php?page=8
Ieri è passato, domani è futuro, oggi è un dono...

tiberi72

  • Full Member
  • ***
  • Post: 101
  • Karma: +0/-0
    • Pagina Personale
Re:invio email
« Risposta #4 il: Aprile 16, 2012, 03:29:16 pm »
chiedo scusa ma avevo provato a cercare solo nel forum.
faro' diverse prove.
Ancora grazie

Ciao

Microges2000

  • Global Moderator
  • Full Member
  • *****
  • Post: 130
  • Karma: +1/-0
    • Power of Nature
Re:invio email
« Risposta #5 il: Aprile 17, 2012, 08:09:34 am »
Dipende da cosa devi inviare e come...

Se vuoi inviare attach oppure non vuoi usare il gestore email istallato sul pc devi usare componenti di terze parti (per esempio Indy).
Se vuoi inviare messaggi senza attach ed utilizzare il gestore del pc basta chiamare la funzione OpenURL(messaggio : string) in questo modo:

Codice: [Seleziona]
// invio a indirizzo@pippo.it un messaggio che ha come oggetto Questo è l'oggetto
// e come testo del messaggio questo è il testo del messaggio
Var
  Messaggio : String;
Begin
   Messaggio := 'mailto:indirizzo@pippo.it?subject=Questo è l''oggetto&body=questo è il testo del messaggio';
   OpenUrl(Messaggio);
End;

tieni presente che se vuoi andare a capo (più linee) devi inserire la sequenza %0D%0A. Esempio:

Codice: [Seleziona]
Messaggio := 'Linea numero 1'+'%0D%0A'+'Linea numero 2';

facile no?


Il possibile lo abbiamo già fatto, l'impossibile lo stiamo facendo, per i miracoli ci stiamo attrezzando

bonmario

  • Hero Member
  • *****
  • Post: 1304
  • Karma: +10/-1
Re:invio email
« Risposta #6 il: Febbraio 03, 2014, 08:48:56 am »
Nella sezione How To si trovano già un sacco di suggerimenti. Al riguardo avevo fatto questo!

http://www.lazaruspascal.it/index.php?page=8

Ciao,
ho provato a seguire quello che hai scritto nell'HowTo.
Ieri, a casa su Ubuntu 64 bit funziionava tutto alla perfezione.
Oggi lo sto provando qui al lavoro su Windows XP e mi da un errore windows, perché non riesce a trovare la libreria "libeay32.dll".


Sai dove la posso trovare?

P.S. Se mi posso permettere, ho visto che nel tuo codice usi "#13#10" per mandare a capo gli errori. Questo però potrebbe creare problemi di visualizzazione in Linux. Secondo me ti conviene usare "LineEnding", in questo modo verrà usato il terminatore di riga corretto in base al sistema operativo.

Grazie in anticipo, Mario
« Ultima modifica: Febbraio 03, 2014, 01:32:10 pm da bonmario »

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:invio email
« Risposta #7 il: Febbraio 03, 2014, 01:40:02 pm »
Onestamente no, dovrai googlare un po per capirlo. Ma penso che magari la trovi nel pacchetto synapse.

Permettiti pure, ho sempre da migliorare. Grazie mille
Ieri è passato, domani è futuro, oggi è un dono...

bonmario

  • Hero Member
  • *****
  • Post: 1304
  • Karma: +10/-1
Re:invio email
« Risposta #8 il: Febbraio 03, 2014, 02:07:28 pm »
Ok, alla fine ho trovato la DLL. Adesso ho un altro problema da risolvere .... la situazione è questa:
- Ubuntu 64 bit funziona
- PC di casa con Win7 pro 64 bit funziona
- PC del lavoro con Win XP, non funziona

Credo che il problema sia dovuto al fatto che al lavoro siamo sotto proxy.
Ho provato nel tuo codice, subito sotto a
Codice: [Seleziona]
      if (MySicurezza = 2) then begin
        //SSL/TLS
        smtp.FullSSL := True;
      end;

ad aggiungere questo:
Codice: [Seleziona]
        smtp.Sock.HTTPTunnelIP:='NomeDelProxyAziendale';
        smtp.Sock.HTTPTunnelPort:='8080';

Ma non funziona ugualmente, mi esce il messaggio che utente e password sono errati.
Non so se è uno standard, ma il mio proxy aziendale funziona così:
- l'accesso avviene in automatico all'avvio del PC
- nei posti in cui serve, basta indicare il nome del proxy e la porta, non vanno indicati utente e password

Con la stessa tecnica, cioè indicando nome del proxy e porta, sempre da Lazarus e sempre con Synapse, riesco a fare il download di files dal web.


Qualche idea?

Grazie in anticipo, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1304
  • Karma: +10/-1
Re:invio email
« Risposta #9 il: Febbraio 14, 2014, 07:54:51 pm »
Alla fine, dopo aver contattato direttamente il team di Synapse, sono arrivato alla conclusione che mi devo far dare dai sistemisti della mia azienda i dati del server smtp aziendale ed usare quello.

Per xinyiman: stavo riguardando il tuo codice e vorrei permettermi di darti qualche consiglio:
- nella procedura MySendMail, all'inizio, dovresti impostare Result a False, altrimenti un eventuale test sull'esito della funzione, in caso di errori, potrebbe non essere veritiero
- nella stessa procedura, usi una variabile di nome "k". Per esperienza personale, è meglio dare alle variabili un nome di almeno 3 lettere, così se devi cercare quella variabile nel sorgente non impazzisci, cosa che rischieresti col nome di una sola lettera !!!
- La variabile Errore, secondo me potrebbe essere "trasformata" in una proprietà della tua classe, così sarebbe sempre a disposizione e non obbligherebbe a creare una variabile di tipo stringa in tutti i programmi in cui si usa la tua unit.

Ciao, Mario

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:invio email
« Risposta #10 il: Febbraio 15, 2014, 05:41:47 pm »
grazie bonmario. i consigli sono sempre ben accetti
Ieri è passato, domani è futuro, oggi è un dono...

bonmario

  • Hero Member
  • *****
  • Post: 1304
  • Karma: +10/-1
Re:invio email
« Risposta #11 il: Febbraio 18, 2014, 10:58:21 am »
Ciao,
ho un problemino ....
Allora, in un programma, sto usando la tua unit per inviare un'email, prendendo il testo da quello che l'utente digita in un TMemo.

Questo è quello che c'è nel TMemo:
Codice: [Seleziona]
per cui non è stata fatta

Questo invece è quello che c'è scritto nella mail:
Codice: [Seleziona]
per cui non Ã̈ stata fatta

Credo che il problema derivi dal fatto che i testi del programma sono UTF8 e l'email no.

Qualche consiglio?

Grazie in anticipo, Mario

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:invio email
« Risposta #12 il: Febbraio 18, 2014, 11:45:54 am »
Come copi il testo?
Se usi un buffer come ansistring possibile si rovini il testo quando lo copi nel corpo della mail.
Oppure non hai impostato che la mail sia in UTF8.
Controlla che ci sia la possibilità di inviare le mail in UTF8.

Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

bonmario

  • Hero Member
  • *****
  • Post: 1304
  • Karma: +10/-1
Re:invio email
« Risposta #13 il: Febbraio 18, 2014, 01:24:37 pm »
Il testo lo copio con "WrkMyMailObject.AddRowCorpoMail" per ogni riga della memo.
Ho provato a guardare i sorgenti e, da quel che ho capito, UTF8 è gestito solo per le email in formato HTML. Ho aggirato il problema convertendo le singole righe della TMemo con "UTF8ToSys" prima di passarle alla "AddRowCorpoMail".

Ciao, Mario

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:invio email
« Risposta #14 il: Febbraio 18, 2014, 03:52:13 pm »
Letto ora, ti avrei suggerito proprio UTF8ToSys oppure UTF8ToAnsi. Ma hai già risolto e va bene così
Ieri è passato, domani è futuro, oggi è un dono...

 

Recenti

How To

Utenti
Stats
  • Post in totale: 18818
  • Topic in totale: 2241
  • Online Today: 661
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 663
Total: 663

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.