Inserir uma imagem ao Corpo da Mensagem do Email

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

A dica é a seguinte:

Incluir uma imagem na mensagem do email usando o objeto CDO.Message
Na função Envia_Mail que é chamada dentro da Envia_Email, procurem por AddRelatedBodyPart

O nome da imagem tem que ser o mesmo definido na variável cImagem e no método AddRelatedBodyPart

O teste:

Código: Selecionar todos

AzulHTML     := '<span style="color:#0000FF">'
VermelhoHTML := '<span style="color:#FF0000">'
QuebraHTML   := "<br>"
cImagem:='<img src="asaprev1.jpg" alt="Monitor AsaPrev">'

cMensagem:=AzulHTML    +"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+hb_DtoC(Date(),"DD/MM/YYYY")+QuebraHTML+;
                   VermelhoHTML+"Feito pelo Monitor AsaPrev."+QuebraHTML+;
                   cImagem
                          
Envia_Email({hb_DirBase()+"ASAPREV.NEW"},,cMensagem,.F.) //Envia email para mim informando que foi feito a atualização.

A função que eu envio email é esta:
Modifiquei algumas informações por motivo de segurança.

Código: Selecionar todos

#include "error.ch"
#include "fileio.ch"

FUNCTION Envia_Email(aArquivo, cAssunto, cMensagem, lInformaEnvio)

LOCAL lOk := .T.

   hb_Default(@aArquivo, {})
   hb_Default(@cAssunto, "Log de atualiza‡Æo de sistema em: "+hb_DtoC(Date(),"DD/MM/YYYY"))
   hb_Default(@cMensagem, "Log de erro de sistema em: "+hb_DtoC(Date(),"DD/MM/YYYY"))
   hb_Default(@lInformaEnvio, .T.)
   
   aFiles    := aArquivo // pode ser uma matriz com vários endereços
   cSubject  := cAssunto
   aQuem     := "Alexandre Simäes <asimoesluz@gmail.com>"
   cMsg      := cMensagem
   cServerIp := "smtp.gmail.com" // servidor smtp
   cFrom     := "Sistema AsaPrev <xhbsistemas@gmail.com>"
   cUser     := "xhbsistemas@gmail.com" 
   cPass     := "senha"
   vPORTSMTP := 465 
   aCC       := "Alexandre Simäes <a_1964_luz@yahoo.com.br>" // caracteres entre aspas
   aBCC      := "" // caracteres entre aspas
   lConf     := .F.
   lSSL      := .T.
   
   lOk := Config_Mail(aFiles,;
                      cSubject,;
                      aQuem,;
                      cMsg,;
                      cServerIp,;
                      cFrom,;
                      cUser,;
                      cPass,;
                      vPORTSMTP,;
                      aCC,;
                      aBCC,;
                      lConf,;
                      lSSL,;
                      lInformaEnvio)

RETURN lOk

FUNCTION Config_Mail(aFiles, cSubject, aQuem, cMsg, cServerIp, cFrom, cUser, cPass, vPORTSMTP, aCC, aBCC, lConf, lSSL, lInformaEnvio)
LOCAL lRet
LOCAL oCfg, oErroMail
LOCAL lAut:=.T. //cdpar000->mauth
   hb_Default(@lInformaEnvio, .T.)
   TRY
      oCfg := WIN_OleCreateObject( "CDO.Configuration" )
      WITH OBJECT oCfg:Fields
           :Item("http://schemas.microsoft.com/cdo/configuration/smtpserver"):Value:= cServerIp
           :Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport"):Value:= vPORTSMTP
           :Item("http://schemas.microsoft.com/cdo/configuration/sendusing"):Value:= 2
           :Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value:= lAut
           :Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl"):Value:= lSSL
           :Item("http://schemas.microsoft.com/cdo/configuration/sendusername"):Value:= AllTrim(cUser)
           :Item("http://schemas.microsoft.com/cdo/configuration/sendpassword"):Value:= AllTrim(cPass)
           :Update()
      END WITH
      lRet:=.T.
   CATCH oErroMail
      IF lInformaEnvio
         hwg_MsgStop("Não foi possível enviar o e-mail!"                       +hb_EOL()+ ;
                     "Error: "     + Transform(oErroMail:GenCode,   nil) + ";" +hb_EOL()+ ;
                     "SubC: "      + Transform(oErroMail:SubCode,   nil) + ";" +hb_EOL()+ ;
                     "OSCode: "    + Transform(oErroMail:OsCode,    nil) + ";" +hb_EOL()+ ;
                     "SubSystem: " + Transform(oErroMail:SubSystem, nil) + ";" +hb_EOL()+ ;
                     "Mensagem: "  + oErroMail:Description, "Atenção",150,10000,2,.T.)
      ENDIF
      lRet := .F.
   END
   //--> FIM DAS CONFIGURAÇOES.
   IF lRet
      lRet := Envia_Mail(oCfg,;
                         cFrom,;
                         aQuem,;
                         aFiles,;
                         cSubject,;
                         cMsg,;
                         aCC,;
                         aBCC,;
                         lConf,;
                         lAut,;
                         lSSL,;
                         cServerIp,;
                         lInformaEnvio)
   ENDIF
RETURN lRet

FUNCTION Envia_Mail(oCfg, cFrom, cDest, aFiles, cSubject, cMsg, aCC, aBCC, vEmaiL_Conf, lAut, lSSL, cServerIp, lInformaEnvio)
LOCAL aTo
LOCAL lRet
LOCAL nEle, oErroMail

  hb_Default(@lInformaEnvio, .T.)

  aTo:= { cDest } //--> PARA
  
  nEle := 1

   FOR I:=1 TO Len(aTo)
      TRY
         IF lInformaEnvio
            MsgTroca("Aguarde, processando o envio do email.")
         ENDIF
         oMsg := WIN_OleCreateObject( "CDO.Message" )
         
         WITH OBJECT oMsg
              :Configuration = oCfg
              :From = cFrom
              :To = aTo[i]
              :Cc = aCC
              :BCC = aBCC
              :Subject = cSubject
              :AddRelatedBodyPart(hb_DirBase()+"img\asaprev1.jpg","asaprev1.jpg",1)
              :Fields:Item("urn:schemas:mailheader:Content-ID"):Value = "<asaprev1.jpg>"
              :Fields:Item("urn:schemas:mailheader:Content-Disposition"):Value = "inline"
              :Fields:Update()
              :HTMLBody = cMsg 
                 
              FOR X := 1 TO Len( aFiles )
                 :AddAttachment(AllTrim(aFiles[x]))
                 hwg_DoEvents()
              NEXT
              :Fields("urn:schemas:mailheader:disposition-notification-to"):Value := cFrom
              :Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"):Value := lAut
              :Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl"):Value := lSSL
              :Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver"):Value := cServerIp
              :Fields:update()
              :Send()
               hwg_DoEvents()
         END WITH
         IF lInformaEnvio
            MsgFim()
            hwg_MsgInfo("E-mail enviado com sucesso", "Atenção")
         ENDIF
         lRet:=.T.
      CATCH oErroMail
         IF lInformaEnvio
            MsgFim()
            hwg_MsgStop("Não foi possível enviar a mensagem: "+cSubject+hb_EOL()+;
                        "para o email: " + aTo[i]+"."                  +hb_EOL()+;
                        "Erro: " +oErroMail:Description , "Atenção")
         ENDIF
         lRet:=.F.
      END
   NEXT
   
   oCfg := Nil
   oMsg := Nil

RETURN lRet
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

se a imagem for de uma URL:

cIm:='https://lh3.googleusercontent.com/-hKEP ... anigif.gif'

cImagem:='<p><IMG SRC="&cIm" alt="Logo"></p>'

cMensagem:=AzulHTML +"Log de confirma‡Æo de atualiza‡Æo de sistema em: "+hb_DtoC(Date(),"DD/MM/YYYY")+QuebraHTML+;
VermelhoHTML+"Feito pelo Monitor AsaPrev."+QuebraHTML + cImagem
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

O resultado é esse:
Imagem no Email
Imagem no Email
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por fladimir »

Aí sim hein ASIMOES....

Vou testar...

Vlw.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Agora o exemplo usando tip_MailSend() (*)

(*) Estes exemplos foram testados com Harbour 3.4

Precisa ter estas dll´s na pasta do executável:

libeay32.dll
msvcr120.dll
ssleay32.dll

Precisa das libs:
hbssl.hbc
hbtip.hbc

Código: Selecionar todos

/*
 * Copyright 2009 Viktor Szakats (vszakats.net/harbour)
 * www - http://harbour-project.org
 *
 * Gmail work with ssl on port 465 and with tls on port 587
 * tls mode is fully automatic and require that ssl must be disabled at first (We will activate it on request after STARTTLS command)
 */
#include "hbcompat.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "hbdyn.ch"
#include "simpleio.ch"

#require "hbssl"
#require "hbtip"

#if ! defined( __HBSCRIPT__HBSHELL )
   REQUEST __HBEXTERN__HBSSL__
#endif

PROCEDURE Main( cUser, cPassword, cAlias, cFrom, cTo, cCC, cHost )

LOCAL nPort
PUBLIC AzulHTML    :='<span style="color:#0000FF">'
PUBLIC VermelhoHTML:='<span style="color:#FF0000">'
PUBLIC QuebraHTML  :="<br>"

 hb_default( @cUser , "usuario")
 hb_default( @cPassword, "senha" )
 hb_default( @cAlias , "Seu Apelido" )
 hb_default( @cFrom , "seuemail@gmail.com")
 hb_default( @cTo , {"emaildestino@gmail.com"} )
 hb_default( @cCC , "comcopia@gmail.com" )
 hb_default( @cHost , "smtp.gmail.com" )
 
 cHost := Lower( cHost )

 IF ! tip_SSL()
    hwg_MsgInfo("Error: Requires SSL support")
    RETURN
 ENDIF

 cIm := 'https://lh3.googleusercontent.com/-lJ9SOHOjv1Y/Vp0QG_sXorI/AAAAAAAABBs/PW7a4aIYjz8/s574-Ic42/screenshot.png'
 // 
 cImagem:= '<p><IMG SRC="&cIm" alt="Logo"></p>'
 cBody  := "<strong>"+AzulHTML   +"Log de confirma‡Æo de envio de email em: "+HB_DtoC(Date(),"DD/MM/YYYY") +;
            QuebraHTML+;
            VermelhoHTML+"Feito pelo pelo harbour."+"</strong>" +;
            QuebraHTML +;
            QuebraHTML +;
            "VersÆo: "+Version()+" "+hb_compiler() +;
            QuebraHTML +;
            cImagem + ;
            QuebraHTML
                  
 cBodyTemp   := hb_GetEnv("TEMP")+hb_PS()+"BODY.HTML"
 nFileHandle := fCreate(cBodyTemp)
                fWrite(nFileHandle,cBody)
                fClose(nFileHandle)
 
 cSubJect  := "Assunto do email - MINGW - "+Version()+" "+hb_Compiler()     
 aAnexo    := {hb_DirBase()+"teste.txt"} 
 nPriority := 3 //1=Alto, 3=Normal (padrão), 5=Low
 cAlias    := cAlias +" <"+cFrom+"> "
 lRead     := .T.
 nPorta    := 465
 lSSL      := (nPorta==465)
 
 lRet  := tip_MailSend(cHost, ;
                       465, ;
                       cAlias, ;
                       cTo, ;
                       cCC, ;
                       {} , ;
                       cBodyTemp , ;
                       cSubJect , ;
                       aAnexo , ;
                       cUser, ;
                       cPassword, ;
                       "", ;
                       nPriority , ;
                       lRead , ;
                       .F. , ;
                       .F., ;
                       10 , ;
                       NIL , ;
                       .T. , ;
                       lSSL )
          
    If lRet
       hwg_Msginfo("email enviado")
    Else
       hwg_Msgexclamation("Falha enviando email")
    EndIf
 
RETURN


INIT FUNCTION AppSetup()
  
  ANNOUNCE hwg_ErrSys
  
  REQUEST HB_LANG_PT
  REQUEST HB_CODEPAGE_PT850
  HB_LANGSELECT("PT")
  HB_CDPSELECT( "PT850" ) 
  
  SETMODE(25,80)
 
  SetColor("W+/B")
  
  CLS
 
  SetColor("W+/B")
  
  IniciaJanela()
 

RETURN Nil 
 

FUNCTION IniciaJanela(nLi,nCi,nLf,nCf)
 
LOCAL oCrt
   HB_Default(@nLi,0)
   HB_Default(@nCi,0)
   HB_Default(@nLf,MaxRow())
   HB_Default(@nCf,MaxCol())
  
   
   cTituloJanela:="Teste envio de Email - "+Version()+" "+hb_Compiler()
   
   HB_gtInfo(HB_GTI_FONTNAME, "Lucida Console")
   HB_gtInfo(HB_GTI_WINTITLE, cTituloJanela)
   HB_gtInfo(HB_GTI_ICONFILE, "" )
   HB_gtInfo(HB_GTI_CLOSABLE, .F. )
   HB_gtInfo(HB_GTI_ISGRAPHIC, .T. )
   HB_gtInfo(HB_GTI_STDERRCON, .T. )
   HB_gtInfo(HB_GTI_COMPATBUFFER, .T. ) 
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_WNDSTATE, HB_GTS_WS_MAXIMIZED )
   HB_gtInfo(HB_GTI_SPEC, HB_GTS_SHOWWINDOW, SW_NORMAL )
   HB_GtInfo( HB_GTI_MAXIMIZED, .T. )
    
RETURN Nil
 
FUNCTION HB_GTSYS()
   REQUEST HB_GT_WVT_DEFAULT
   REQUEST HB_GT_WVT
   REQUEST HB_GT_WGU
   REQUEST HB_GT_WVG
RETURN Nil 
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por JoséQuintas »

Se der uma olhada na hbtip vai conseguir fazer melhor, e verdadeiramente embutir a imagem no html.

Código: Selecionar todos

   cHtml := ["] + "data:" + tip_FileNameMimeType( "any.jpg", cName, cName ) + ";base64," + oEncoder:Encode( cFileContent ) + ["]
email.png
Pequena correção/informação:
Essas DLLs não tem nada a ver com a imagem.
Elas tem a ver com o tipo de autenticação do servidor de email.
Não tenho nenhuma delas instalada em nenhum lugar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Quintas,

Tem como você postar um exemplo completo? assim fica dificil entender. desculpa ai o velinho.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Corrigindo:

Basta: libeay32.dll
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por JoséQuintas »

Dependendo da conta de email, não precisa nada.

Sobre a imagem:

TUDO que está no email usa a rotina de conversão da hbtip.
Eu só olhei como a hbtip faz, e fiz igual.

Código: Selecionar todos

      cHtmlText += [ <img src=] + HtmlEncodeJPEG( ::cLogotipoContent ) + [ width="150" height="75">]

Código: Selecionar todos

FUNCTION HtmlEncodeJPEG( cFileContent )

   LOCAL cTxt, oEncoder := TipEncoderBase64():New()

   cTxt := ["] + "data:" + tip_FileNameMimeType( "ptprapqp.jpg",  "ptprapqp", "ptprapqp" ) + ";base64," + oEncoder:Encode( cFileContent ) + ["]
   RETURN cTxt
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Quintas,

Estamos falando do harbour 3.4

Dos fontes que estão na pasta contrib\hbtip\tests

Qual destes fontes funcionam com o seu exemplo:

tipmail.prg
tipmmail.prg
gmail.prg
email.prg

Email e GMail precisam de SSL e exigem a dll libeay32.dll para funcionar.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por JoséQuintas »

Não faço a menor idéia do que esses fontes tem.
Mas se prestou atenção na rotina, não faz diferença.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Quintas,

2 peguntas:

1- Qual a função de envio de email do harbour você usa?
2- O que é ::cLogotipoContent, é um arquivo?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Quintas,

Tentei aqui o seu exemplo mas nada aconteceu aparece um quadrado sem imagem.

Obs.: estou usando os objetos CDO.Configuration e CDO.Message
Screen Shot 01-19-16 at 08.59 AM.PNG
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por asimoes »

Tentei tip_MailSend também não funcionou.

Deixa pra lá, vou continuar no meu método lusitano.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagem por JoséQuintas »

Bom sinal, pelo menos o espaço da imagem está reservado.

Vamos lá, pegando dos seus posts anteriores:

Código: Selecionar todos

cImagem:='<IMG SRC="&cIm" alt="Logo">'
e pegando o que postei:

Código: Selecionar todos

cHtmlText += [ <img src=] + HtmlEncodeJPEG( ::cLogotipoContent ) + [ width="150" height="75">]
Usam a mesma coisa, portanto vão funcionar com o mesmo esquema de envio de email.
É só trocar uma coisa por outra, ok, essa parte não tem porque ter dúvida.


Agora vamos à função, tem pouca coisa...

Código: Selecionar todos

FUNCTION HtmlEncodeJPEG( cFileContent )
 LOCAL cTxt, oEncoder := TipEncoderBase64():New()
 cTxt := ["] + "data:" + tip_FileNameMimeType( "ptprapqp.jpg", "ptprapqp", "ptprapqp" ) + ";base64," + oEncoder:Encode( cFileContent ) + ["]
 RETURN cTxt

Vamos ver...
Pelo nome, recebe uma imagem jpeg.
Mas e aquele nome "ptprapqp.jpg"? Porque não cFileName no parâmetro da função?
Então não tem a ver com o nome de arquivo....

FileContent, isso não deve ser arquivo feliz e contente.....
O que é content? ..... conteúdo....
Ah.... então só pode ser o conteúdo do arquivo.

Então vamos testar isto pra ver o que dá

Código: Selecionar todos

cFileContent := Memoread( "imagem.jpg" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder