Clipper On Line • Ver Tópico - Inserir uma imagem ao Corpo da Mensagem do Email

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

 

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 17 Jan 2016 18:05

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:
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.

#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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 17 Jan 2016 18:15

se a imagem for de uma URL:

cIm:='https://lh3.googleusercontent.com/-hKEPZr1m0UQ/VoJgF__dErI/AAAAAAAAA_A/PhW2yJu8oNM/s450-Ic42/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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 18 Jan 2016 07:40

O resultado é esse:
Screen Shot 01-18-16 at 08.39 AM.PNG
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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor fladimir » 18 Jan 2016 11:56

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 de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 18 Jan 2016 13:52

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

/*
* 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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor JoséQuintas » 18 Jan 2016 15:08

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

   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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 18 Jan 2016 15:23

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 18 Jan 2016 18:26

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor JoséQuintas » 18 Jan 2016 21:20

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.

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


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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 19 Jan 2016 06:21

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor JoséQuintas » 19 Jan 2016 07:43

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 19 Jan 2016 07:50

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 19 Jan 2016 08:02

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor asimoes » 19 Jan 2016 08:20

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 de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Inserir uma imagem ao Corpo da Mensagem do Email

Mensagempor JoséQuintas » 19 Jan 2016 10:28

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

Vamos lá, pegando dos seus posts anteriores:

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


e pegando o que postei:

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...

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á

cFileContent := Memoread( "imagem.jpg" )
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Próximo



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 21 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro