Newsgroup: it.comp.appl.access
Titolo: Invio Mail SMTP, alternative a CDO

Generalmente utilizzo il Client di posta per spedire mail, ma capita il fenomeno che rompe i maroni per bypassarli.
Per comodità e pigrizia ho continuato nel tempo ad appoggiarmi a CDO, soluzione considerata obsoleta e sconsigliata.
Effettivamente con certi Server SMTP da problemi: ad esempio non riesco a spedire con Gmail (qualcuno ce la fa?).
 
Ad ogni modo, conoscete soluzioni alternative e non a pagamento?
 
Saluti estivi

Ciao Simone,
Hai impostato la porta 587 al posto della 25..?
 
Hai pensato a MAPI in luogo di CDO... di fatto sono la stessa cosa ma CDO è deprecata...
 
Saluti
@Alex

 Hai pensato a MAPI in luogo di CDO... di fatto sono la stessa cosa ma CDO è deprecata...
 
Beh, negli anni ho implementato a opzione varie cose: MAPI con Outlook e Thunderbird, OLE + Outlook, e appunto CDO senza client. Provato pure, ma senza successo, Blat (varie limitazioni).
 
Ciao: Simone
 
 
 
 

Non uso altri approcci quindi non ho molto da aggiungere... 
 
Allego cose che sicuramente hai già guardato:
 
https://learndataanalysis.org/send-email-from-your-gmail-account-with-vba/
 
 
http://learnexcelmacro.com/wp/2011/12/how-to-send-an-email-using-excel-macro-from-gmail-or-yahoo/
 
 
https://www.quora.com/How-do-I-use-VBA-in-Excel-to-automatically-send-email-Gmail-reminders
 
 
http://www.dimastr.com/redemption/home.htm
 
 
Ciao
@Alex


hai abilitato su google la funzione "app meno sicure"
io non ho problemi con questi parametri
invio a qualsiasi destinatiario con allegati e non
 
https://ibb.co/zmfH4DD
 
 
ciao
BFS
 

 
prova questo.
 
http://ostrosoft.com/ossmtp.aspx
 


Ciao Alessandro

 
https://ibb.co/zmfH4DD
 
 
 
Buono a sapersi, grazie per la dritta.
 
Ciao: Simone

 
http://ostrosoft.com/ossmtp.aspx
 
 
 
Beh, sembra un buon prodotto: tu l'hai provato a fondo?
 
Saluti


Per slegarmi da librerie e versioni e client vari, uso swithmail
 
https://sourceforge.net/projects/swithmail/
 
 
Da codice vba preparo un file .bat contenente le istruzioni e poi lo lancio
Puoi fargli registrare un file di log con l'esito del tentativo invio
Io lo archivio per ogni invio cosi' a posteriori e' possibile sapere 
cosa e' successo, se la destinazione e' stata raggiunta oppure no, se 
l'accesso al server invio e' stato riconosciuto oppure ti ha buttato 
fuori, e molte altre cose
Provato anche usando gmail come server, funziona perfettamente


funziona alla grande.
poche linee di codice , ma funzionali.
l'unico fastidio e' che devi installare le librerie

 Provato anche usando gmail come server, funziona perfettamente
 
 
Anche questo pare interessante: grazie per il feedback  ;-)
 
Saluti

 hai abilitato su google la funzione "app meno sicure"
 
Comunque hai visto giusto: il problema dipendeva da quello.
 
Bravo!   ;-)

 Provato anche usando gmail come server, funziona perfettamente
 
 
 
Allora, dato che grazie al consiglio di BFS ho risolto il problema contingente, per ora continuerò a usare CDO.
Tuttavia la utility che hai segnalato è assai interessante e pare abbastanza aggiornata. Rispetto alla soluzione suggerita da shado (molto ben documentata per tutti i linguaggi) la tua proposta ha il vantaggio di non richiedere l'inserimento di librerie nei riferimenti.
Perchè non crei un piccolo Demo per AccessGroup o qualche altra area a tema?
 
Saluti estivi
 
 
 


Perche' e' troooppo semplice
Con un editor di testo qualsiasi ti crei un file .bat seguendo le 
istruzioni di swithmail e quando avviandolo funziona (ti parte 
correttamente l'email) allora da codice vba te lo ricrei
Si riduce il tutto a creare una riga di testo
 
num_file = FreeFile
Open nome_file_swithmail_avvio For Output As #num_file
Print #num_file, Application.CurrentProject.Path & "\swithmail.exe ";
Print #num_file, IIf(Len(testo_msg_html) > 0, 
nome_file_testo_messaggio_html, nome_file_testo_messaggio);
Print #num_file, " -to ";
Print #num_file, destinatario_posta;
Print #num_file, " -sf " & nome_file_oggetto_messaggio;
Print #num_file, " -attach """ & nome_file_pdf & """" & files_logo;
Print #num_file, " -log " & nome_file_swithmail_log;
Print #num_file, " -server " & server_smtp_posta;
If Len(mittente_posta) > 0 Then Print #num_file, " -f " & mittente_posta;
If Len(utente_posta) > 0 Then Print #num_file, " -u " & utente_posta;
If Len(password_posta) Then Print #num_file, " -pw " & password_posta
Close num_file
 
dummy = ShellAndWait(nome_file_swithmail_avvio)
 
Ovviamente il file swithmail.exe deve essere presente nella directory 
dove sta girando il programma
 
Si, il buono del discorso e' che ti sleghi dalle varie versioni di 
Access e soprattutto dai client email installati, perche' c'e' la 
postazione che ha Outlook, quella con Thunderbird, l'altra con Mail, non 
ti passa piu', una volta fatta la routine resta quella per anni e 
funziona da tutte le postazioni
 

 Perche' e' troooppo semplice
 
Non importa: prima o poi ci sarà qualcun altro che proporrà la questione ... in tal caso, se tu seguissi il mio consiglio, ti basterà semplicemente postare un link.
 
Ciao: Simone