Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: tiberi72 - Aprile 16, 2012, 03:05:32 pm

Titolo: invio email
Inserito da: tiberi72 - 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?
Titolo: Re:invio email
Inserito da: Fabio - 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.
Titolo: Re:invio email
Inserito da: tiberi72 - Aprile 16, 2012, 03:20:52 pm
grazie, lo provo poi ti faccio sapere

ciao!!
Titolo: Re:invio email
Inserito da: xinyiman - 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
Titolo: Re:invio email
Inserito da: tiberi72 - Aprile 16, 2012, 03:29:16 pm
chiedo scusa ma avevo provato a cercare solo nel forum.
faro' diverse prove.
Ancora grazie

Ciao
Titolo: Re:invio email
Inserito da: Microges2000 - 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?


Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: xinyiman - 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
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: xinyiman - Febbraio 15, 2014, 05:41:47 pm
grazie bonmario. i consigli sono sempre ben accetti
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: Stilgar - 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
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: xinyiman - Febbraio 18, 2014, 03:52:13 pm
Letto ora, ti avrei suggerito proprio UTF8ToSys oppure UTF8ToAnsi. Ma hai già risolto e va bene così
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: giacomarko - 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
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: giacomarko - Dicembre 12, 2022, 10:11:35 pm
PC di casa senza nessuna restrizione
Titolo: Re:invio email
Inserito da: DragoRosso - 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

Titolo: Re:invio email
Inserito da: giacomarko - 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.
Titolo: Re:invio email
Inserito da: DragoRosso - 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 (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 ....
Titolo: Re:invio email
Inserito da: DragoRosso - 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
Titolo: Re:invio email
Inserito da: giacomarko - 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)  :)
Titolo: Re:invio email
Inserito da: bonmario - 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
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 14, 2022, 06:45:45 pm
Ciao,
il progetto non compila: manca la unit "MySendMail"

Ciao, Mario
Titolo: Re:invio email
Inserito da: DragoRosso - 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
Titolo: Re:invio email
Inserito da: quack - 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 (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/ (https://indy.fulgan.com/SSL/)

ci si arriva dalla pagina

https://docwiki.embarcadero.com/RADStudio/Sydney/en/OpenSSL#32-bit_and_64-bit_Windows (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.





Titolo: Re:invio email
Inserito da: quack - 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 (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.
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 15, 2022, 08:11:37 am
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.

Volendo, si può scaricare la versione "in sviluppo", che supporta già la 3.

Ciao, Mario
Titolo: Re:invio email
Inserito da: giacomarko - Dicembre 15, 2022, 09:00:33 am
@bonmario,

forse intendevi che manca la unit MyLibMail.pas, in pratica è nel pacchetto creato da xiniman nel 2014, non l'ho allegato perchè è di 2.400 kb e non me lo fa caricare, è questo:

http://www.lazaruspascal.it/index.php?page=8 (http://www.lazaruspascal.it/index.php?page=8)
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 15, 2022, 09:23:13 am
Ah, ok, grazie non me ne ero accorto. Adesso sono al lavoro, spero di ricordarmi stasera quando vado a casa di provare !
Ciao, Mario
Titolo: Re:invio email
Inserito da: giacomarko - Dicembre 15, 2022, 09:59:52 am
 :)
Titolo: Re:invio email
Inserito da: quack - Dicembre 15, 2022, 09:09:56 pm
Aggiornamento:

Anche con Gmail è possibile inviare mail con app di terze parti senza la necessita dell'autentificazione OAuth2.
Per far ciò però bisogna abilitare sul proprio account la verifica in due passaggi, dopodiché è possibile generare una password dedicata all'app che si vuole abilitare.
Codice: [Seleziona]
     
   app.SetMyUser('utente@gmail.com');
   app.SetMyPassword('password per app');
   app.SetMyNome('nome utente');
   app.SetMyFrom('utente@gmail.com');

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

Potrebbe essere una soluzione di compromesso.

https://support.google.com/accounts/answer/185833

Provato e funziona.

Saluti

Titolo: Re:invio email
Inserito da: bonmario - Dicembre 16, 2022, 08:12:50 am
@bonmario,

forse intendevi che manca la unit MyLibMail.pas, in pratica è nel pacchetto creato da xiniman nel 2014, non l'ho allegato perchè è di 2.400 kb e non me lo fa caricare, è questo:

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

Ciao,
ho provato il tuo codice, ma non mi funziona perché l'utente che uso ha delle restrizioni. Se riesco, nel weekend lo sistemo e ci riprovo.

Volevo in ogni caso, suggerire delle modifiche al codice che usi, per aiutarti a capire il problema:
- quando componi la variabile errore, oltre a "smtp.EnhCodeString", concatena anche "smtp.ResultString"
- l'istruzione "if smtp.AuthDone then begin" non ha la relativa "else". A me va in errore lì, e non segnalava niente !

Ciao, Mario
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 16, 2022, 08:14:03 am
Aggiornamento:

Anche con Gmail è possibile inviare mail con app di terze parti senza la necessita dell'autentificazione OAuth2.
Per far ciò però bisogna abilitare sul proprio account la verifica in due passaggi, dopodiché è possibile generare una password dedicata all'app che si vuole abilitare.
Codice: [Seleziona]
     
   app.SetMyUser('utente@gmail.com');
   app.SetMyPassword('password per app');
   app.SetMyNome('nome utente');
   app.SetMyFrom('utente@gmail.com');

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

Potrebbe essere una soluzione di compromesso.

https://support.google.com/accounts/answer/185833

Provato e funziona.

Saluti

Ottimo, grazie, come scrivevo prima, il mio utente ha qualche problema con le autorizzazioni, probabilmente dipende proprio da quello.
Nel weekend, cerco di sistemare !

Ciao, Mario
Titolo: [RISOLTO]: invio email
Inserito da: giacomarko - Dicembre 16, 2022, 08:21:12 am
Grazie quack !!

con il tuo suggerimento del post Dicembre 15, 2022, 09:09:56 pm, funziona perfettamente !!

m
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 16, 2022, 06:37:14 pm
Aggiornamento:

Anche con Gmail è possibile inviare mail con app di terze parti senza la necessita dell'autentificazione OAuth2.
Per far ciò però bisogna abilitare sul proprio account la verifica in due passaggi, dopodiché è possibile generare una password dedicata all'app che si vuole abilitare.
Codice: [Seleziona]
     
   app.SetMyUser('utente@gmail.com');
   app.SetMyPassword('password per app');
   app.SetMyNome('nome utente');
   app.SetMyFrom('utente@gmail.com');

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

Potrebbe essere una soluzione di compromesso.

https://support.google.com/accounts/answer/185833

Provato e funziona.

Saluti

Scusa, ma non sto capendo come funziona la cosa ...

Ho inserito il nome del mio programma (senza .exe finale) e dato l'ok.
Mi esce questo:
Citazione
Modalità di utilizzo
Visualizza le impostazioni del tuo Account Google nell'applicazione o sul dispositivo che desideri configurare. Sostituisci la tua password con la password di 16 caratteri visualizzata sopra.
Come la tua password normale, questa password per l'app concede accesso completo al tuo Account Google. Non dovrai memorizzarla, quindi non annotarla e non comunicarla a nessuno.

Credo che sia un messaggio standard, indipendente dal tipo di dispositivo scelto.
A me basta inserire la password che mi ha dato al posto di quella del mio account di Google, o sbaglio?

Grazie, Mario
Titolo: Re:invio email
Inserito da: quack - Dicembre 16, 2022, 06:58:50 pm
Non c'e da inserire Non ho inserito nessun nome del programma.

Questi sono i passaggi:

- Nella schermata Sicurezza del tuo account (Allegato 1) clicca su Password per le app.
- Poi (Allegato 2) seleziona la tipologia di app che vuoi abilitare, il tipo di dispositivo e clicca su Genera.
- Infine (Allegato 3), copia la passwora a 16 cifre generata che comparirà e incollala nel suo codice.

Quella generata sarà la password che abilita la tua app.

EDIT:
ho riletto meglio il tuo post, forse invece di Posta hai scelto Altra per questo ti ha chiesto di inserire il nome dell'app.

Citazione
A me basta inserire la password che mi ha dato al posto di quella del mio account di Google, o sbaglio?

Si, corretto. Quella sarà la password per la tua app.


Titolo: Re:invio email
Inserito da: bonmario - Dicembre 16, 2022, 08:02:44 pm
Hai ragione, mi sono dimenticato un pezzo ...
Io ho un unico programma con cui invio le email in automatico, e gira sia su Windows che su Linux.
Siccome tra le scelte c'era Windows e non Linux, mi è venuto il dubbio.

Stasera non riesco, ma probabilmente domani riuscirò a fare qualche prova.
L'idea, a questo punto, è di farne 2:
- una per Windows
- l'altra impostando "Linux" su "Nome personalizzato"

Sperando che funzionino tutte e 2 !!!

Grazie, Mario
Titolo: Re:invio email
Inserito da: quack - Dicembre 17, 2022, 12:08:06 pm
@bonmario

Ti posso anticipare che il codice funziona anche su Debian in VirtualBox utilizzando la stessa password usata in precedenza con Windows.
Non vorrei però che la virtualizzazione possa dare risultati differenti rispetto ad una installazione classica.

Inoltre non essendo molto pratico di Linux, nel cercare di scaricare le librerie openssl ho letto
che dal 2020 la versione 1.0.2 non è di fatto più aggiornata

https://www.openssl.org/news/vulnerabilities-1.0.2.html

quindi per il test ho usato la versione "trunk" di synapse che,
come avevi suggerito, supporta anche le librerie 1.1 e 3.0.

https://sourceforge.net/p/synalist/code/HEAD/tree/

Segnalo che per poter utilizzare le versioni più aggiornate delle librerie openssl
nella sezione uses della unit MyLibMail bisogna andare a sostiturire la unit
Codice: [Seleziona]
ssl_openssl
con la unit
Codice: [Seleziona]
ssl_openssl11
o con la unit
Codice: [Seleziona]
ssl_openssl3
in base alla versione della libreria installata. Non so se c'è un modo più inteligente per gestire la cosa.

Ciao
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 18, 2022, 07:39:20 am
Ok, grazie.
Io non sono ancora riuscito a trovare il tempo per provare.
In ogni caso, l'idea è quella di cominciare a fare il lavoro su Windows e, una volta che funziona l', vedere se la stessa password viene accettata anche su Linux.

Grazie ancora per l'aiuto !
Titolo: Re:invio email
Inserito da: giacomarko - Dicembre 18, 2022, 08:29:32 am
In teoria, se anche su Linux usi lo stesso account di Google con GMail, non dovrebbero esserci problemi.
Titolo: Re:invio email
Inserito da: bonmario - Dicembre 18, 2022, 11:13:07 am
Ciao,
a parte il fatto che ho perso più di mezz'ora come uno scemo, perché l'invio non dava errori, ma l'email non arrivava, per poi scoprire che finiva nello spam, per il resto, confermo che funziona sia su Windows che su Linux con la stessa password.

Grazie e tutti !!!