Newsgroup: it.comp.lang.visual-basic
Titolo: VB 6 + VBsendMail

Per anni ho usato il componente aggiuntivo VBsendMail in una mia
applicazione ed ha sempre funzionato ottimamente.
Purtroppo da alcune settimane la procedura va in errore :
TimeOut occurred : The SMTP Host did not respond to the request
Le ho provate di tutte dall'aumentare il ConnectTimeout fino a cercare
la soluzione su google ma non riesco a venirne fuori.
La cosa "simpatica" è che se metto a design time un break point
sull'istruzione poSendMail.send , quando il codice si ferma lì tolgo
il break point, mando avanti la procedura (F5) tutto funziona
perfettamente e mi vengono spedite le "n" mail che la procedura trova
da mandare. Escludo quindi ogni problema di autenticazione.
Non so se è una coincedenza ma per completezza specifico che ho avuto
l'impressione che il malfunzionamento in questione sia iniziato dopo
che in azienda è stato cambiato il server di posta.
ogni suggerimento è apprezzato.

 ogni suggerimento è apprezzato.
Controlla o fai controllare il log del server, da quello dovresti capire
dov'è il problema. Dalla descrizione è possibile che sia n problema
di tempistiche. E... *per caso* il nuovo server è un Exchange ? :-)
Bye, G. 

 ha scritto nel messaggio 
news:55809dc1-f4ea-4419...@e39g2000hsf.googlegroups.com...
Per anni ho usato il componente aggiuntivo VBsendMail in una mia
applicazione ed ha sempre funzionato ottimamente.
Purtroppo da alcune settimane la procedura va in errore :
TimeOut occurred : The SMTP Host did not respond to the request
.....
VB6 invoca il send e poi allegramente continua a fare il suo lavoro che gli 
hai detto di fare!
Casomai invia qualche altro comando al server
Mentro se lo stoppi.....
lui ha tempo di processare la tua richiesta..e. quando lo fai ripartire ha 
"voglia" di fare altro!
Io non sono esperto di smtp....però mi dicevano che adesso i server se è 
tanta posta in uscita ti bannano come spammatore....
Oppure...ipotizzo....
gli dici di mandare 100 Email......lui non "ia fà"...e ti va in errore 
(casomai è configurato male ...ho hanno messo un "bestio" su un pc troppo 
piccolo..o con poca banda...o filtrato...o che ne so!)
Prova a tracciare il programma...non fargli fare altro finche non ti 
risponde che ha inviato tutto....
poi....se il problema non è qui....prova a diminuire il numero di email da 
inviare: ti fa questo difetto anche se devi inviare UNA email???

Innanzi tutto grazie per le risposte...
Non hanno messo exchange in azienda ma un sistema basato su
piattaforma linux e l'errore lo da sia per 1 che per 100 mail anche
perchè lo da subito al primo tentativo di invio e quindi alla 1a mail
delle "n" da mandare dove "n" naturalmente è >= 1. Mentre se va la
prima (con il giochetto del break point sulla .send poi vanno tutte
spedite senza intoppi).
Ho scoperto comunque che l'incriminato (semmai avessimo ancora il
dubbio)  è il controllo mswinsck.ocx sul quale la VbSendMail si basa.
Nello specifico ho notato che la procedura quando funziona, ha la
proprietà "state" a 7 (sckConnected) mentre quando non funziona rimane
in stato di sckConnecting (6) fin quando e giustamente dopo un tempo x
va in time out.  Ho provato anche ad aumentare il tempo di timeout
addirittura a qualche minuto (!!!!!!) ma il controllo rimane sempre in
stato 6 (sckConnecting).
Adesso resta da capire perchè  e come risolvere questo "piccolo"
dettaglio.

 dubbio)  č il controllo mswinsck.ocx sul quale la VbSendMail si basa.
Controlla la versione ed eventualmente aggiornalo.
http://support.microsoft.com/dllhelp/
 (sito base)
Ricerca fatta:
http://support.microsoft.com/dllhelp/?dlltype=file&l=55&alpha=mswinsck.ocx&S=1&x=14&y=5
L'ultimo dovrebbe essere il 6.1.97.82, fa parte del service pack
6 di VB Studio. Lo dovresti trovare anche "sciolto" sul sito MS,
in .CAB, da qualche parte qui: 
http://activex.microsoft.com/
.
Bye, G. 

 in .CAB, da qualche parte qui: 
http://activex.microsoft.com/
.
P.S.: se non lo trovi chiedimelo :-).
Bye, G. 

Sarà il caldo.. sarà l'acqua... sarà il caffè... vabbè !!!! Trovato
l'arcano... ma sono sicuro che per un certo periodo la procedura ha
funzionato ugualmente... salvo che mi smentiate...
mi spiego sperando che qualcuno poi faccia capire meglio anche me :
la mia procedura funziona(va) così :
Legge dal gestionale i nuovi ordini di produzione emessi, formatta
opportunamente un foglio di excel (uno per ogni ordine) poi spara
questi fogli per e-mail ai vari responsabili di produzione. Ok...
La parte demandata alla spedizione delle mail (tra l'altro copiata di
sana pianta dall'esempio fornito con la VbSendMail) l'avevo messa in
una sub di un modulo bas (prima differenza : nell'esempio è una sub
della form principale)
Seconda differenza : nell'esempio fornito lo statement :
Set poSendMail = New clsSendMail
si trova nella form load ( io l'avevo messo come prima istruzione
della sub nel .bas)  e la :
Set poSendMail = Nothing
nell'esempio si trova nella form unload io l'ho messa alla fine della
sub nel .bas
insomma apportate queste modifiche le mail partono che è un piacere ma
io sinceramente non ho capito perchè di questo comportamento per me
strano ... ho bisogno di ferie ???? Si quasi ci siamo....
Ciao a tutti e ... illuminatemi !!!!