Acest tutorial vă va arăta cum să trimiteți e-mailuri din Excel prin Gmail utilizând VBA.
Adăugarea referinței Microsoft CDO
Pentru a permite Excel să trimită e-mailuri prin Gmail, trebuie mai întâi să adăugați biblioteca de referință CDO la proiectul dvs. Excel.
În Editorul VBA, faceți clic pe Instrumente, Referințe.
Căutați Microsoft CDO Reference și faceți clic pe OK.
Trimiterea unui e-mail prin GMail
Pentru a trimite un e-mail din Excel prin Gmail, trebuie mai întâi să declarați un obiect CDO (Dim gMail ca CDO.Message).
În al doilea rând, va trebui să configurați autentificarea SSL pentru mesajul dvs. din cod. Aceasta înseamnă că trebuie să setați serverul SMTP și detaliile portului pentru ca e-mailul dvs. să treacă corect, precum și să vă configurați numele de utilizator și parola.
În fragmentul de cod de mai jos, de asta ai avea nevoie la începutul funcției Excel. Aveți nevoie de un destinatar de e-mail (strTo) și de un subiect (strSubject), dar CC și corpul e-mailului pot fi variabile opționale.
12345678910111213141516171819202122232425262728 | Funcție CreateEmail (strTo As String, strSubject As String, opțional strCC As String, opțional strBody As String)'creați un obiect CDODim gMail Ca CDO.MessageSetați gMail = New CDO.Message„Activați autentificarea SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Adevărat'Activare autentificare SMTP activată = adevărat (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Setați serverul SMTP și detaliile portuluigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Setați aici numele de utilizator și parola pentru propriul cont GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Actualizați câmpurile de configuraregMail.Configuration.Fields.Update |
Odată ce ați terminat, vă puteți crea e-mailul și puteți finaliza funcția.
123456789 | 'setați proprietățile de e-mail și fișierul de trimisCu gMail .Subject = "Scrie subiectul aici".From = "[email protected]".To = strTo.TextBody = strBodySe termina cu'pentru a trimite e-mailulgMail.SendFuncția de sfârșit |
Apoi puteți apela funcția dvs. cu următorul cod
1234567 | Sub SendEmail'creați corpul e-mailuluiDim strText ca șirstrText = "Bună dimineața. Sper că te simți bine - acesta este un e-mail de testare"„completați argumentele funcției - lăsați CC necompletat așa că puneți o virgulă ca substituentCreateEmail ("[email protected]", "Test Email",, strText)Încheierea sub |
Trimiterea unui registru de lucru prin GMail
Pentru a trimite un registru de lucru ca atașament prin GMail, puteți crea o funcție asemănătoare celei de mai sus cu câteva adăugiri.
Trebuie să adăugați cod pentru a selecta registrul de lucru, apoi trebuie să atașați fișierul selectat la e-mail.
Vom folosi Microsoft Office Dialog fișier pentru a selecta fișierul de trimis, apoi utilizați fișierul Adauga atasament proprietatea e-mailului pentru a adăuga fișierul ca atașament.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | Funcția SendWorkbook (strTo As String, strSubject As String, opțional strCC As String, opțional strBody As String) Ca BooleanLa eroare, mergeți eh:'creați un obiect CDODim gMail Ca CDO.MessageSetați gMail = New CDO.Message„Activați autentificarea SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Adevărat'Activați autentificarea SMTP activată = adevărat (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Setați serverul SMTP și detaliile portuluigMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Setați aici numele de utilizator și parola pentru propriul cont GmailgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Actualizați câmpurile de configuraregMail.Configuration.Fields.Update'selectați fișierul de trimis cu caseta de dialog fișier microsoftDim strFileToSend As StringDim dlgFile Ca FileDialogDim strItem As VariantDim nDlgResult As LongSetați dlgFile = Application.FileDialog (msoFileDialogFilePicker)'filtru numai pentru fișiere Excel și CSVdlgFile.Filters.Add "Fișiere Excel", "* .csv; * .xls; * .xlsx; * .xlsm"nDlgResult = dlgFile.ShowDacă nDlgResult = -1 AtunciDacă dlgFile.SelectedItems.Count> 0 AtunciPentru fiecare strItem din dlgFile.SelectedItemsstrFileToSend = strItemUrmătorul strItemEnd IfEnd If'setați proprietățile de e-mail și fișierul de trimisCu gMail.Subject = "Scrie subiectul aici".From = "[email protected]".To = strTo.TextBody = strBody'adăugați fișierul selectat ca atașament.AddAttachment strFileToSendSe termina cu'pentru a trimite e-mailulgMail.SendSendWorkbook = AdevăratFuncția de ieșireeh:SendWorkbook = FalseFuncția de sfârșit |
Dacă portul de configurare 25 nu funcționează, este posibil să primiți o eroare - „Transportul nu a reușit să se conecteze la server” Schimbați portul la 25 și încercați din nou.
Funcția de mai sus poate fi apelată folosind procedura de mai jos.
123456789101112131415 | Sub SendMail ()Dim strTo As StringDim strSubject As StringDim strBody As String'populează variabilestrTo = "[email protected]"strSubject = "Vă rugăm să găsiți fișierul financiar atașat"strBody = "un text merge aici pentru corpul e-mailului"'apelați funcția pentru a trimite e-mailulDacă SendWorkbook (strTo, strSubject,, strBody) = adevărat atunciMesaj "Succes la crearea e-mailului"AltfelMesaj "Nu s-a reușit crearea e-mailului!"Încheie dacăSfârșitul Sub |
Vi se va cere să selectați fișierul pe care doriți să îl trimiteți. Acest cod este limitat la fișierele Excel, deoarece filtrul este „* .csv; * .xls; * .xlsx; * .xlsm ”- totuși, puteți utiliza acest cod și în Word și puteți modifica filtrul în consecință.
Selectați fișierul și faceți clic pe Deschidere. Codul poate dura până se execută - dacă e-mailul este trimis cu succes, veți primi următorul mesaj.