Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maicon Rissi

Enviar e-mail com imagem "sem anexo"

Recommended Posts

Bom dia pessoal, tudo ok?

 

Preciso desenvolver uma mala direta por e-mail e gostaria de saber de alguém já passou por isso.

Eu já fiz o arquivo HTML, juntamente com as imagens que está sendo usada na página.

Gostaria de enviar via e-mail o conteúdo da página HTML com as imagens, porém não estou conseguindo.

O e-mail até vai, mas fica com conteúdo em branco.

 

Estou usando os componentes Indy para o envio do e-mail e estou usando a rotina:

 

IdMessage1.ContentType := 'text/html';

IdMessage1.Body.Clear;

IdMessage1.Body.LoadFromFile('c:\mensagem.htm');

TIdAttachment.Create(EmailCorpo.MessageParts, TFileName('c:\imagem1.bmp'));

EmailCorpo.MessageParts.Items[Pred(EmailCorpo.MessageParts.Count)].ExtraHeaders.Values['Content-ID']:= 'c:\imagem1.bmp';

 

No e-mail, até aparece como anexo a imagem, porém o conteúdo da página fica em branco.

Se eu não anexo a imagem, o conteúdo do HTML aparece, porém sem as imagens.

 

Alguém já passou por isso ou sabe como fazer isso?

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá quase certo :D precisa somente mudar depois que criar o TIdAttachment, particularmente faço assim:

 

var
    lAnexo: TIdAttachment;
.
.
.
.
.
lAnexo:=TIdAttachment.Create(IdMessage.MessageParts, enderecoImg);
lAnexo.Headers.Add('Content-ID: <AnexoNro0>');

E na mensagem crio a referência para a imagem fazendo:

 

mensagem:='<img src="cid:imgagemDesejada.jpg">';

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí cara, beleza?

Vi um exe seu de envio de e-mail, dahora heim?

 

Estou usando assim:

 

EMailCorpo.Body.Clear;
                  EMailCorpo.Body.Add('<html>'+
                                      '   <head>'+
                                      '      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">'+
                                      '   </head>'+
                                      '   <body>'+
                                      '      <table border="1" width="'+IntToStr(Image1.Picture.Bitmap.Width)+'" height="'+IntToStr(Image1.Picture.Bitmap.Height)+'" cellspacing="0" cellpadding="0" bordercolor="#000000">'+
                                      '         <tr>'+
                                      '            <td valign="top" background="cid:imagem1.bmp">'+
                                      '         </tr>'+
                                      '      </table>'+
                                      '   </body>'+
                                      '</html>');

                  EmailCorpo.ContentType := 'text/html';
                  iAnexo := TIdAttachment.Create(EmailCorpo.MessageParts, 'c:\imagem1.bmp');
                  iAnexo.Headers.Add('Content-ID: <AnexoNro0>');

Porém a imagem vai em anexo, mas o HTML fica como se fosse texto.

Onde estou errando?

 

Obrigado.

 

 

Tá quase certo :D precisa somente mudar depois que criar o TIdAttachment, particularmente faço assim:

 

var
    lAnexo: TIdAttachment;
.
.
.
.
.
lAnexo:=TIdAttachment.Create(IdMessage.MessageParts, enderecoImg);
lAnexo.Headers.Add('Content-ID: <AnexoNro0>');

E na mensagem crio a referência para a imagem fazendo:

 

mensagem:='<img src="cid:imgagemDesejada.jpg">';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitado o topico...

 

eu estou com um problema ao enviar email via delphi...

Criei uma rotina baseada nesse tutorial que encontrei:

 

http://imasters.com.br/artigo/1201?cn=1201&cc=49

 

mais meu email nao chega

 

Se alguem puder ajudar eu agradeço ;P

 

 

 

Veja este outro tutorial: http://forum.imasters.com.br/index.php?/topic/230298-envio-de-e-mail/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta criar o e-mail para envio em partes, algo como:

 

var
    parteTexto: TIdText;
begin
.
.
.
.
IdMessage.Headers.Values['X-Library']:='';
IdMessage.MessageParts.Clear;
IdMessage.ContentType:='text/html';
IdMessage.Recipients.EMailAddresses:='email@email.com';


parteTexto:=TIdText.Create(IDMessage.MessageParts);
parteTexto.Body.Text:=' ';
parteTexto.ContentType:='text/plain';
parteTexto:=TIdText.Create(IdMessage.MessageParts);
parteTexto.Body.Add('<html>'+
                                      '   <head>'+
                                      '      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">'+
                                      '   </head>'+
                                      '   <body>'+
                                      '      <table border="1" width="'+IntToStr(Image1.Picture.Bitmap.Width)+'" height="'+IntToStr(Image1.Picture.Bitmap.Height)+'" cellspacing="0" cellpadding="0" bordercolor="#000000">'+
                                      '         <tr>'+
                                      '            <td valign="top" background="cid:imagem1.bmp">'+
                                      '         </tr>'+
                                      '      </table>'+
                                      '   </body>'+
                                      '</html>');
parteTexto.ContentType:='text/html';

 

 

 

E aí cara, beleza?

Vi um exe seu de envio de e-mail, dahora heim?

 

Estou usando assim:

 

                  EMailCorpo.Body.Clear;
                  EMailCorpo.Body.Add('<html>'+
                                      '   <head>'+
                                      '      <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">'+
                                      '   </head>'+
                                      '   <body>'+
                                      '      <table border="1" width="'+IntToStr(Image1.Picture.Bitmap.Width)+'" height="'+IntToStr(Image1.Picture.Bitmap.Height)+'" cellspacing="0" cellpadding="0" bordercolor="#000000">'+
                                      '         <tr>'+
                                      '            <td valign="top" background="cid:imagem1.bmp">'+
                                      '         </tr>'+
                                      '      </table>'+
                                      '   </body>'+
                                      '</html>');

                  EmailCorpo.ContentType := 'text/html';
                  iAnexo := TIdAttachment.Create(EmailCorpo.MessageParts, 'c:\imagem1.bmp');
                  iAnexo.Headers.Add('Content-ID: <AnexoNro0>');

Porém a imagem vai em anexo, mas o HTML fica como se fosse texto.

Onde estou errando?

 

Obrigado.

 

 

 

Tá quase certo :D precisa somente mudar depois que criar o TIdAttachment, particularmente faço assim:

 

var
    lAnexo: TIdAttachment;
.
.
.
.
.
lAnexo:=TIdAttachment.Create(IdMessage.MessageParts, enderecoImg);
lAnexo.Headers.Add('Content-ID: <AnexoNro0>');

E na mensagem crio a referência para a imagem fazendo:

 

mensagem:='<img src="cid:imgagemDesejada.jpg">';

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou usando o seu exe,

mais esta aparecendo o seguinte:

 

Socket Error # 11004

 

quando eu tento o email

 

gostaria de saber se esse erro está relacionado com alguma configuraçao do meu email

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, eu configurei a porta e as DLL estao na mesma pasta que o EXE

 

na outra rotina que eu tinha criado estava ocorrendo o mesmo erro

 

já procurei pela net e achei algumas coisas aqui mesmo no forum

 

vou ver se resolvo logo esse problema...

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente usar um outro e-mail, outro provedor para ver se funciona.

Tente ainda ir nas configurações do seu gmail e ativar o uso de POP e outra funcionalidades, quem sabe funcione.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui aqui cara, obrigado. Uma perguntinha pra finalizar, rsrs...

No editor de texto do e-mail, fiz um mini-word, usando o RichEdit onde o usuário pode formatar cor, tamanho, negrito, etc...

É possível eu jogar o conteúdo formatado no texto do e-mail?

Eu consegui salvar em arquivo ".doc"; será possível enviar o conteúdo deste .doc para o corpo do e-mail?

Valew.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estava usando minha conta do yahoo,

 

agora migrei para o gmail e esta dando

 

Socket Error # 10061

Conection refused

 

acho que pode ser o Firewall

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.