Aggiorno questo mio intervento condividendo la mia esperienza. Ho fatto varie prove con le librerie CDO. Sono riuscito a mandare mail da un account GMAIL, ma con gli account di Outlook, no, sia utilizzando il server di outlook (smtp-mail.outlook.com) sia quello di Office 365 (smtp.office365.com). Ho smanettato così come indicavano diversi esempi in rete, abilitando l'autenticazione di secondo livello con la password per le app, cambiando porta e metodo di autenticazione, ma niente da fare, ho sempre ricevuto vari errori. Ho anche pensato di realizzare una DLL con VB.NET utilizzando SmtpClient che ho già avuto occasione di usare, ma ho visto che anche chi lavora con VB.NET ha problemi, quindi ho deciso di no.
Può anche darsi che abbia fatto qualche casino con il mio account 365, in ogni caso mi sono convinto che interfacciare i server della Microsoft senza passare da Outlook non è una strada tranquilla. Può darsi che oggi ci si riesca, ma chissà domani. Meglio delegare il problema a Outlook, passandogli i messaggi da inviare. A questo punto si pone il problema che con il nuovo non sarà più possibile. Per il momento costringerò i miei clienti a tenersi il vecchio, in attesa che la Microsoft torni sui suoi passi realizzando almeno un applicativo intermedio. E penso che lo farà, perché sono troppi gli sviluppatori penalizzati da una scelta troppo azzardata.
E' tutto da studiare e valutare, ma nel mio caso potrei seguire una strada mista. Avendo due macchine, in una ho abilitato il nuovo Outlook, nell'altra ho lasciato il vecchio. In questa ho inviato mail tramite il mio applicativo istanziando Outlook.com. Il messaggio era visibile tra gli inviati anche sulla macchina dove c'è l'Outlook nuovo. Francamente non sono molto ferrato sulla materia, una volta ero convinto che i messaggi venissero salvati solo nel PST locale, e invece sembra di no. Qualcuno ne sa qualcosa? Comunque se fosse come sembra è possibile che l'utilizzatore finale possa avere entrambe le versioni di Outlook, nel mio caso quella vecchia sul server, al quale si collega in terminal server, che il mio applicativo può interfacciare, mentre sulla sua macchina locale può usare il nuovo.
C'è qualcosa che mi è sfuggito?