Jump to content
Fivewin Brasil

Imagem no corpo do email


jfaguiar

Recommended Posts

Olá, esta resposta existia no forum antigo, mas... excafedeu-se. Ou então, a busca deste forum não está funcionando, pois não achei a resposta, mas q existe, existe!!

 

Entre em contato com o Evandro via email, msn, sinal de fumaça ou tambor, que ele sabe a resposta, ou aguarde ele entrar.

 

abs,

Link to comment
Share on other sites

Encerrando assunto:

 

 

FUNCTION Envia_Mail( oCfg,cFROM, cTo, cCC, cBCC, cMsg, cSubject )
 
  LOCAL cToken
  LOCAL lRet := .F.
 
  PUBLIC lNewAnexoVemdaNFe
 
  cTo   := Destinatarios( cTo )  //-> PARA
  cCC   := Destinatarios( cCC )  //-> COM COPIA
  cBCC  := Destinatarios( cBCC ) //-> COM COPIA OCULTA
 
  TRY
     oMsg := CREATEOBJECT ( "CDO.Message" )
 
     WITH OBJECT oMsg
 
          :Configuration = oCfg
          :FROM = cFROM
          :To = cTo
          :CC = cCC
          :BCC = cBCC
 
          :Subject = cSubject
          :TextBody = cMsg
 
          IF lNewAnexoVemdaNFe  // VEM DA NF-E, ENVIAR EMAIL +- LINHA 14192/200
 
             FOR x := 1 To Len( NewAnexo )  // Anexos dos Email aqui - NF-e
 
                SYSREFRESH()
 
                IF NewAnexo[x] <> NIL
                   :AddAttachment(ALLTRIM(NewAnexo[x]))
                ENDIF
 
             NEXT
 
             // Para Incorporar uma imagem no corpo do email.
             :HTMLBody = "<p><img src='cid:id_imagen10'></p>" +"<p>A Imagem Acima Esta Incorporada a Mensajem.</p>"
 
             loBP:=:AddRelatedBodyPart("c:\plenocbx\silco.bmp", "id_imagen10", 1)
 
             WITH OBJECT loBP:Fields
                :Item("urn:schemas:mailheader:Content-ID") = "id_imagen10"
                :Update()
             END WITH
 
          ELSE // VEM DAQUI MESMO - RMAIL.PRG - INICIO
 
             FOR x := 1 To Len( aAttach )  // Anexos dos Email aqui - LOCAL
 
                SYSREFRESH()
 
                IF aAttach[x] <> NIL
                   :AddAttachment(ALLTRIM(aAttach[x]))
                ENDIF
 
             NEXT
 
             // Para Incorporar uma imagem no corpo do email.
             :HTMLBody = "<p><img src='cid:id_imagen10'></p>" +"<p>A Imagem Acima Esta Incorporada a Mensajem.</p>"
 
             loBP:=:AddRelatedBodyPart("c:\plenocbx\silco.bmp", "id_imagen10", 1)
 
             WITH OBJECT loBP:Fields
                :Item("urn:schemas:mailheader:Content-ID") = "id_imagen10"
                :Update()
             END WITH
 
          ENDIF
 
          :Send()
 
     END WITH
 
     lRet := .T.
 
   CATCH
 
      IF lVemdeVariosEmails .AND. ; // := .F. // Para Checar Status do Email se Errado
         lTemEmaiLErrado            // := .F.
 
         MsgStop( OemToAnsi( "ATENۂO USUµRIO:                      " )+CRLF+;
                  OemToAnsi( "O PROGRAMA Jµ NÇO AVISOU QUE TEM EMAIL" )+CRLF+;
                  OemToAnsi( "ERRADO NO CADASTRO DE CLIENTES?       " )+CRLF+;
                  OemToAnsi( "RETORNE PARA A LISTBOX DOS EMAILS E   " )+CRLF+;
                  OemToAnsi( "ANOTE OS CLIENTES COM EMAILS ERRADOS. " )+CRLF+;
                  OemToAnsi( "SAIA DA NOTA FISCAL ELETRâNICA E ENTRE" )+CRLF+;
                  OemToAnsi( "NO PLENO E CORRIJA OS EMAILS COM ERRO." )+CRLF+;
                  OemToAnsi( "PARA IMPRIMIR UMA LISTAGEM DOS EMAILS " )+CRLF+;
                  OemToAnsi( "DOS CLIENTES, ENTRE NO BOTÇO:         " )+CRLF+;
                  OemToAnsi( "<Alterar Email do Cliente> e Imprima. " ),     ;
                  OemToAnsi( "Cadastro de Clientes Com Email Errado." ) )
 
      ELSE
 
         MsgInfo( "Não Foi Possível Enviar o E-Mail. ERRO! "+CRLF+ ;
                  "Verifique o Remetente.                  "+CRLF+ ;
                  "Verifique o Destinatário.               "+CRLF+ ;
                  "Verifique o Nº. da Porta do Servidor.   "+CRLF+ ;
                  "Se o Provedor For gmail, a Porta a Ser  "+CRLF+ ;
                  "Usada: Use a Porta 465 Para gmail.com.  "+CRLF+ ;
                  "Verifique se o Provedor é Https.        "+CRLF+ ;
                  "Verifique a Sua Senha do Email.         "+CRLF+ ;
                  "Sua Senha Tem Que Ser Igual a Senha     "+CRLF+ ;
                  "Que Esta Cadastrada no Provedor.        "+CRLF+ ;
                  "Se Trocaram a Sua Senha no Provedor:    "+CRLF+ ;
                  "Botão:                                  "+CRLF+ ;
                  "<Configurar/Enviar Email(s)>            "+CRLF+ ;
                  "<Ferramentas> / <Provedores> / <Alterar>"+CRLF+ ;
                  "Cadastre a Senha Igual a do Provedor.   ",      ;
                  "Não Foi Possível Enviar a Mensagem...   " )
 
      ENDIF
 
      lRet := .F.
 
   END
 
RETURN( lRet )
Link to comment
Share on other sites

Exemplo em foxpró final quase igual a fivewin.

 


LOCAL loCfg, loMsg, lcFile, loErr
TRY
  loCfg = CREATEOBJECT("CDO.Configuration")
  WITH loCfg.Fields
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 && ó 587
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = .T.
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = .T.
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "josefox@gmail.com"
    .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
    .Update
  ENDWITH
  loMsg = CREATEOBJECT ("CDO.Message")
  WITH loMsg
    .Configuration = loCfg
    *-- Remitenete y destinatarios
    .From = "Jose Fox <josefox@gmail.com>"
    .To = "Usuario Uno <user1@gmail.com>"
    .Cc = "Usuario Dos <user2@gmail.com>"
    *- Notificación de lectura
    .Fields("urn:schemas:mailheader:disposition-notification-to") = .From
    .Fields("urn:schemas:mailheader:return-receipt-to") = .From
    .Fields.Update
    *-- Tema
    .Subject = "Ejemplo del " + TTOC(DATETIME())
    *-- Formato HTML desde la Web
    .CreateMHTMLBody("http://www.portalfox.com/articulos/archivos/correo.htm", 0)
    *-- Archivo adjunto
    lcFile = GETFILE()
    IF NOT EMPTY(lcFile)
      .AddAttachment(lcFile)
    ENDIF
    *-- Envio el mensaje
    .Send()
  ENDWITH
CATCH TO loErr 
  MESSAGEBOX("No se pudo enviar el mensaje" + CHR(13) + ;
    "Error: " + TRANSFORM(loErr.ErrorNo) + CHR(13) + ;
    "Mensaje: " + loErr.Message , 16, "Error")
FINALLY
  loMsg = NULL
  loCfg = NULL
ENDTRY 

Link to comment
Share on other sites


          /*
          Solicitando confirmación de lectura
 
          WITH loMsg
         .From = "user@mail.com"
         .Fields("urn:schemas:mailheader:disposition-notification-to") = .From
         .Fields("urn:schemas:mailheader:return-receipt-to") = .From
         .Fields.Update
          ENDWITH
          */
 
         :Fields("urn:schemas:mailheader:disposition-notification-to") = :FROM
         :Fields("urn:schemas:mailheader:return-receipt-to")           = :FROM

 

Galera ajuda ahi:

 

Nao da erro, mas nao me pede a confirmacao do email, o que esta errado?

Link to comment
Share on other sites

  • 1 month later...

Encerrando assunto:

 

 

FUNCTION Envia_Mail( oCfg,cFROM, cTo, cCC, cBCC, cMsg, cSubject )
 
  LOCAL cToken
  LOCAL lRet := .F.
 
  PUBLIC lNewAnexoVemdaNFe
 
  cTo   := Destinatarios( cTo )  //-> PARA
  cCC   := Destinatarios( cCC )  //-> COM COPIA
  cBCC  := Destinatarios( cBCC ) //-> COM COPIA OCULTA
 
  TRY
     oMsg := CREATEOBJECT ( "CDO.Message" )
 
     WITH OBJECT oMsg
 
          :Configuration = oCfg
          :FROM = cFROM
          :To = cTo
          :CC = cCC
          :BCC = cBCC
 
          :Subject = cSubject
          :TextBody = cMsg
 
          IF lNewAnexoVemdaNFe  // VEM DA NF-E, ENVIAR EMAIL +- LINHA 14192/200
 
             FOR x := 1 To Len( NewAnexo )  // Anexos dos Email aqui - NF-e
 
                SYSREFRESH()
 
                IF NewAnexo[x] <> NIL
                   :AddAttachment(ALLTRIM(NewAnexo[x]))
                ENDIF
 
             NEXT
 
             // Para Incorporar uma imagem no corpo do email.
             :HTMLBody = "<p><img src='cid:id_imagen10'></p>" +"<p>A Imagem Acima Esta Incorporada a Mensajem.</p>"
 
             loBP:=:AddRelatedBodyPart("c:\plenocbx\silco.bmp", "id_imagen10", 1)
 
             WITH OBJECT loBP:Fields
                :Item("urn:schemas:mailheader:Content-ID") = "id_imagen10"
                :Update()
             END WITH
 
          ELSE // VEM DAQUI MESMO - RMAIL.PRG - INICIO
 
             FOR x := 1 To Len( aAttach )  // Anexos dos Email aqui - LOCAL
 
                SYSREFRESH()
 
                IF aAttach[x] <> NIL
                   :AddAttachment(ALLTRIM(aAttach[x]))
                ENDIF
 
             NEXT
 
             // Para Incorporar uma imagem no corpo do email.
             :HTMLBody = "<p><img src='cid:id_imagen10'></p>" +"<p>A Imagem Acima Esta Incorporada a Mensajem.</p>"
 
             loBP:=:AddRelatedBodyPart("c:\plenocbx\silco.bmp", "id_imagen10", 1)
 
             WITH OBJECT loBP:Fields
                :Item("urn:schemas:mailheader:Content-ID") = "id_imagen10"
                :Update()
             END WITH
 
          ENDIF
 
          :Send()
 
     END WITH
 
     lRet := .T.
 
   CATCH
 
      IF lVemdeVariosEmails .AND. ; // := .F. // Para Checar Status do Email se Errado
         lTemEmaiLErrado            // := .F.
 
         MsgStop( OemToAnsi( "ATENۂO USUµRIO:                      " )+CRLF+;
                  OemToAnsi( "O PROGRAMA Jµ NÇO AVISOU QUE TEM EMAIL" )+CRLF+;
                  OemToAnsi( "ERRADO NO CADASTRO DE CLIENTES?       " )+CRLF+;
                  OemToAnsi( "RETORNE PARA A LISTBOX DOS EMAILS E   " )+CRLF+;
                  OemToAnsi( "ANOTE OS CLIENTES COM EMAILS ERRADOS. " )+CRLF+;
                  OemToAnsi( "SAIA DA NOTA FISCAL ELETRâNICA E ENTRE" )+CRLF+;
                  OemToAnsi( "NO PLENO E CORRIJA OS EMAILS COM ERRO." )+CRLF+;
                  OemToAnsi( "PARA IMPRIMIR UMA LISTAGEM DOS EMAILS " )+CRLF+;
                  OemToAnsi( "DOS CLIENTES, ENTRE NO BOTÇO:         " )+CRLF+;
                  OemToAnsi( "<Alterar Email do Cliente> e Imprima. " ),     ;
                  OemToAnsi( "Cadastro de Clientes Com Email Errado." ) )
 
      ELSE
 
         MsgInfo( "Não Foi Possível Enviar o E-Mail. ERRO! "+CRLF+ ;
                  "Verifique o Remetente.                  "+CRLF+ ;
                  "Verifique o Destinatário.               "+CRLF+ ;
                  "Verifique o Nº. da Porta do Servidor.   "+CRLF+ ;
                  "Se o Provedor For gmail, a Porta a Ser  "+CRLF+ ;
                  "Usada: Use a Porta 465 Para gmail.com.  "+CRLF+ ;
                  "Verifique se o Provedor é Https.        "+CRLF+ ;
                  "Verifique a Sua Senha do Email.         "+CRLF+ ;
                  "Sua Senha Tem Que Ser Igual a Senha     "+CRLF+ ;
                  "Que Esta Cadastrada no Provedor.        "+CRLF+ ;
                  "Se Trocaram a Sua Senha no Provedor:    "+CRLF+ ;
                  "Botão:                                  "+CRLF+ ;
                  "<Configurar/Enviar Email(s)>            "+CRLF+ ;
                  "<Ferramentas> / <Provedores> / <Alterar>"+CRLF+ ;
                  "Cadastre a Senha Igual a do Provedor.   ",      ;
                  "Não Foi Possível Enviar a Mensagem...   " )
 
      ENDIF
 
      lRet := .F.
 
   END
 
RETURN( lRet )

Bom dia a todos

Este exemplo postado não esta funcionando

Caso inclua a imagem ele some com o texto do corpo do email enviando somente a imagem q. foi inserida

Alguem sabe como enviar o texto e a imagem ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...