FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Mandar mensajes con GMAIL, caracteres especiales
Posts: 230
Joined: Sat Apr 19, 2008 10:28 PM
Mandar mensajes con GMAIL, caracteres especiales
Posted: Wed Jan 01, 2014 04:33 PM
Hola,

Estoy usando esta función que encontré en este foro para mandar mensajes por Gmail y funciona perfectamente

Code (fw): Select all Collapse
cHtml:='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'
cHtml+='<HTML><HEAD>'
cHtml+='<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>'
cHtml+='<META name=GENERATOR content="MSHTML 8.00.6001.18783">'
cHtml+='<STYLE></STYLE>'
cHtml+='</HEAD>'
cHtml+='<BODY bgColor=#ffffff>'
cHtml+='<DIV><FONT size=2 face=Arial>'+cTexto +'</FONT></DIV></BODY></HTML>'

TRY
  oEmailCfg := CREATEOBJECT( "CDO.Configuration" )
  WITH OBJECT oEmailCfg:Fields
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserver" ):Value := "smtp.gmail.com"
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpserverport" ):Value := 465
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendusing" ):Value := 2   // Remote SMTP = 2, local = 1
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ):Value := .T.
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpusessl" ):Value := .T.
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendusername" ):Value := user  // AllTrim(oApli:cMailServer)
     :Item( "http://schemas.microsoft.com/cdo/configuration/sendpassword" ):Value := pass // AllTrim(oApli:cMailPass )
     :Item( "http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"):Value := 30
     :Update()
  END WITH
CATCH oError
  MsgInfo( "No se ha enviado el " + ";"  + ;
         "Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + ;
         "SubC: " + TRANSFORM(oError:SubCode, NIL) + ";" + ;
         "OSCode: " + TRANSFORM(oError:OsCode, NIL) + ";" + ;
         "SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" + ;
         "Message: " + oError:Description )
END
oError:=NIL

TRY
    oEmailMsg := CREATEOBJECT ( "CDO.Message" )
    WITH OBJECT oEmailMsg
        :Configuration = oEmailCfg
        :From = chr(34)+user_name+chr(34)+ "<"+remite+">"    // lo que quieras que aparezca en el mensaje
        :To = cDestino
        :Subject = cAsunto
        :MDNRequested = .T.
        :TextBody = cTexto
       // :HTMLBody = cHtml
        if !Empty(cAdjunto)
           :AddAttachment(cAdjunto)
        endif
    END WITH
    oEmailMsg:Send()
CATCH oError
    MsgInfo("No se ha enviado el mensaje" + ";"  + CRLF+ ;
            "Error: " + TRANSFORM(oError:GenCode, NIL) + ";" + CRLF+;
            "SubC: "  + TRANSFORM(oError:SubCode, NIL) + ";" + CRLF+ ;
            "OSCode: "+ TRANSFORM(oError:OsCode, NIL) + ";" + CRLF +;
            "SubSystem: " + TRANSFORM(oError:SubSystem, NIL) + ";" +CRLF+ ;
            "Message: " + oError:Description )
 END

return nil


El problema es que en el texto del mensaje las vocales acentuadas aparecen como caracteres raros. ¿Hay alguna función para convertir una cadena de texto al formato que usa gmail? He probado a convertira al utf8 pero siguen apareciendo mal cuando se recibe el mensaje.

Muchas gracias,
Alvaro

Continue the discussion