Formato Texto en HTML con Define Mail.

Formato Texto en HTML con Define Mail.

Postby Garbi » Wed Dec 27, 2017 11:57 am

Ya sé que lo he preguntado alguna vez, pero los links que me habéis adjuntado no he conseguido nada.

Mi pregunta es usando: DEFINE MAIL ;
......................;
TEXT ctext.......

Al abrir el outlook para enviar el email me aparece como texto sin formato, como puedo hacer que la opción que escoga sea de tipo de formato el HTML.

Tengo un cliente que quiere que sea así y que no tenga que cambiarlo él, y si además se pudiera poner la firma por defecto que tiene el outlook en su parametros para enviar mensajes nuevos sería perfecto.

Estoy haciendo pruebas, pero no consigo que el outlook me haga caso.

No se si será pasando un parámetro <ctype> of the message lo hace o lo que tengo que hacer usando esta clase.

Muchas Gracias por vuestra ayuda.
Garbi
 
Posts: 213
Joined: Wed Nov 02, 2005 3:28 pm

Re: Formato Texto en HTML con Define Mail.

Postby Antonio Linares » Wed Dec 27, 2017 2:11 pm

Code: Select all  Expand view
  TRY
      oOutlook = GetActiveObject( "Outlook.Application" )
      lClose   = .F.
   CATCH
      TRY
         ShellExecute( ,"Open", "Outlook",,, 7 )
         oOutlook = CreateObject( "Outlook.Application" )
         lClose = .T.
      CATCH
         oOutlook = nil
      END
   END

   oMail = oOutlook:CreateItem( 0 )

   ...

   oMail:HtmlBody = cHTML
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35267
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Formato Texto en HTML con Define Mail.

Postby Antonio Linares » Wed Dec 27, 2017 2:13 pm

Busca por HtmlBody en estos foros y encontrarás muchos más ejemplos
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35267
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Formato Texto en HTML con Define Mail. Ayuda

Postby Garbi » Fri Dec 29, 2017 9:22 am

Hola Maestro,

Entiendo que si lo hago a través de abrir yo el outlook, si se puedo hacer fácilmente según tu ejemplo y lo que he visto en el foro.

Mi pregunta es si usando "DEFINE MAIL " del rpreview.prg se puede indicar que sea de formato HTML, no abriendo la apliación el outllook.

Puede que me lo hayas dicho y yo sea novato y no lo haya captado.

A veer si me explico un poco más, como le indico en este codigo que sea HTML, y si puede indicarle que coga la firma, ya coj.....do

Si pongo me da error : // oMail:HtmlBody = cHTML     ->  Error BASE/1003  No existe la variable: CHTML

Code: Select all  Expand view
METHOD SendEmail() CLASS TPreview

   local oMail, cName, cFile,
   ctext:= "   "




   cName := If( ::oReport != nil, ::oReport:cName, ::oDevice:cDocument )
*   cFile := cFilePath( ::oDevice:aMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ;
*            Left( HB_TToS( HB_DateTime() ), 14 ) + ".pdf"
   cFile := cFilePath( ::oDevice:aMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ".pdf"

   CursorWait()
   cFile := ::SaveAs( .t., cFile, .f. )
   CursorArrow()

   if ! File( cFile )
      MsgInfo( FWString( "PDF not saved to send Email" ), FWString( "Information" ) )
   elseif ::bEmail != nil
      Eval( ::bEmail, Self, cName, cFile )
   else

     if !empty(vmailpre)
      DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFile ;
         FROM USER;
         TO alltrim(vmailpre)

   else
         DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFile ;
         FROM USER
   endif

     // oMail:HtmlBody = cHTML     ->  Error BASE/1003  No existe la variable: CHTML


      ACTIVATE MAIL oMail

      // MsgInfo( oMail:nRetCode )  check the returned code!
   endif

   ::oMeta1:SetFocus()

return nil
Garbi
 
Posts: 213
Joined: Wed Nov 02, 2005 3:28 pm

Re: Formato Texto en HTML con Define Mail.

Postby Antonio Linares » Sat Dec 30, 2017 10:31 am

Prueba así:

oMail:HtmlBody = cText
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35267
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Formato Texto en HTML con Define Mail.

Postby Garbi » Sat Dec 30, 2017 10:46 am

Maestro me da el siguiente error :
Error description: Error BASE/1005 Message not found: TMAIL:_HTMLBODY
Args:
[ 1] = O TMAIL

Stack Calls
===========
Called from: => __ERRRT_SBASE(0)
Called from: ../../../tobject.prg => TMAIL:ERROR(0)
Called from: ../../../tobject.prg => (b)HBOBJECT(0)
Called from: ../../../tobject.prg => TMAIL:MSGNOTFOUND(0)
Called from: ../../../tobject.prg => TMAIL:_HTMLBODY(0)
Called from: .\rpreview.PRG => TPREVIEW:SENDEMAIL(0)
Called from: .\rpreview.PRG => (b)TPREVIEW_BUILDBUTTONBAR(0)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:CLICK(638)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP(872)
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1723)
Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT(1705)
Called from: .\source\classes\WINDOW.PRG => _FWH(3553)
Called from: => WINRUN(0)
Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(1020)
Called from: .\crman.PRG => MAIN(0)



No se si lo pongo en el siguiente correcto :

Code: Select all  Expand view
METHOD SendEmail() CLASS TPreview

   local oMail, cName, cFile
   local ctext:= "   "




   cName := If( ::oReport != nil, ::oReport:cName, ::oDevice:cDocument )
*   cFile := cFilePath( ::oDevice:aMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ;
*            Left( HB_TToS( HB_DateTime() ), 14 ) + ".pdf"
   cFile := cFilePath( ::oDevice:aMeta[ 1 ] ) + StrTran( cName, '.', '' ) + ".pdf"

   CursorWait()
   cFile := ::SaveAs( .t., cFile, .f. )
   CursorArrow()

   if ! File( cFile )
      MsgInfo( FWString( "PDF not saved to send Email" ), FWString( "Information" ) )
   elseif ::bEmail != nil
      Eval( ::bEmail, Self, cName, cFile )
   else
   if !empty(vmailpre)
      DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFile ;
         FROM USER;
         TO alltrim(vmailpre)

   else
         DEFINE MAIL oMail ;
         SUBJECT cName ;
         TEXT ctext ;
         FILES cFile, cFile ;
         FROM USER
   endif
   oMail:HtmlBody = ctext

      ACTIVATE MAIL oMail

      // MsgInfo( oMail:nRetCode )  check the returned code!
   endif

   ::oMeta1:SetFocus()

return nil
Garbi
 
Posts: 213
Joined: Wed Nov 02, 2005 3:28 pm

Re: Formato Texto en HTML con Define Mail.

Postby Garbi » Sat Dec 30, 2017 10:54 am

Hola me he dado cuenta de lo siguiente, sin cambio

local ctext:= " "

por local ctext o por local ctext:= ""

Si que activa el formato de HTML (sin usar oMail:HtmlBody = ctext) pero el problema es que cuando envio el email , ni en enviados ni el receptor aparece nada de texto

Espero haberme explicado.

Si no pongo fichero adjunto si que envía el texto. voy a seguir haciendo pruebas.
Garbi
 
Posts: 213
Joined: Wed Nov 02, 2005 3:28 pm

Re: Formato Texto en HTML con Define Mail.

Postby Garbi » Sat Dec 30, 2017 12:39 pm

Resumen :

Si asignado un valor a ctext := " ", el formato del correo se pone en formato sin texto , si no defino nada a ctext -> local ctext el formato si que es formato HMTL

Pero si adjunto fichero y el formato es en HTML, el correo se envia pero en el cuerpo del texto no aparece nada en enviados ni en el receptor tampoco recibe el texto, aunque si haya texto y no se como solucionarlo.

¿alguna idea?

Muchas Gracias
Garbi
 
Posts: 213
Joined: Wed Nov 02, 2005 3:28 pm

Re: Formato Texto en HTML con Define Mail.

Postby Antonio Linares » Sat Dec 30, 2017 7:57 pm

Jose Luis,

Me he confundido al responderte:

DEFINE MAIL está basado en MAPI y MAPI no soporta HTML:

https://support.microsoft.com/en-us/help/268440/info-mapi-is-not-suitable-for-html-messages

Tienes que usar un objeto Outlook como te he mostrado para poder usar HTML
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35267
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: karinha and 5 guests