Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JvMail e System Error 87

46 views
Skip to first unread message

Luigis

unread,
Oct 18, 2022, 6:30:57 AM10/18/22
to
Invio una email utilizzando il componente JvMail e con un utente che ha
installato windows 10 da poco viene fuori l'errore in oggetto. Tutti gli
altri utentei windows 10, me compreso, non hanno il problema.

Non riesco a riprodurre il problema nel mio pc di sviluppo :( L'unica
cosa che sono riuscito a rilevare è che il software sembra andare in
errore alla chiamata del metodo JvMail.SendMail perché nell'email allego
un file che creo al volo ed il file me lo trovo al posto giusto.

In rete ho trovato vari suggerimenti, compreso lanciare il file
"fixmapi.exe" presente nella directory "System32" di Windows ma nulla.

Il software della posta: Thunderbird sembra funzionare correttamente
compreso l'eventuale click destro su un file e selezionando la voce del
menu contestuale "invia a destinatario posta".

Qualcuno si è trovato nella stessa situazione ed ha risolto?

Come?

Eventuali suggerimenti?

Grazie.

Daniele

unread,
Oct 18, 2022, 9:06:33 AM10/18/22
to
Ciao,
non hai detto la versione di delphi .............. e cosa vuol dire
system error 87.
Per le piu recenti (10.4 (non sono certo) e 11) sono inclusi i
componenti della ipworks che, secondo me, potrebbero essere i migliori
in giro, non richiedono dll e cose strane, tutto delphi (commerciali, un
po, tanto, costose).
Nel caso hai versioni precedenti (molto datate) ti conviene restare
sulle indy (che ho dovuto lasciare quando ho iniziato ad usare imap
anziche' pop3).
Controlla se la libreria si appoggia su questi due file ssleay32.dll e
libeay32.dll, DEVONO essere della stessa versione e devono essere nella
directory principale del programma (dove c'e' l'exe).

Nel caso il problema sia un altro e riesci a risolvere .... condividi la
soluzione !!!

Ciao
Daniele


Luigis

unread,
Oct 18, 2022, 10:57:22 AM10/18/22
to
Il 18/10/2022 15:06, Daniele ha scritto:
> non hai detto la versione di delphi

Delphi 2010 Prof.

.............. e cosa vuol dire
> system error 87.

Sembra un generico errore di windows relativo ai parametri (?).

> Nel caso hai versioni precedenti (molto datate) ti conviene restare
> sulle indy (che ho dovuto lasciare quando ho iniziato ad usare imap
> anziche' pop3).

No indy

> Controlla se la libreria si appoggia su questi due file ssleay32.dll e
> libeay32.dll, DEVONO essere della stessa versione e devono essere nella
> directory principale del programma (dove c'e' l'exe).
>
Si appoggia al server mapi di default del pc dove viene eseguita
l'applicazione.

L'applicazione sta girando senza problemi su una trentina di PC tra cui
windows 10 sia Home che Pro e windows 2008 server tranne che su un PC
windows 10 installato da poco :(

Grazie.

Alberto Salvati

unread,
Oct 19, 2022, 3:12:46 AM10/19/22
to

> Per le piu recenti (10.4 (non sono certo) e 11) sono inclusi i
> componenti della ipworks

Dove li vedi, sti componenti ipworks...?
Cosa cerchi nella palette?
Mi elenchi per favore i componenti ipworks che ti trovi?



> Nel caso hai versioni precedenti (molto datate) ti conviene restare
> sulle indy (che ho dovuto lasciare quando ho iniziato ad usare imap
> anziche' pop3).

Perchè hai dovuto mollarli? Non capisco...

A.

Alberto Salvati

unread,
Oct 19, 2022, 3:18:29 AM10/19/22
to
On Tuesday, October 18, 2022 at 12:30:57 PM UTC+2, Luigis wrote:
> Invio una email utilizzando il componente JvMail

Intanto, ti suggerisco di rimuovere progressivamente i componenti Jedi dai tuoi progetti.
Indy è funziona, è standard ed è usata in modo massiccio dalla (piccolissima, oramai...) community delphi a livello mondiale.

> installato windows 10 da poco viene fuori l'errore in oggetto. Tutti gli
> altri utentei windows 10, me compreso, non hanno il problema.

L'utente esegue la tua applicazione con i diritti di Admin oppure no?


> Non riesco a riprodurre il problema nel mio pc di sviluppo :( L'unica
> cosa che sono riuscito a rilevare è che il software sembra andare in
> errore alla chiamata del metodo JvMail.SendMail perché nell'email allego
> un file che creo al volo ed il file me lo trovo al posto giusto.

Hai controllato se l'utente ha qualche segnalazione nel registro eventi di windows in concomitanza con il tentativo di invio della mail?


> Il software della posta: Thunderbird sembra funzionare correttamente
> compreso l'eventuale click destro su un file e selezionando la voce del
> menu contestuale "invia a destinatario posta".

Questa cosa è rilevante fino ad un certo punto.
Ovviamente (ma non per tutti...) alla fin fine tutti usano MAPI, ma passando da vie diverse.
Certo thuderbird non usa JvMail...

A.

Alberto Salvati

unread,
Oct 19, 2022, 3:47:44 AM10/19/22
to
Ho fatto qualche ricerca più mirata e ho trovato questo:

https://www.minitool.com/backup-tips/dism-error-87.html

A.

Alberto Salvati

unread,
Oct 19, 2022, 4:57:37 AM10/19/22
to

Daniele

unread,
Oct 20, 2022, 2:29:55 AM10/20/22
to
Ciao Alberto,

Il 19/10/2022 09:12, Alberto Salvati ha scritto:

>
>> Per le piu recenti (10.4 (non sono certo) e 11) sono inclusi i
>> componenti della ipworks
>
> Dove li vedi, sti componenti ipworks...?
> Cosa cerchi nella palette?
> Mi elenchi per favore i componenti ipworks che ti trovi?
Se non ricordo male sono disponibile, come libreria, nel GetIt inserendo
(come parola chiave) IP. Nella lista si trova IP Works 2020.
E' la sola libraria per mandare e ricevere email (almeno io uso solo
quei componenti: ipImap, ipHTML, ipSMTP .... piu' molti altri).


>
>> Nel caso hai versioni precedenti (molto datate) ti conviene restare
>> sulle indy (che ho dovuto lasciare quando ho iniziato ad usare imap
>> anziche' pop3).
>
> Perchè hai dovuto mollarli? Non capisco....
Per quanto riguarda POP3 va tutto bene con TLS/SSL ma quando devo
utilizzare IMAP con Indy escono (per meglio dire ... uscivano) strani
errori sull'autenticazione. In base ai vari settaggi dei componenti
l'errore meno serio (se cosi' si ptio' dire) era "Time Out" nella fase
di autenticazione. Insomma per diversi e non noti problemi non si
collegava mai al server; Server di posta yahoo. Situazione risolta con
IP Works.
Ho segnalato questo problema nel forum di indy e, come risposta, mi
hanno detto che sulle loro macchine non hanno problemi con yahoo,
google, microsoft ecc... e quindi il miei errori (indicati) a loro non
uscivano.
Usando IP Works per MAPI, piano piano ho sostituito indy.

Ciao

Daniele

Luigis

unread,
Oct 20, 2022, 5:11:51 AM10/20/22
to
Il 19/10/2022 09:18, Alberto Salvati ha scritto:
>
> L'utente esegue la tua applicazione con i diritti di Admin oppure no?
>
Nello specifico caso l'utente con problemi ha diritti di admin ma
l'applicazione esegue anche senza diritti Admin e tutti gli altri non
hanno il problema.

>
> Hai controllato se l'utente ha qualche segnalazione nel registro eventi di windows in concomitanza con il tentativo di invio della mail?
>
Ho appena provato il pc incriminato e nei registri di windows:
- Applicazione = nulla;
- Security = nulla;
- Sistema = nulla *

* Quando viene segnalato il "System error 87" l'applicazione si trova
con una finestra aperta:

1) Chiudendo questa finestra viene restituito nuovamente lo stesso
errore ma l'applicazione non esegue nulla a parte chiudere il
collegamento con il database firebird con regolare eventuale rollback
della transazione aperta.
2) Chiudendo l'applicazione viene ancora segnalato un errore generico
senza un codice specifico e l'applicazione risulta ancora attiva sul
task manager e bisogna terminarla dal task manager.
3) Negli eventi di Sistema viene segnalato nell'ora della chiusura
anomala dell'applicazione questa chiusura anomala :(

>
>> Il software della posta: Thunderbird sembra funzionare correttamente
>> compreso l'eventuale click destro su un file e selezionando la voce del
>> menu contestuale "invia a destinatario posta".
>
> Questa cosa è rilevante fino ad un certo punto.
> Ovviamente (ma non per tutti...) alla fin fine tutti usano MAPI, ma passando da vie diverse.
> Certo thuderbird non usa JvMail...
>

Utilizzando JvMail, al momento del JvMail.SendMail viene creata la form
che il server mapi installato nel sistema crea alla richiesta di una
nuova email.

Facevo riferimento a TB per segnalare che l'eventuale richiesta di
creazione di una nuova email funziona correttamente, anche da filesystem
dal menu contestuale "invia a destinatario posta".

Grazie.

Alberto Salvati

unread,
Oct 20, 2022, 5:37:05 AM10/20/22
to
Puoi postare il codice?

A.

Luigis

unread,
Oct 20, 2022, 6:04:48 AM10/20/22
to
Il 20/10/2022 11:37, Alberto Salvati ha scritto:
> Puoi postare il codice?
>
Certo: Viene creato un file .zip della fattura elettronica da allegare
all'email, poi viene creata l'email e spedita:

procedure TdmGDocumenti.EsportaFEEmesse;
var
dlgEsportaFEEmesse: TdlgEsportaFEEmesse;
XmlFile,
ZipFile: TFileName;
Xml: TStrings;
begin
XmlFile := IncludeTrailingBackslash(GetWindowsTempFolder) +
' - ' + roFEEsportaNUMERO.AsString + '.xml';

Xml.Clear;
Xml.Text := roFEEsportaXML.AsString;
Xml.SaveToFile(XmlFile);


AbZipper1.AddFiles(XmlFile, 0);
AbZipper1.Save;
DeleteFile(XmlFile);

AbZipper1.CloseArchive;
if (FileExists(ZipFile) and (FileSize(ZipFile) > 0)) then
begin
jvmlMail.Clear;
jvmlMail.Subject := 'Invio Fattura Elettronica ' +
roFEEsportaNUMERO.AsString;
jvmlMail.Body.Add(BodyText);
jvmlMail.Attachment.Add(zipFile);
jvmlMail.SendMail;

DeleteFile(ZipFile);
end;
end;

Ritengo che il problema si presenti alla chiamata di jvmlMail.SendMail
perché il file .zip creato al volo nella cartella "TEMP" è presente.

In ogni caso lo stesso codice funziona su tutti i circa 30 PC che
utilizzano l'applicazione di mia conoscenza e su altri che non conosco
perché l'applicazione è rilasciata come free per emettere le fatture
elettroniche e trasmetterle al s.d.i. tranne su questo PC che ho già
verificato avere lo stesso s.o. Windows 10 pro versione 21H2 e stessa
build 19044.2130 ed pack esperienza n. 120.2212.4180.0 del mio pc di
sviluppo...

Grazie.

Alberto Salvati

unread,
Oct 20, 2022, 6:23:59 AM10/20/22
to
https://www.delphipraxis.net/194792-jvcl-tjvmail.html

E' in tedesco ma si intuisce il significato.
Fai il check sul tuo pc e vedi come è messa la chiave.

A.

Luigis

unread,
Oct 20, 2022, 7:04:05 AM10/20/22
to
Nel mio PC di sviluppo questa chiave non c'è :(

Domani provo sull'altro PC che, al momento, non è disponibile.

Grazie.

Luigis

unread,
Oct 21, 2022, 4:21:46 AM10/21/22
to
Il 20/10/2022 13:04, Luigis ha scritto:
>
> Domani provo sull'altro PC che, al momento, non è disponibile.
>

Niente da fare, sempre lo stesso errore :(

Grazie.

Alberto Salvati

unread,
Oct 24, 2022, 2:07:21 AM10/24/22
to
A questo punto io proverei a usare un altro componente.
Crea un progettino a parte, ci butti dentro un componente pop3 e/o imap di Indy, provi a fare la stessa cosa e vedi cosa succede.

A.

Luigis

unread,
Oct 24, 2022, 3:25:35 AM10/24/22
to
Il 24/10/2022 08:07, Alberto Salvati ha scritto:
> A questo punto io proverei a usare un altro componente.
> Crea un progettino a parte, ci butti dentro un componente pop3 e/o imap di Indy, provi a fare la stessa cosa e vedi cosa succede.
>

Con indy sul pc incriminato l'invio della posta funziona però mi sarebbe
piaciuto sapere perché con JvMail no mentre su tutti gli altri pc si.

Grazie.

paolocarfi

unread,
Oct 24, 2022, 5:11:10 AM10/24/22
to
Io farei cosi:

procedure TdmGDocumenti.EsportaFEEmesse;
var
errore: boolean; //new
dlgEsportaFEEmesse: TdlgEsportaFEEmesse;
XmlFile,ZipFile: TFileName;
Xml: TStrings;
begin
XmlFile := IncludeTrailingBackslash(GetWindowsTempFolder) +
' - ' + roFEEsportaNUMERO.AsString + '.xml';

Xml.Clear;
Xml.Text := roFEEsportaXML.AsString;
Xml.SaveToFile(XmlFile);


AbZipper1.AddFiles(XmlFile, 0);
AbZipper1.Save;
DeleteFile(XmlFile);
errore := false; //new
AbZipper1.CloseArchive;
if (FileExists(ZipFile) and (FileSize(ZipFile) > 0)) then
begin
try
jvmlMail.Clear;
jvmlMail.Subject := 'Invio Fattura Elettronica ' +
roFEEsportaNUMERO.AsString;
jvmlMail.Body.Add(BodyText);
jvmlMail.Attachment.Add(zipFile);
jvmlMail.SendMail;
except
errore := true;
end;
if errore then
begin
latuafunzione indy
end;
DeleteFile(ZipFile);
end;
end;

Luigis

unread,
Oct 24, 2022, 11:37:32 AM10/24/22
to
Il 21/10/2022 10:22, Luigis ha scritto:
>
> Niente da fare, sempre lo stesso errore :(
>

Mi correggo, la soluzione funziona solo che per gli ambienti 64 bit e
col software 64 bit la chiave del registro da aggiornare è questa:

HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows Messaging Subsystem

Inserendo il valore stringa "MAPI" = "1"

Non si finisce mai di imparare ;)

Grazie.
0 new messages