VBA envía correos electrónicos desde Excel a través de Gmail

Este tutorial le mostrará cómo enviar correos electrónicos desde Excel a través de Gmail usando VBA.

Agregar la referencia de CDO de Microsoft

Para permitir que Excel envíe correos electrónicos a través de Gmail, primero debe agregar la biblioteca de referencia CDO a su proyecto de Excel.

En el Editor de VBA, haga clic en Herramientas, Referencias.

Busque la referencia de CDO de Microsoft y haga clic en Aceptar.

Envío de un correo electrónico a través de GMail

Para enviar un correo electrónico desde Excel a través de Gmail, primero debe declarar un objeto CDO (Atenuar gMail como CDO.Message).

En segundo lugar, deberá configurar la autenticación SSL para su mensaje en su código. Esto significa que debe configurar el servidor SMTP y los detalles del puerto para que su correo electrónico se transmita correctamente, así como configurar su nombre de usuario y contraseña.

En el fragmento de código a continuación, esto es lo que necesitaría al comienzo de su función de Excel. Necesita un destinatario de correo electrónico (strTo) y un asunto (strSubject), pero el CC y el cuerpo del correo electrónico pueden ser variables opcionales.

12345678910111213141516171819202122232425262728 Función CreateEmail (strTo como cadena, strSubject como cadena, strCC opcional como cadena, strBody opcional como cadena)'crear un objeto CDOAtenuar gMail como mensaje CDO.Establecer gMail = New CDO.Message'Habilitar la autenticación SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Verdadero'Hacer que la autenticación SMTP esté habilitada = verdadero (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Configure el servidor SMTP y los detalles del puertogMail.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'Establezca su nombre de usuario y contraseña para su propia cuenta de Gmail aquígMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Actualizar los campos de configuracióngMail.Configuration.Fields.Update

Una vez hecho esto, puede crear su correo electrónico y completar la función.

123456789 'establecer las propiedades del correo electrónico y el archivo para enviarCon gMail .Subject = "Escriba el asunto aquí".From = "[email protected]".To = strTo.TextBody = strBodyTerminar con'para enviar el correogMail.SendFunción final

Luego puede llamar a su función con el siguiente código

1234567 Sub SendEmail'crea el cuerpo del correo electrónicoDim strText como cadenastrText = "Buenos días. Espero que se encuentre bien. Este es un correo electrónico de prueba"'rellene los argumentos de la función - deje CC en blanco, así que ponga una coma como marcador de posiciónCreateEmail ("[email protected]", "Prueba de correo electrónico", strText)Fin sub

Envío de un libro de trabajo a través de GMail

Para enviar un libro de trabajo como archivo adjunto a través de GMail, puede crear una función muy parecida a la anterior con algunas adiciones.

Debe agregar código para seleccionar el libro de trabajo, y luego debe adjuntar el archivo seleccionado al correo electrónico.

Usaremos Microsoft Office FileDialog comando para seleccionar el archivo a enviar, y luego use el Añadir un adjunto propiedad del correo electrónico para agregar el archivo como adjunto.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Función SendWorkbook (strTo como cadena, strSubject como cadena, strCC opcional como cadena, strBody opcional como cadena) como booleanoEn caso de error, vaya a eh:'crear un objeto CDOAtenuar gMail como mensaje CDO.Establecer gMail = Nuevo CDO.Message'Habilitar la autenticación SSLgMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = Verdadero'Hacer que la autenticación SMTP esté habilitada = verdadero (1)gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1'Configure el servidor SMTP y los detalles del puertogMail.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'Establezca su nombre de usuario y contraseña para su propia cuenta de Gmail aquígMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]"gMail.Configuration.Fields.Item _("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "*********"'Actualizar los campos de configuracióngMail.Configuration.Fields.Update'seleccione el archivo para enviar con el cuadro de diálogo de archivo de MicrosoftDim strFileToSend como cadenaDim dlgFile As FileDialogDim strItem como varianteDim nDlgResult tan largoEstablecer dlgFile = Application.FileDialog (msoFileDialogFilePicker)'filtrar solo para archivos de Excel y CSVdlgFile.Filters.Añadir "Archivos de Excel", "* .csv; * .xls; * .xlsx; * .xlsm"nDlgResult = dlgFile.ShowSi nDlgResult = -1 EntoncesSi dlgFile.SelectedItems.Count> 0 EntoncesPara cada strItem en dlgFile.SelectedItemsstrFileToSend = strItemSiguiente strItemTerminara siTerminara si'establecer las propiedades del correo electrónico y el archivo para enviarCon gMail.Subject = "Escriba el asunto aquí".From = "[email protected]".To = strTo.TextBody = strBody'agregar el archivo seleccionado como adjunto.AddAttachment strFileToSendTerminar con'para enviar el correogMail.SendSendWorkbook = VerdaderoFunción de salidaeh:SendWorkbook = FalsoFunción final

Si el puerto de configuración 25 no funciona, es posible que obtenga un error: "El transporte no se pudo conectar al servidor" Cambie el puerto a 25 y vuelva a intentarlo.

La función anterior se puede llamar mediante el procedimiento siguiente.

123456789101112131415 Sub SendMail ()Dim strTo como cadenaDim strSubject como cadenaDim strBody como cadena'rellenar variablesstrTo = "[email protected]"strSubject = "Busque el archivo de finanzas adjunto"strBody = "aquí va un texto para el cuerpo del correo electrónico"'llamar a la función para enviar el correo electrónicoSi SendWorkbook (strTo, strSubject`` strBody) = true entoncesMsgbox "Creación exitosa de correo electrónico"DemásMsgbox "¡Error al crear el correo electrónico!"Terminara siEnd Sub

Se le pedirá que seleccione el archivo que desea enviar. Este código está restringido a archivos de Excel debido a que el filtro es “* .csv; * .xls; * .xlsx; * .xlsm ”; sin embargo, también puede utilizar este código en Word y modificar el filtro en consecuencia.

Seleccione el archivo y haga clic en Abrir. El código puede tardar en ejecutarse; si su correo se envía correctamente, recibirá el siguiente mensaje.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave