Invio mail in automatico da AccessBasic

di il
8 risposte

Invio mail in automatico da AccessBasic

Qualcuno ha mai avuto problemi con la creazione di un messaggio mail precompilato (con allegato annesso), da MS Access 2000, con l'opzione SendObject?
Lo stesso sw, a seconda dei pc su cui è installato si comporta diversamente:
1) funziona tutto e gestisco anche l'eventuale annullamento dell'invio con il comando AccessBasic "On Error";
2) Crea il messaggio, ma se annullo e non invio il messaggio, non intercetta alcun errore da Outlook;
3) ottengo subito "Impossibile aprire la sessione di posta elettronica"

Su tutti i pc c'è Office 2000 pro su WinXP.
Qualche idea?

Grazie!

8 Risposte

  • Re: Invio mail in automatico da AccessBasic

    Cambia tecnica,
    non ti affidare ad Outlokkk e quindi al profilo loggato in quel momento.
    Connettiti direttamente al server di posta e opera.

    Modifica opportunamente questo script

    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields

    Flds(cdoSendUsingMethod) = 2 'cdoSendUsingPort
    Flds(cdoSMTPServer) = "smtp.nome.it"
    Flds(cdoSMTPServerPort) = 25
    Flds(cdoSMTPAuthenticate) = 0 'cdoAnonymous
    Flds.Update

    With iMsg
    Set .Configuration = iConf
    .To = destinatario
    .Bcc = cc
    .From = from
    .Sender = sender
    .Subject = oggetto &" "& sito
    .HTMLBody = body
    .Send
    End With

    Se sul tuo client non è presente CDO puoi utizzare altri oggetti.

    Saluti
    http://www.isola-di-krk.ne
  • Re: Invio mail in automatico da AccessBasic

    Grazie, MaurizioG!
    La strada che mi hai suggerito fa al caso mio, ma un problema:
    con le definizioni date, Access restituisce:
    "Gli argomenti non sono di tipo valido, non sono comprese nell'intervallo consentito o sono in conflitto".

    Se, prima del Set, aggiungo la riga:
    Dim Flds as ADODB.Fields

    si pianta sul membro
    Flds.Update
    con il messaggio:
    "Impossibile trovare il metodo o il membro dei dati"
  • Re: Invio mail in automatico da AccessBasic

    ..Dimenticavo di dire che sul mio WinXP, SP2, è presente la CDOSYS.DLL, quindi deduco che sia correttamente installata.

    A presto e grazie!
    Gianluca
  • Re: Invio mail in automatico da AccessBasic

    Ciao,
    per utilizzare oggetti non standard in access suppongo che sia necessario registrarli tramite Strumenti, Controlli ActiveX registra.
    A quel punto dovresti trovarli disponibili ed utilizzarli come tutti gli altri.

    Anche se leggi fields non è detto che si tratti di un campo di database.

    Saluti
    http://www.isola-di-krk.ne
  • Re: Invio mail in automatico da AccessBasic

    Sono andato a finire in un campo in cui ci capisco poco..
    Per la registrazione mi chiede un file .ocx, che non saprei dove trovare, sempre ammesso che non sia già attivo!
    Nell'elenco dei controlli ActiveX già registrati in Access, quello che si avvicina al nome "CDO", è "CDDB Control class"..

    Non so proprio che fare..
    Ciao
    Gianluca
  • Re: Invio mail in automatico da AccessBasic

    Seleziona il tipo e prova a dargli CDOSYS.DLL

    p.s.
    Io non uso access dal 2000.

    Saluti
    http://www.isola-di-krk.ne
  • Re: Invio mail in automatico da AccessBasic

    Fatto.
    Apparentemente sembra che lo digerisca, ma poi non risulta neanche nell'elenco degli activeX registrati! Senza msg d'errore!
    Che roba..

    Grazie lo stesso, cercherò altre strade come un clientino di posta eseguibile da linea di comando (climail).

    Saluti!
    Gianluca
  • Re: Invio mail in automatico da AccessBasic

    [quote]
    Sono andato a finire in un campo in cui ci capisco poco..
    Per la registrazione mi chiede un file .ocx, che non saprei dove trovare, sempre ammesso che non sia già attivo!
    Nell'elenco dei controlli ActiveX già registrati in Access, quello che si avvicina al nome "CDO", è "CDDB Control class"..

    Non so proprio che fare..
    Ciao
    Gianluca



    Ciao
    Ho avuto i tuoi stessi problemi.
    Non so se ormai è troppo tardi comunque potresti provare questa roba qua:


    Set imsg = CreateObject("cdo.message")
    Set iconf = CreateObject("cdo.configuration")

    Set Flds = iconf.Fields

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


    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '( o altra porta: basta controllare l'account del tuo gestore di Email)
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Update
    End With


    With imsg
    Set .Configuration = iconf
    .To = ""
    .From = ""
    .CC = "che ti pare"
    .Subject = "Dai che ce la fai"
    .TextBody = "Incredibile ma funziona""
    .AddAttachment "ciaoMondo.txt" ' (attenzione non ti fare fregare: l'uguale dopo .AddAttachment non ci deve stare)

    .Fields.Update
    .Send
    End With

    potrebbe finire qui ma ho aggiunto questa seconda parte perché la utilizzo come una sorta di ricevuta dell'invio

    With imsg
    Set .Configuration = iconf
    .To = ""
    .From = ""
    .CC = ""
    .Subject = "Dai che ce la fai" & " per " & ""

    .TextBody = "Ricevuta invio"
    .Fields.Update
    .Send
    End With

    Set imsg = Nothing
    Set iconf = Nothing


    Nostro
Devi accedere o registrarti per scrivere nel forum
8 risposte