Newsgroup: it.comp.appl.access
Titolo: Inviare e-mail con MSAccess utilizzando il winsock

Utilizzo da tempo con piena soddisfazione il codice disponibile nel
sito comune, adattato alle mie esigenze di invio automatico di e-mail
con allegato.
Recentemente il sistema ha preso a funzionare (leggi inviare
pacchetti) con una lentezza esasperante, precedentemente sconosciuta.
Poiché contestualmente ho avuto problemi con il PC, non so se sia un
problema mio (ma capirei se l'applicativo non funzionasse più, mentre
funziona a mezzo servizio) o qualche altra cosa che sfugge alle mie
possibilità di comprensione.
Ho provato a installare nuovamente l'OCX, senza risultato.
Idea di dove possa guardare?!!?
Grazie
Umberto

 ha scritto nel messaggio 
news:f2212aa2.0411...@posting.google.com...

Se non vado errato il metodo che utilizza il winsock fa un parsing bit dopo 
bit dell'allegato e poi lo invia. Dunque allegati molto grossi (più di mezzo 
mega) o l'antivirus possono rallentare l'invio.
Facci sapere.
Ciao, Carlo 

 ha scritto nel
messaggio news:Kp2rd.433585$35.19...@news4.tin.it...

Confermo, ma non solo, allegati che superano il MEGA non passano.
In ogni caso dipende molto dalla dimensione del Buffer che solitamente
è di 4096byte.
Se si tenta di riempirlo quando non è ancora vuoto si accumula coda
e quando la coda supera il Buffer........hai voglia....!
Per ovviare al problema dell'allegato di dimensioni grosse servirebbe
inserire un controllo dei ByteRimanenti dal Buffer.
Questo valore può essere reso Public dall'Evento Wsk_SendProgress
che restituisce proprio bytesRemaining, e qualora superi
4096 occorre inserire un TimeDelay.
Avevo iniziato a dargli un'occhiata, ma no l'ho nè testata nè ultimata, vi
allego
in ogni caso quanto è nato dalle mie considerazioni.
Il Ritardo va inserito ad ogni iterazione dell'elenco allegati, ora non sò
come
si sia gestito il Ciclo di Invio allegati, ma il protocollo Mime di SMTP
prevede che ogni
allegato debba avere la Formattazione adeguata, quindi andrà inserito in un
For..Next
nel quale ogni allegato viene decodificato in Base64 per poi essere spedito.
Questa variabile è Public o Private a seconda di dove hai WinSock
Private plMessageTimeOut        As Long           ' timeout value for
sending a message
Private plBytesRemaining        As Long             ' bytes remaining to be
sent in sock send buffer
Private Sub Wsk_SendProgress(ByVal bytesSent As Long, ByVal bytesRemaining
As Long)
    plBytesRemaining =bytesRemaining
End Sub
'QUESTO CODICE va inserito appena dopo il SendData dell'allegato...!
  Dim fStart              As Single
  Dim fTimeOut            As Single
  Dim lSendBuffSize       As Long
            Do While plBytesRemaining > 4096
                fStart = Timer
                If fStart + plMessageTimeOut < 86400 Then
                    fTimeOut = fStart + plMessageTimeOut
                  Else
                    fTimeOut = (fStart - 86400) + plMessageTimeOut
                End If
                lSendBuffSize = plBytesRemaining
                Do Until lSendBuffSize <> plBytesRemaining
                    If plBytesRemaining < 4096 Then Exit Do
                    If Timer >= fTimeOut Then
                        Timeout
                        Exit Sub
                    End If
                    Sleep (10)
                    DoEvents
                Loop
            Loop
Se ottenete qualche risultato prima di me sarei felice di essere informato.
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

...

Ho fatto qualche prova rapida, per il momento senza risultato. Se
riesco a venirne a capo lo segnalo.
Per il momento grazie per i preziosi suggerimenti.
Nota per Alessandro: complimenti per il sito, struttura e grafica!
Umberto

 Umberto
Ciao Umberto.
Ci stň lavorando un pň anch'io, ma nel mio caso la cosa
č molto piů complessa pertanto devo vederci un'attimo..!
Ciao(Grazie)
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Umberto
Ciao Umberto, ho ultimato i test e devo dire che funziona estremamente bene
ho inviato fino a 800Kb di allegato e non ho avuto nessun problema, l'invio
è stato estremamente fluido e il ciclo di attesa di svuotamento non ha
grande
influenza sul tempo di spedizione.
Occorrerebbe inserire un controllo sul TIMEOUT che nel codice che ti ho
allegato
sarebbe anche previsto, ma net test che ho fatto non l'ho abilitato.
