Newsgroup: it.comp.appl.access
Titolo: Invio Mail da Access

Ciao carissimi, come richiesto, Vi lascio il codice per l'invio di
mail cumulative. Naturalmente, sono graditi i suggerimenti. Colgo
l'occasione per augurare a tutti un felice Natale! ; )
           Set em = CurrentDb.OpenRecordset("SELECT Elenco.MAIL FROM
Elenco GROUP BY Elenco.MAIL")
           With em
           em.MoveFirst
                Do While Not .EOF
Ricomincia:
        vmail = vmail & .Fields("Mail")             ' Aggiunge alla
variabile il nuovo indirizzo
        If Len(vmail) < 1000 Then                     ' ... se la
variabile vMail non ha raggiunto il limite massimo, vai Avanti che
aggiungiamo il punto e virgola
        GoTo Avanti                                          ' ... il
limite massimo è 1023, ma è meglio ridurlo a 1000 per evitare "errori
imprevisti"
        Else
' ... altrimenti
        vmail = vLimitMail                                 ' ...prendi
come buona la stringa inferiore ai 1000 caratteri salvata nel
precedente ciclo...
        vmail = "mailto:?bcc=" & vmail & ""       ' spediscila ...
        Application.FollowHyperlink vmail, , True
        vmail = ""                                              '...
riporta la variabile a zero...
        GoTo Ricomincia                                    ' ... e
comincia di nuovo a riempirla. Quando il file em sarà terminato, la
riga di codice "Do While Not.EOF" ...
 
' ... lo rileva e lo spedisce a End With, dopo il quale aprirà Outlook
per l'ultima volta con gli ultimi indirizzi.
        End If
Avanti:
        vLimitMail = vmail          ' Memorizza la stringa inferiore
ai 1000 caratteri, e quindi "buona".
        vmail = vmail & ";"         '  ... aggiunge il ; punto e
virgola per separare gli indirizzi ( ecco il 1000° carattere )
        em.MoveNext                 ' ... passa al nuovo indirizzo
        Loop
        End With
        vmail = "mailto:?bcc=" & vLimitMail & ""
        Application.FollowHyperlink vmail, , True
        Else
                DoCmd.Echo False, ""
                DoCmd.OpenForm "Nullo", acNormal, "", "", , acNormal
                Forms!Nullo!MAIL.Visible = True
                DoCmd.Echo True, ""
        End If







        End With


-----------------------------------------------------------------------
Molto interessante il codice inviato
Diverse volte in passato ho 'sbattuto il naso' sui diversi client che trovi 
installati sui pc
E spesso una routine che va bene con Outlook Express non va altrettanto bene 
con Outlook o Thunderbird o altri
Per l'invio, personalmente consiglio l'uso di Blat, piccolo, potentissimo, 
aggratisse
Con una riga di codice invii posta anche da pc sui quali non e' configurato 
niente e non ti leghi ad una certa versione di questo e di quello
Ciao
RobertoA

 RobertoA
Ciao Roberto, anche a me piacerebbe superare le problematiche relative
ai vari client.. Il fatto è che agli utenti che utilizzano il mio
programma non posso dire di andarsi a scaricare Blat. Invece sarebbe
interessante sapere il codice utilizzato da Blat per spedire mail a
qualunque client. Perchè non lo mettono in rete, come ho fatto io?  :
(
Comunque: se qualcuno in questo forum ha buone notizie, si faccia
avanti! Shalom!  ; )



----------------------------------------------------------
Non ho ben capito perche' non puoi fornirlo con i tuoi programmi o farlo 
scaricare direttamente dai tuoi clienti?
http://www.blat.net/?docs/license.txt
La licenza e' estremamente permissiva, puoi fare tutto a parte spammare 
"..The only limitation we impose is that Blat not be used to send 
unsolicited commercial eMail.."
Ed e' pure disponibile la versione sorgenti, gratuitamente, mi pare per 
Visual Studio 2005 c'e' il progetto bello e pronto
Licenza permissiva anche per fini commerciali + Sorgenti disponibili 
aggratisse = meglio di cosi' non credo sia possibile
Ciao
RobertoA

 quello
Ciao RobertoA e Francesco
Ho avuto gli stessi problemi e volevo condividere la mia esperienza.
E' vero: i vari metodi di invio delle mail dipendono purtroppo dal client di 
posta installato (tranne Application.FollowHyperlink mailto:).
E' vero che BLAT funziona ALLA GRANDE. Permette di fare TUTTO ma NON di 
usare il tuo client di posta.
Mi spiego meglio: se invio una mail da Access, con Blat posso al limite 
tenerne traccia in una tabella.
Io uso Outlook e a me piace avere le mail inviate salvate nella cartella 
"Posta Inviata" di Outlook.
Per questo uso il metodo di Francesco: FollowHyperlink che permette di 
inviare mail da Access indipendentemente dal client di posta installato.
Purtroppo anche FollowHyperlink ha un GRAVE difetto: non permette di inviare 
mail con allegati. Ci sarebbe il parametro &attachment= per la sintassi di 
mailto: ma la maggior parte dei client di posta (tra cui Outlook) non lo 
accetta per motivi di sicurezza (...lasciamo perdere...).
Volendo percorrere la strada del FollowHyperlink io ho risolto con un metodo 
molto sporco: uso AutoIT (
http://www.autoitscript.com/
).
Con FollowHyperlink creo la mail da inviare. Con un piccolo script di AutoIT 
allego al messaggio l'eventuale allegato.
Lo script AutoIT non � certo una soluzione elegante ma garantisco che � 
MOLTO AFFIDABILE. La uso da anni senza problemi.
Naturalmente, se aveste metodi migliori, prego di segnalarli.
Per informazioni complete su FollowHyperlink mailto: vedere:
http://msdn2.microsoft.com/en-us/library/aa767737.aspx
Grazie.
Ciao
Silvio

Grazie per i suggerimenti. Il problema è che gli utenti a cui mi
rivolgo non sanno niente di computer, ed è già tanto se riescono a
inserire il cd e installare il programma. Figurarsi se dico loro che
per utilizzare il programma devono prima entrare in internet,
scaricarsi BLAT o AUTOIT ... bla, bla, bla. Non è pensabile. Domanda:
non si può tradurre in vb il codice di questi programmi che mi avete
suggerito?

suggerito?
Tradurre la vedo dura....
Comunque ci sono vari metodi di invio integrabili in Access. Vedi qui:
http://www.alessandrobaraldi.it/TabellaFaq.asp?sezione=&top=&descrizione=mail&Note=
Ciao
Silvio


--------------------
Mica devi spiegarle all'utonto cosa deve fare, e' il tuo applicativo che 
deve fare le cose
Personalmente creo un file di testo, con l'estensione .bat,  che contiene i 
comandi da avviare:
C:\Procedura\blat.exe   C:\procedura\blat_invio_messaggio.txt  -to 
pe...@topolino.com
  -sf  c:\procedura\blat_invio_oggetto.txt  -attach 
C:\procedura\allegato.txt  -log  c:\procedura\blat_invio_log.txt -server 
smtp.pippo.com
 -f  
minni_be...@pippo.com
 -u 
mi...@topolino.com
 -pw 
minni_123
Poi lo lancio, usando Shell
Volendo fare i precisini e' possibile, appena il file di log e' disponibile 
(c:\procedura\blat_invio_log.txt), visualizzare pure l'esito dell'invio
Dal punto di vista dell'utonto, deve solamente premere il pulsante "INVIA 
'STA ROBA PER POSTA LETTRONIGA", altro non si puo' pretendere che facciano
Per quanto riguarda il tradurre in vb il codice di Blat, ma perche' farlo? 
C'e' gia' lui e funziona pure bene, e' usabile gratuitamente anche per scopi 
commerciali, fine
Ciao
RobertoA