14 de marzo de 2009

Envío de correo electrónico por el servidor SMTP de Windows Live Hotmail

Actualmente Windows Live Hotmail habilitó el acceso POP3 y SMTP en todas las cuentas de correos de Hotmail.


Está publicado el artículo Envío de correo electrónico por el servidor SMTP de Gmail del cual partiremos y solo cambiaremos las configuraciones necesarias que son:
  • Nombre de usuario: El nombre de tu Windows Live ID, (Ejemplo: usuario@hotmail.com)
  • Contraseña: La contraseña de tu cuenta Windows Live
  • Servidor SMTP: smtp.live.com
  • Puerto SMTP: 25
  • Autenticación requerida: Si
  • Cifrado TLS/SSL requerido: Si
Para los que quieren saber los datos del servidor POP3 de Windows Live Mail, no necesarios para este artículo:
  • Servidor POP3: pop3.live.com
  • Puerto POP3: 995
  • POP3 SSL requerido: Si
El siguiente es el código modificado que nos permite el envió de correo electrónico a través del servidor SMTP de Windows Live Hotmail.
TRY
  LOCAL lcSchema, loConfig, loMsg, loError, lcErr
  lcErr = ""
  lcSchema = "http://schemas.microsoft.com/cdo/configuration/"
  loConfig = CREATEOBJECT("CDO.Configuration")
  WITH loConfig.FIELDS
    .ITEM(lcSchema + "smtpserver") = "smtp.live.com"
    .ITEM(lcSchema + "smtpserverport") = 25
    .ITEM(lcSchema + "sendusing") = 2
    .ITEM(lcSchema + "smtpauthenticate") = .T. 
    .ITEM(lcSchema + "smtpusessl") = .T.
    .ITEM(lcSchema + "sendusername") = "miusuario@hotmail.com"
    .ITEM(lcSchema + "sendpassword") = "micontrasenia"
    .UPDATE
  ENDWITH
  loMsg = CREATEOBJECT ("CDO.Message")
  WITH loMsg
    .Configuration = loConfig
    .FROM = "Usuario Hotmail <miusuario@hotmail.com>"
    .TO = "usuario@gmail.com"
    .Subject = "Prueba desde Windows Live Hotmail"
    .TextBody = "Este es un mensaje de prueba con CDO con " + ;
      "autenticación y cifrado SSL desde Windows Live Hotmail."
    .Send()
  ENDWITH
CATCH TO loError
  lcErr = [Error: ] + STR(loError.ERRORNO) + CHR(13) + ;
    [Linea: ] + STR(loError.LINENO) + CHR(13) + ;
    [Mensaje: ] + loError.MESSAGE
FINALLY
  RELEASE loConfig, loMsg
  STORE .NULL. TO loConfig, loMsg
  IF EMPTY(lcErr)
    MESSAGEBOX("El mensaje se envió con éxito", 64, "Aviso")
  ELSE
    MESSAGEBOX(lcErr, 16 , "Error")
  ENDIF
ENDTRY
Para conocer muchas mas opciones que nos brinda CDO para el envío de correos electrónicos desde VFP, podemos ver el siguiente artículo: Mas sobre el envio de mensajes de correo electrónico desde Visual FoxPro

Hasta la próxima,

Luis María

2 comentarios :

  1. Respuestas
    1. hola soy hugo, se que este hilo es viejo pero he usado este metodo con gmail desde hace mucho tiempo perfecto, ahora gmail anula la opcion de aplicaciones no seguras y ya no funciona , alguien lo usa con yahoo, me pueden indicar el puerto por favor, gracias

      Borrar

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.