Impossibile accedere all'oggetto CDO.Message

lunedì 26 marzo 2007 - 19.32

biggiu Profilo | Junior Member

Salve a tutti,

sto realizzando una procedura in VB.net che deve inviare automaticamente delle e-mail.

Ho eseguito una doverosa ricerca su questo sito, ho trovato il codice necessario a fare quanto da me richiesto ed ho provato ad eseguirlo.

E' subito comparso l'errore :

Impossibile accedere all'oggetto CDO.Message.

Ho provato a documentarmi in merito al problema e... scusate la mia ignoranza, ma invece che chiarire il problema mi sono perso in mezzo ad una serie di informazioni che spaziano dall'IIS alla parametrizzazione dell'account di posta per Attivare l'autenticazione del server necessaria. Ovunque ho incontrato informazioni relative alla necessita di attivare il RELAY. In piu' ci sono avvisi che mettono in guardia circa la possibilita' di diventare portatore di spamming.

A questo punto mi arrendo e cerco qualcuno che sia in grado di indicare, passo passo, quali sono le eventuali operazioni da eseguire per ovviare al problema.

Per maggior chiarezza pongo ulteriori quesiti quali :

Per eseguire l'invio automatico di posta, utilizzando :

la collection (?) System.Web.Mail

e quindi le righe di comando :

msg.Subject = "Pagamento"
msg.Body = w1
msg.To = "destinatario@dominio.it"
msg.From = "mittente@dominio.it"
SmtpMail.SmtpServer = "nomeSmtpServer"
SmtpMail.Send(msg)

1) e' necessaria la sola connessione al web, realizzata sia con router che con modem analogici ?

2) Il nome del Server Smtp e' quello che trovo sulla parametrizzazione dell'account sotto la voce Posta in uscita ( SMTP ) della sezione SERVER, o quello che trovo sotto autenticazione serve necessaria ( nome Account) ?

3) Come si esegue questo RELAY ?

4) Come si puo' ovviare al problema ( se esiste ) dello spamming ?

5) In breve, l'invio automatico della e-mail puo' essere eseguito da qualsiasi PC in cui tale procedura venga installata, purche' dotato di connessione ad internet ?


Spero di essere stato chiaro e non aver aggiunto elementi di ulteriore confusione.

Ringrazio anticipatamente chiunque sia in grado di risolvere questo problema.

Buon Lavoro a tutti



BigGiu

MarKonE Profilo | Guru

Ciao, prova a vedere se questo messaggio ti chiarisce un po' le idee :
http://www.dotnethell.it/forum/messages.aspx?ThreadID=13411

In generale prevederei la possiblità di lasciare che l'utente imposti il server SMTP del suo provider...in maniera tale che non ci siano problemi di relay chiuso.

Ciao!
My Blog... http://blogs.dotnethell.it/Mark/

biggiu Profilo | Junior Member

Ciao,

Ho visionato quanto mi hai detto ed ho provato ad eseguire la telnet :

telnet mail.191.it 25

Il risultato e' ready.

A questo punto ?

BigGiu

MarKonE Profilo | Guru

Ciao, la questione è che, per spedire e-mail, devi essere autorizzato ad utilizzare un particolare server SMTP.

Per le prove puoi utilizzare quello del tuo provider... ma quasi sicuramente lo stesso programma non funzionerà su un pc connesso ad internet tramite un provider diverso.

Per esempio se sei collegato a libero tramite Alice puoi utilizzare "out.alice.it", mentre con Libero funzionerà "mail.libero.it".

Per questo motivo ti suggerivo di prevedere la possibilità di far inserire all'utente il server SMTP da autorizzare.

Se ti sembra una cosa troppo complessa da demandare all'utente potresti popolare una combobox con gli indirizzi dei principali provider.... in modo da visualizzare solamente il nome ALICE , LIBERO ecc... Un elenco lo puoi trovare qui : http://www.sandrodiremigio.com/documenti/tutorials/pop3smtpnntp.htm

Purtroppo non credo esista un sistema per "scavalcare" il problema dell'smtp rendendo l'applicazione indipendente dal provider.

Se hai bisogno di altre indicazioni per favore specifica meglio cosa vorresti ottenere così aggiustiamo il tiro

Ciao!

My Blog... http://blogs.dotnethell.it/Mark/

biggiu Profilo | Junior Member

Ciao,

Il problema di rendere variabile il valore di Smtp, l'avevo gia' previsto e quindi ci sono dei campi sulle tabelle di sistema delegati a questa gestione.

Girando ancora per il Web mi sono imbattuto su queste righe di comando che forse possono essermi di aiuto :

msg.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1;
msg.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = UserID;
msg.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Password;

questo perche, a quanto ho capito, se il server smtp ha bisogno di autenticazione, anche in questa fase di mailing automatica devo abilitare tali autorizzazioni.

Il nuovo problema e' che msg.field(s), come istruzione genera un errore di sintassi in quanto Field(s) non e' previsto nella collection di msg.

Hai qualche suggerimento in merito ?

Grazie ancora per il tempo dedicatomi.

Buon Lavoro
BigGiu

MarKonE Profilo | Guru

Credo, e spero , che questi due link ti possano essere utili per una panoramica completa :

http://www.systemwebmail.com --> Se utilizzi la versione 1.x del .Net Framework

http://www.systemnetmail.com --> Se utilizzi la versione 2.0 del .Net Framework

Ciao!
My Blog... http://blogs.dotnethell.it/Mark/

MarKonE Profilo | Guru

Anche questo non è male : http://www.visual-basic.it/areaarticoli.asp?articolo=adsEmail_con_VB2005.htm

Ciao!
My Blog... http://blogs.dotnethell.it/Mark/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5