* * * *

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.
Novembre 25, 2024, 02:36:45 pm

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

65 Visitatori, 1 Utente
 

Autore Topic: invio email  (Letto 14423 volte)

bonmario

  • Hero Member
  • *****
  • Post: 1360
  • Karma: +11/-1
Re:invio email
« Risposta #15 il: Febbraio 18, 2014, 06:00:05 pm »
Grazie lo stesso !!!

Tra l'altro, se non ho interpretato male il codice che va a gestire il mime, c'è una funzione che cerca di capire in che formato arriva il testo, ma o non funziona bene, oppure non ho capito io a cosa serve !!!! (cosa più probabile ...)

Ciao, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1360
  • Karma: +11/-1
Re:invio email
« Risposta #16 il: Marzo 05, 2014, 07:40:42 am »
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

Alla fine ho scoperto qual'era il problema: l0'antivirus aziendale blocca tuti i programmi che vanno ad operare sulla porta 25, ad esclusione di un elenco impostato dai nostri sistemisti. Infatti se rinomino il mio eseguibile in "telnet.exe", funziona tutto alla perfezione !!!!

Ciao, Mario

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:invio email
« Risposta #17 il: Dicembre 12, 2022, 07:02:14 pm »
Riapro questo thread dormiente, da diversi anni... (parecchi direi)  :) ...sto cercando di inserire in un mio programma l'invio di mail,

cercando nel forum ho trovato questo -> 17 Ott 2011 - Mandare mail con Lazarus di xinyiman, apparentemente è tutto molto semplice ed intuitivo,

quindi:
- ho scaricato il programma zippato, la unit, le librerie synapse...
- ho creato una cartella in cui ho messo tutto (non quella dell'applicazione) è l'ho inserita nel percorso di ricerca per la compilazione
- i paramentri della casella di posta sono i miei (quindi funzionanti) inseriti direttamente nel codice (una cosa molto easy giusto per vedere come funziona)...
- compilo (nessun errore), eseguo (nessun errore), click sul pulsante invia e compare il messaggio "FINISHED"... ma non arriva nessuna mail, atteso anche più di mezz'ora, e nel frattempo ne ho ricevute altre

domande:

- nell'elenco delle librerie vedo riferimenti '32' tipo ssleay32..sswin32.. io ho il compilatore per W64, devo dedure che non è funzionante per questo motivo ?
- il fatto che siano in una cartella diversa dal programma, può essere il problema ?


Provato con porta 587 - SSL = false -> nessun errore  ma niente mail
Provato con porta 465 - SSL = true-> nessun errore  ma niente mail

grazie per il supporto

M
« Ultima modifica: Dicembre 12, 2022, 07:06:30 pm da giacomarko »
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

bonmario

  • Hero Member
  • *****
  • Post: 1360
  • Karma: +11/-1
Re:invio email
« Risposta #18 il: Dicembre 12, 2022, 07:52:41 pm »
Ciao,
il problema l'hai sul tuo PC di casa o su uno aziendale?
Se è su uno aziendale, dai un occhio al mio post appena prima del tuo !!!

Ciao, Mario

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:invio email
« Risposta #19 il: Dicembre 12, 2022, 10:11:35 pm »
PC di casa senza nessuna restrizione
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1403
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:invio email
« Risposta #20 il: Dicembre 12, 2022, 10:40:54 pm »
- nell'elenco delle librerie vedo riferimenti '32' tipo ssleay32..sswin32.. io ho il compilatore per W64, devo dedure che non è funzionante per questo motivo s ?
- il fatto che siano in una cartella diversa dal programma, può essere il problema ?

Quando si utilizza SSL o TLS è necessario l'uso delle due DLL che hai indicato (in generale, perchè quelle sono librerie openssl).

Esse devono essere conformi al componente usato, in particolare alla versione openssl che il componente implementa. Se usi Indy, la versione da usare è ancora la 1.02, se usi Synapse non lo sò (probabile la 1.1.0)

Le dll x32 e x64 delle versioni 1.0.2 in Windows hanno lo stesso nome (ma sono ovviamente diverse), da non sò quale versione invece i nomi delle dll variano per x32 e x64.

Le DLL devono essere presenti dove c'è l'eseguibile o in una cartella della PATH di sistema.

Le versioni openssl supportate ufficialmente sono 1.1.1 e 3.0.2 (...... sono rimasto indietro  :o ad ora sono le 3.0.7).
Altre versioni, come la 1.0.2 o la 1.1.0 sono obsolete anche se ancora universalmente usate.

Il supporto a TLS 1.3 è presente solo dalla versione 1.1.0

Ciao

« Ultima modifica: Dicembre 13, 2022, 11:23:48 am da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:invio email
« Risposta #21 il: Dicembre 13, 2022, 10:52:54 am »
Nulla,

nella cartella scaricata da scompattare c'era una sola dll, copiata nella cartella programma (insieme all'exe) non manda.
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1403
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:invio email
« Risposta #22 il: Dicembre 13, 2022, 11:12:09 am »
Il progetto "linkato" è di 11 anni fà. Da allora magari qualcosa è cambiato ....

Le librerie Synapse all'epoca usavano le openssl 0.98, ora usano le 1.1.0 (ripeto mi pare). Le DLL sono totalmente incompatibili.

Le DLL che ti servono sono la "libeay32.dll" e la "ssleay32.dll" (versionate correttamente per codice a 32 o 64 bit).

In questo link puoi trovare le risorse che ti servono: https://wiki.openssl.org/index.php/Binaries

Poi, se il codice già ti gira sei a buon punto ...

Ciao

P.S.: le DLL indicate sono per la versione 1.0.2 di Openssl. Vedi post seguente ....
« Ultima modifica: Dicembre 13, 2022, 06:00:29 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1403
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:invio email
« Risposta #23 il: Dicembre 13, 2022, 06:17:20 pm »
Aggiornamento,
per la versione openssl 1.1 le librerie sono chiamate "libcrypto-1_1-x64.dll" e "libssl-1_1-x64.dll" per le versioni a 64 bit e "libcrypto-1_1.dll" e "libssl-1_1.dll" per le versioni a 32 bit.

Le proprietà delle DLL vi mostrano che versioni sono (ad esempio 1.1.1.13 m)

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

giacomarko

  • Full Member
  • ***
  • Post: 107
  • Karma: +6/-0
Re:invio email
« Risposta #24 il: Dicembre 14, 2022, 10:52:06 am »
Situazione attuale,

scaricate nella cartella dell'eseguibile le librerie "libcrypto-1_1-x64.dll" e "libssl-1_1-x64.dll" versione 1.1.1.19 data 21/11/2022,
eseguito test invio mail: nessun risultato,

nell'archivio compresso "openssl-1.1.zip" c'era anche vc_redist.x64.exe, eseguito ed ha installato un modulo redistribuibile di C++,
eseguito test invio mail: nessun risultato,

eseguito build dell'applicazione, non aveva senso ma nel dubbio ...
eseguito test invio mail: nessun risultato,

domanda:
ma come e in che modo, il programma sa di dover utilizzare queste dll che ho scaricato... cioè come gli si comunica che ci sono?
immagino chiamate da qualche modulo compilato nel programma, ma le chiamate corrette.... sono effettivamente corrette ? (perdona il giro di parole)  :)
SO: W11
Release Lazarus: 3.0 del 2023.12.17 win32/win64
Versione FPC: 3.2.2
DB: MySQL 5.0, MSAccess

bonmario

  • Hero Member
  • *****
  • Post: 1360
  • Karma: +11/-1
Re:invio email
« Risposta #25 il: Dicembre 14, 2022, 11:25:07 am »
Ciao,
l'email la invii con SMTP di google o altro?

Se usi quello di google, potresti fare un progetto che contiene solo il codice che usi per l'invio, ed allegare il progetto zippato qui?

Sul PC di casa ho Lazarus 64 bit, sia Windows che Linux, e potrei vedere se il tuo codice funziona o no. Se funziona almeno sappiamo che il codice è corretto, ma c'è qualcosa sulla tua macchina, in caso contrario, si può dare un occhio al codice.

Ciao, Mario

bonmario

  • Hero Member
  • *****
  • Post: 1360
  • Karma: +11/-1
Re:invio email
« Risposta #26 il: Dicembre 14, 2022, 06:45:45 pm »
Ciao,
il progetto non compila: manca la unit "MySendMail"

Ciao, Mario

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1403
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:invio email
« Risposta #27 il: Dicembre 14, 2022, 10:18:01 pm »
Ne con Synapse (almeno credo visto la vetustà) ne con Indy (versione ufficiale) puoi inviare e-mail tramite Google.

Google mail necessita del protocollo di sicurezza OAuth2, e tale funzione non è implementata in questi componenti.

Riguardo all'uso delle DLL, quando usi un componente che a sua volta si appoggia a OPENSSL, tale componente chiama direttamente la libreria corretta secondo lo standard OPENSSL (1.0, 1.1, 3.0).

Sò che in Indy c'è qualcosa a livello di Trunk, ma non è ancora completo.

Prova cambiando provider (Libero, Outlook, Yahoo, AOL).

Ciao
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

quack

  • Jr. Member
  • **
  • Post: 84
  • Karma: +7/-0
Re:invio email
« Risposta #28 il: Dicembre 14, 2022, 10:48:59 pm »
L'esempio che hai postato sul mio pc funziona, ma con outlook.com, con Gmail non c'e verso.
Se ho capito bene da maggio 2022 Google ha cambiato i criteri di accesso, non basta più nome utente e password

https://support.google.com/accounts/answer/6010255?hl=it

Inoltre bisogna settare su False SSLTLS

Codice: [Seleziona]
     
     app.SetMyUser('utente@outlook.com');
     app.SetMyPassword('password');
     app.SetMyNome('nomeutente');
     app.SetMyFrom('utente@outlook.com');

     app.SetMyPorta('587');
     app.SetMySMTPHost('smtp.office365.com');
     app.SetSSLTLS(False);

Ho usato le librerie 1.0.2u che trovi qui

https://indy.fulgan.com/SSL/

ci si arriva dalla pagina

https://docwiki.embarcadero.com/RADStudio/Sydney/en/OpenSSL#32-bit_and_64-bit_Windows

Spulciano il codice del pacchetto laz_synapse ho trovato questa sezione

Codice: [Seleziona]
  
DLLSSLName: string = 'ssleay32.dll';
DLLSSLName2: string = 'libssl32.dll';
DLLUtilName: string = 'libeay32.dll';

quindi ne ho concluso che synapse funziona solo con le librerie openssl 1.0.2, visto che con il cambio di versione (1.0, 1.1, 3.0)  hanno cambiano anche i nomi delle DLL.





« Ultima modifica: Dicembre 14, 2022, 10:58:36 pm da quack »
SO: Fedora\W10
Lazarus: Trunk
FPC: Trunk\3.2.2

quack

  • Jr. Member
  • **
  • Post: 84
  • Karma: +7/-0
Re:invio email
« Risposta #29 il: Dicembre 14, 2022, 10:52:58 pm »
Per quanto riguarda l'autenticazione oauth2, c'è questa discussione

https://forum.lazarus.freepascal.org/index.php?topic=44007.0

che porta a questo esempio

https://github.com/rvk01/google-oauth2

ma non l'ho testato.
SO: Fedora\W10
Lazarus: Trunk
FPC: Trunk\3.2.2

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19192
  • Topic in totale: 2289
  • Online Today: 64
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 1
Guests: 65
Total: 66

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.