› Sviluppare funzionalita su Microsoft Office con VBA › generare PDF ed allegarlo ad email da inviare tramite gmail (senza MS Outlook)
-
AutoreArticoli
-
Buongiorno a tutti, tempo fa, col vostro prezioso aiuto, mi avete permesso di risolvere un grosso problema con l'invio di email con pdf allegati.
Vorrei disturbarvi ancora perchè oggi la questione è più complicata....
Mi servirebbe fare la stessa cosa ma senza usare Outlook. Mi servirebbe genereare una mail che possa inviare un allegato pdf tramite gmail. Ho trovato una pagina che tratta l'argomento (c'è anche un file di esempio) ma non ci ho capito molto....
Eccola https://www.rondebruin.nl/win/s1/cdo.htm
Io dovrei "solo" inviare il Foglio2 di una cartella excel, dopo che è stato convertito in pdf, salvato in una sottocartella di quella principale, ad un indirizzo email specificato all'interno dello stesso Foglio2 .
Secondo voi è possibile?
Grazie a chi vorrà aiutarmi
Luca
Buongiorno, nessuno può darmi una mano?
Sub creaf_pdf_proforma() Dim AppMail As Object 'Outlook.Application Dim NewMail As Object 'Outlook.Application Dim miaDir Dim MioWBK As Workbook Dim MioSheet As Worksheet Dim MailTo As Worksheet Dim Nome1 As String Dim Nome2 As String Dim Nome3 As String Dim Nome4 As String Dim Nome5 As String Dim Nome6 As String Dim Cognome As String Dim indirizziTO As String Dim IndirizziCC As String Dim NomeFile As String Dim Oggetto As String Dim Testo As String Dim HTMLBody As String Set MioWBK = ActiveWorkbook Set MioSheet = ActiveWorkbook.Sheets("Pro_FORMA") miaDir = MioWBK.Path Nome1 = MioSheet.Range("e22") NomeFile = Nome1 & "_" & " .pdf" Sheets("Entrate_Pro_FORMA").Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ miaDir & "/00-pdf_Fatture/" & NomeFile, Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False Sheets("Entrate_Pro_FORMA").Select End Subquesto crea il file pdf ma ora rimane il problema di allegarlo ad una mail gmail (nel browser) senza usare Outlook.
ho provato a modificare i files della guida https://www.rondebruin.nl/win/s1/cdo.htm ma non vanno...
Ciao Patel, io purtroppo ho fatto solo quello che vedi qui sopra....
Mi aiuteresti a generare la mail in gmail?
Grazie tante
prova questa
Sub MailConAllegato() Set cdomsg = CreateObject("CDO.message") MittenteMail = "pippo@gmail.com" OggettoMail = "oggetto" With cdomsg.Configuration.Fields .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = 465 .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = MittenteMail .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 'password accesso .Update End With DestinatarioMail = "destinatario" With cdomsg .To = DestinatarioMail .CC = "" .BCC = "" .From = MittenteMail .Subject = OggettoMail .TextBody = "Testo della mail" If .Attachments.Count <> 0 Then .Attachments.DeleteAll .AddAttachment "percorso del file" .Send End With End SubNulla di fatto, purtroppo non va.
Riporta un errore SMTP ed il debug di excel evidenzial il comando ".Send"
Ho usato il codice che hai postato mettendo indirizzo email e password. Non vale la pena postarlo 🙂
Da errore smtp. A te funziona? Ho provato anche a tenere il browser aperto con la casella Gmail anch'essa aperta ma non va
Il codice che ho postato funzionava in passato, ora l'ho riprovato e da errore smtp, se risolvo ti avviso.
Abilita "consenti app meno sicure" (vedi https://myaccount.google.com/lesssecureapps?pli=1) e vedrai che funziona
Alla grande. Funziona benissimo!
C'è solo un piccolo problema....invia direttamente l'email senza farmela visualizzare. E possibile crearla solamente senza procedere con l'invio diretto? Anzichè usare il comando .send, ho provato con .Display ma mi sa che è valido solo per outlook.
Ti ringrazio
-
AutoreArticoli
