Hola amigos, nuevamente aquí con ustedes compartiendo un código mas.
En esta ocasión les comparto como enviar un correo desde un UserFom con macros Excel sin necesidad de depender de otra aplicación como Outlook.
Para ello debemos considerar lo siguiente:
- Garantizar que nuestro proveedor de correo tenga habilitado el permiso de acceso para aplicaciones no seguras ya que lo contrario no se podrán enviar mensajes.
- Contar con un servidor de correos como: gmail, hotmail, outlook e.t.c.
- Puerto.
- Seguridad SSL: SI (True), o NO (False)
- Un correo.
- Contraseña de acceso al correo.
En el ejemplo de práctica les mostraré como funciona con el proveedor de correos de gmail ya que en lo personal me ha funcionado de maravilla.
- Realizamos un formulario como se muestra en la imagen.
- Acceder el menú herramientas, referencias.
- Agregar la librería Microsoft CDO for Windows 2000 Library. Clic en el botón aceptar.
Librería Microsoft CDO for Windows 2000
- Escribimos el siguiente código en el formulario.
Private Sub cmdprobar_Click()
Dim MiCorreo As CDO.Message
Set MiCorreo = New CDO.Message
On Error GoTo Error
With MiCorreo.Configuration.Fields
If Me.txtseguridad.Text = "SI" Then
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End If
If Me.txtseguridad.Text = "NO" Then
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
End If
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'cdoBasic
'Proveedor de correo
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Me.txtservcorreo.Text
'Puerto
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = Me.txtpuerto.Text
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'cdoSendUsingPort
'Correo a configurar
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = Me.txtemail.Text
'Contraseña de acceso
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Me.txtcontrase.Text
.Update
End With
With MiCorreo
'Quien envía el correo
.From = Me.txtemail.Text
'Aqui va el correo de la persona a la que le vas enviar el correo
.To = Me.txtemail.Text
'Con copia para
.CC = "otrocorreo@outlook.com"
'.BCC = "otrocorreo@dominio.com"
'Titulo del mensaje
.Subject = "Correo de prueba"
'Cuerpo del mensaje
.TextBody = "Si visualizas este mensaje la configuración ha sido exitosa"
End With
MiCorreo.Send
MsgBox "El correo ha sido enviado", vbInformation, "Enviado"
Set MiCorreo = Nothing
Error:
If Err.Number <> 0 Then
MsgBox ("Se ha producido un error" & vbNewLine & "Error número: " & Err.Number & vbNewLine & "Descripción: " & Err.Description)
End If
End Sub
- Ejecutamos la macro, escribimos el correo y presionamos el botón probar.
Envío de mensaje en Userform
Nos saldrá un mensaje como el que se muestra:
- Ir a la cuenta de correo de google y abrimos el mensaje, damos clic en Comprobar actividad:
- Damos clic en Si he sido yo.
- Presionamos en mas información
- Buscamos la opción acceso a aplicaciones poco seguras y habilitamos el permiso.
- Enviamos el correo nuevamente y nos saldrá el mensaje de enviado.
Es importante considerar los aspectos de seguridad, que nadie tenga acceso a su cuenta de correo mas que la aplicación y el que usa la aplicación.
Google nos sugiere por seguridad el uso de aplicaciones seguras, por lo que si no contamos con ellas, no compartir contraseñas o referencias de que estamos usando un correo para envío de mensajes y cambiar las contraseñas de manera periódica.
No hay comentarios.:
Publicar un comentario