Ir para conteúdo

POWERED BY:

Arquivado

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

cracher

[Resolvido] E-mail com delphi7

Recommended Posts

Ola a todos.

Estava fazendo um esquema para mandar e-mail para meu sistema de uma revista onde ela mandaria a capa juntamente com o corpo, no caso html.

Para enviar tudo bem todos os provedores a seguir receberam : gmail, hotmail, terra, uol, ig, ibest

Porem quando acoplei a imagem o que acontece o seguinte:

Pelo Outlook

 

Imagem Postada

 

E pelo e-mail como não pode ser visualizado, pois somente por html ele cria varios anexos inclusive uns de texto como a imagem abaixo (teste feito pelo ig)

 

Imagem Postada

 

O Imagem do form é a seguinte

 

Imagem Postada

 

E o Codigo segue abaixo :

 

procedure TForm1.Button1Click(Sender: TObject);

var imgID1, imgName1 : String;

imgID2, imgName2 : String;

newText : TIdText;

sPath : String;

newAttach : TIdAttachment;

begin

 

// Endereço e ID das Imagens

imgName1 := 'c:\mail\imagem1.jpg';

imgID1 := CreateUniqueID;

 

// Campos de e-mail a serem enviados

IdMessage.Recipients.EMailAddresses := ePara.Text;

IdMessage.CCList.EMailAddresses := eCC.Text;

IdMessage.BccList.EMailAddresses := eCCO.Text;

 

//Trata a Prioridade da mensagem

case cbxPrioridade.ItemIndex of

0 : IdMessage.Priority := mpHigh;

1 : IdMessage.Priority := mpNormal;

2 : IdMessage.Priority := mpLow;

end;

 

IdMessage.Subject := eAssunto.Text;

IdMessage.Body:= mMensagem.Lines;

 

if cbxConfirma.Checked then

IdMessage.ReceiptRecipient.Text := IdMessage.From.Text; // Auto Resposta

 

// Adiciona o HTML ao corpo da mensagem

newText := TIdText.Create(IdMessage.MessageParts,nil);

newText.ContentType := 'text/html';

newText.Body.Add('<HTML><BODY>');

newText.Body.Add(mMensagem.Lines.Text);

newText.Body.Add('<IMG SRC="cid:'+imgID1+'">'); // Troca imagens pelo ID unico

newText.Body.Add('</BODY><HTML>');

 

// Adiciona uma parte texto ao corpo

newText := TIdText.Create(IdMessage.MessageParts,nil);

newText.ContentType := 'text/plain';

newText.Body.Add('Este email só será visualizado em padrão HTML');

 

// Anexa a primeira imagem

newAttach := TIdAttachment.Create(IdMessage.MessageParts,imgName1);

newAttach.ContentType := 'image/jpeg';

newAttach.ContentDisposition := 'inline';

newAttach.ExtraHeaders.Values['Content-ID'] := '<'+imgId1+'>';

 

// Envia

IdSMTP.Connect;

 

try

IdSMTP.Send(IdMessage);

finally

IdSMTP.Disconnect;

end;

Application.MessageBox('Email enviado com sucesso!', 'Confirmação', MB_ICONINFORMATION + MB_OK);

 

Caso alguem possa me ajudar agradeço desde ja

Para contato meu e-mail é cracher@ibest.com.br

Agradeço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Melhor para fazer é hospedar a imagem no seu servidor, colocar o link da imagem em formato html no corpo do texto, assim não vai nenhum anexo, evitando este tipo de problema, pelo menos foi a forma que encontramos aqui para resolver este tipo de problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio Teria como você passar-me um exemplo e onde eu alteraria no meu codigo?Pois to jeito que você esta falando quer dizer que todo mês terei que mudar o link da imagem no caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que no fonte não precise mudar em nada, apenas terá de digitar em código html o e-mail.

Se quiser, pode ver este exemplo de envio de e-mail...

No caso se você recebe e-mail de alguma empresa de venda on-line, pode ver o código fonte dos e-mails deles, é tudo imagens hospedadas, para evitar este tipo de problema, e para também ficar mais leve o mail...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado vou dar uma olhada e fazer uns testesGratoHa ja ia esquecendo e no caso da imagem aparecer ao lado do texto como eu faria para aparecer embaixo tem alguncomando que devo usar para quebrar as linhas??? Onde eu usaria e como???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio.TheisCara nem consegui ta f*** :( Mas aconteceu algo estranho tbm, tipo pus o link da imagem no corpo do e-mail onde eu digito a mensagem ola aii coloquei o linkAi ele buscou a imagem da pasta do qual e mando buscar e escreveu ola o link da imagem e mostrou a imagem da pasta e sem anexo no e-mail

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio.Theis

Cara tava tentando fazer os testes mas aii nem consegui terminar pq agora esta dando este erro :

 

Imagem Postada

 

Sabe o que poderia ser???

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio.Theis

Cara vi seu exemplo muito fera atraves dele consegui fazer o meu aqui e graças a sua ajudar tbm

Obrigado

Mas estou com uma duvida sobre seu exemplo.

Quando abro o projeto no delphi da este erro

Imagem Postada

 

O que esta faltando???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, depende da versão do Indy que esta usando, no caso ele lhe informa que uma propriedade não existe...Teria de atualizar o Indy para a versão que informo no exemplo, ou então clicar em Ignorar....Que bom que gostou do exemplo :D

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.