CDO saltare eventuale errore su email errata

djjunior

Utente Attivo
24 Lug 2004
99
1
8
Carissimi,
in uno script dove invio email da un elenco, ho notato che utilizzando il classico script su server aruba:
Codice:
Dim iMsg
Dim iConf
Dim Flds
set iMsg = CreateObject("CDO.Message")
set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds("http://schemas.microsoft.com/cdo/configuration/urlgetlatestversion") = True

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.miosito.it" 

Flds("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

Flds("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

Flds("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 240

Flds.Update

With iMsg
Set .Configuration = iConf
.To = AMICO
.From = IO
.Subject = "Oggetto"
.TextBody = "ciao amici" 
.Send
End With
Se una mail è scritta in modo errato, tipo senza chiocciola etc oppure altra cosa particolare, se è una mail con dominio inesistente tipo [email protected], durante il ciclo manda le altre ma lo script si blocca con errore su .send e nn va + avanti.
Ora Vi chiedo è possibile e come, mettere un controllo che se la mail è inesistente o scritta male me la salti e continui con lo script di invio?
Grazie.
 

marino51

Utente Attivo
28 Feb 2013
3.204
207
63
Lombardia
il blocco dello script in errore è normale, se non viene gestito l'errore

on error resume next ignora l'errore, proseguendo l'esecuzione del codice dall'istruzione successiva a quella che ha generato l'errore stesso
on error resume 0 riattiva il blocco dell'esecuzione del codice in caso d'errore

ti posto un vbscript 'operativo', nella sintassi molto simile ad asp,
che ho semplificato per migliorarne la comprensione
e che utilizza la "cattura" dell'errore al momento dell'invio della mail

ciao
Marino

Codice:
Set objMSG = CreateObject("CDO.Message") 

call SendByRemoteServer
' call SendByRemoteServerAuth
' call DeliveryStatusNotification

objMSG.From	= mail_from
objMSG.To 	= mail_to
objMSG.cc 	= mail_cc
objMSG.bcc	= mail_bcc

objMSG.Subject = mail_subject

objMSG.TextBody = mail_textbody

call AttachFileToMail

on error resume next

objMSG.Send

ErrorID  = Err.Number
ErrorDes = Err.Description

on error resume 0

set objMSG = nothing

if ErrorID = 0 then
	.. codice per invio positivo
else
	.. codice per mancato invio
end if
 
Ultima modifica:

Discussioni simili