43 messaggi dal 20 gennaio 2010
ho un problema con la classe CDO.Message, eseguendo un send() per una mail (.To) che viene inviata ad un indirizzo mail "ricevuto" da un server che ritiene la tua mail o il tuo dominio come sospetto di spam mi genera un errore nella pagina .ASP.

c'è un modo per trappare l'errore (generico e non) in una pagina ASP e gestire per inviare a video un messaggio di errore e non la classica pagina 501?
tra le altre cose capita anche a voi (anche in altri linguaggi) di avere problemi con gli indirizzi mail errate o particolamente attente allo spam?

terza alternativa, esiste un componente diverso da CDO.Message che gestisce meglio queste problematiche?

grazie
Simone
Modificato da astambara il 23 ottobre 2014 11.54 -
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Simone,
potresti mettere un On Error Resume Next subito prima di inviare la mail. In questo modo eventuali errori verranno soppressi. Subito dopo il Send, controlla il valore di Err.Number perché, se è diverso da zero, allora vuol dire che si è verificato un errore. La descrizione dell'errore la trovi in Err.Description.

Qui trovi delle altre informazioni (e un esempio simile a quello di cui ti ho parlato) sull'oggetto ASPError:
http://msdn.microsoft.com/en-us/library/ms524942(v=vs.90).aspx

astambara ha scritto:

tra le altre cose capita anche a voi (anche in altri linguaggi) di avere problemi con gli indirizzi mail errate o particolamente attente allo spam?

Se sei assolutamente sicuro di non aver mai inviato email indesiderate, puoi comunque incontrare di questi problemi se il server SMTP che usi per la spedizione ha una bassa reputazione.
Se quel server è stato usato anche da altre persone per l'invio di SPAM, allora il suo IP potrebbe finire in qualche blacklist e anche tu ne soffriresti le conseguenze.

Cerca di escludere questa eventualità: digita l'ip del tuo server SMTP in questo tool per capire se è presente in qualche blacklist.
http://mxtoolbox.com/blacklists.aspx

ciao,
Moreno

Enjoy learning and just keep making
43 messaggi dal 20 gennaio 2010
Grazie Moreno. Il fatto è che uso javascript lato server. Dovrei riscrivere il codice in VB script. Non esiste qualcosa per javascript?

Il problema dell smtp si verifica sporadicamente, ma ho visto che il cdo.Sys soffre da qualche tempo le risposte dell'smtp quando il server di relay capisce che c'è qualcosa che non va. indirizzi errati o come nell'ultimo mese quando in una casella arriva troppa mail. Es. Per una registrazione in 2 fasi mando 2mail. La prima arriva. La seconda no. Temo che la seconda la tratti come spam...
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Simone,

astambara ha scritto:
Non esiste qualcosa per javascript?

Sì, puoi usare un blocco try...catch. Prova qualcosa del genere:
try
{    
   //qui metti il send
}
catch(err)
{
    Response.Write(err.description); //prova anche err.message
}


astambara ha scritto:

La prima arriva. La seconda no. Temo che la seconda la tratti come spam...

Effettivamente alcuni server di posta attuano il throttling dei messaggi, in modo da non riceverne più di una certa quantità da un dominio nell'unità di tempo. Due messaggi mi sembrano comunque troppo pochi per far scattare quel meccanismo.
Puoi sapere con esattezza qual è la causa del problema esaminando i log del server di posta SMTP, se ne hai l'accesso. Altrimenti, se il recapito non dovesse riuscire, dovrebbe comunque tornarti indietro un messaggio di bounce che dovrebbe darti indizi utili.

Assicurati che il server SMTP che stai usando faccia più tentantivi di recapito. Può anche succedere che una email non possa essere recapitata immediatamente, per cui è importante che il server ci riprovi in seguito prima di dichiarare l'invio fallito.

Il controllo delle blacklist com'è andato? E' tutto "verde"?

ciao,
Moreno
Modificato da BrightSoul il 23 ottobre 2014 21.04 -

Enjoy learning and just keep making
43 messaggi dal 20 gennaio 2010
Il try catch non so se funziona lato server, ho visto esempi di script sul client, e provando mi dava errore qualche tempo fa. Per l'smtp il problema è che prima o poi per qualche motivo mi genererà un errore e lo devo prevenire. Noi spedivamo tante DEM con l'smtp del nostro provider che è anche il provider del nostro server iis. Non so quanto possano essere in comune i 2 smtp. Di sicuro il dominio di spedizione è lo stesso e lo abbiamo un po' stressato. Dai log mi dice poco. A meno che stia guardando male io. Qualche bounce mi è arrivato ma devo capire se è correlato con la spedizione di iis o se sono ritorni di rinvii fatti a mano su richiesta dei nostri utenti... Farò un po' di verifiche
11.886 messaggi dal 09 febbraio 2002
Contributi
astambara ha scritto:

Per l'smtp il problema è che prima o poi per qualche motivo mi genererà un errore e lo devo prevenire

Il modo per ridurre quegli errori è consegnare la tua posta ad un SMTP "amico" che accetterà ben volentieri tutto quello che gli mandi. Potrebbe trattarsi di un server SMTP installato su localhost o comunque su una macchina presente in rete locale.
In questo modo hai alcuni vantaggi:
  • La tua applicazione consegnerà il messaggio molto rapidamente (l'smtp è in rete locale)
  • I problemi di consegna non devi gestirli tu, ma sarà l'SMTP locale a riprovare l'invio ad intervalli di tempo crescenti
  • Hai il diretto controllo su un server di posta, e puoi esaminare i suoi log quando vuoi per capire se l'SMTP remoto ha sollevato errori.


Guarda per esempio il paragrafo "Specifying SMTP relayer" nella guida di hMailServer, un server di posta per Windows.
https://www.hmailserver.com/documentation/latest/?page=basic_configuration
Il server locale non farà altro che scodare i messaggi ed inviarli all'SMTP remoto, e riprovare in caso di errore.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.