Mala Direta com INDY
Olá!
Chegou uma nova solicitação de um cliente, agora, pedindo que no projeto seje acrescentado uma opção de Selecionar um modelo HTML, e este, mandar para vários e-mails ao mesmo tempo...
Vi na revista ClubeDelphi, um artigo que fala sobre Mala Direta Delphi com Outlook, mas a minha aplicação foi feita em INDY.
Como que eu poderia fazer isto? Ou melhor... em Indy, é possível?
Desde já agradeço. Obrigado!
Chegou uma nova solicitação de um cliente, agora, pedindo que no projeto seje acrescentado uma opção de Selecionar um modelo HTML, e este, mandar para vários e-mails ao mesmo tempo...
Vi na revista ClubeDelphi, um artigo que fala sobre Mala Direta Delphi com Outlook, mas a minha aplicação foi feita em INDY.
Como que eu poderia fazer isto? Ou melhor... em Indy, é possível?
Desde já agradeço. Obrigado!
Lucas_spohr
Curtidas 0
Respostas
Paulo Samurai
26/09/2007
Lucas, é um projeto grandinho, mas certamente pode ser feito com indy. :wink:
Basicamente voce vai criar uma tabela para salvar os modelos em html (synedit para o código html e um botão preview no browser ;)). As imagens idealmente serão todas linkadas, nada de anexos.
A seguir, voce desenvolverá uma aplicação que irá gerar uma lista de emails a enviar... até aqui não tem nada relacionado ao envio propriamente dito.
No final, basta voce iterar essa lista e enviar um a um os emails através dos componentes da indy. O código para envio pode ser pesquisado aqui mesmo no forum ou em diversas paginas na internet que falam sobre o componente idStmp.
Espero ter ajudado ;)
[]´s
Basicamente voce vai criar uma tabela para salvar os modelos em html (synedit para o código html e um botão preview no browser ;)). As imagens idealmente serão todas linkadas, nada de anexos.
A seguir, voce desenvolverá uma aplicação que irá gerar uma lista de emails a enviar... até aqui não tem nada relacionado ao envio propriamente dito.
No final, basta voce iterar essa lista e enviar um a um os emails através dos componentes da indy. O código para envio pode ser pesquisado aqui mesmo no forum ou em diversas paginas na internet que falam sobre o componente idStmp.
Espero ter ajudado ;)
[]´s
GOSTEI 0
Lucas_spohr
26/09/2007
Olá amigo!
Primeiramente, agradeço a idéia... É uma boa mesmo!
basicamente, eu pensei no seguinte... Este é o meu código:
----------------------------------------------------
// Adiciona o TEXTO ao corpo da mensagem
newText := TIdText.Create(IdMessage.MessageParts);
newText.ContentType := ´text/html´;
newText.Body.Add(´<HTML>´);
newText.Body.Add(´<BODY>´);
if OpenPictureDialog1.FileName <> ´´ then
newText.Body.Add(´´)
// Se não quizer anexar imagem, mas anexar um HTML
// Para envio de Mala Direta, então...
else
newText.Body.LoadFromFile(OpenDialog2.FileName);
for i := 0 to RichEdit1.Lines.Count-1 do
begin
newText.Body.Add(RichEdit1.Lines.Strings[i]+´
´);
end;
newText.Body.Add(´´);
newText.Body.Add(´</BODY>´);
newText.Body.Add(´</HTML>´);
----------------------------------------------------
Daí, o cliente vai clicar no ´Selecionar Modelo´, escolherá o HTML para a Mala Direta, e pronto... Ao enviar, aparecerá o modelo HTML no corpo da mensagem! Isso eu consegui fazer, só que na visualização, a imagem não aparece!
Tem idéia do que pode ser?
Grato.
Primeiramente, agradeço a idéia... É uma boa mesmo!
basicamente, eu pensei no seguinte... Este é o meu código:
----------------------------------------------------
// Adiciona o TEXTO ao corpo da mensagem
newText := TIdText.Create(IdMessage.MessageParts);
newText.ContentType := ´text/html´;
newText.Body.Add(´<HTML>´);
newText.Body.Add(´<BODY>´);
if OpenPictureDialog1.FileName <> ´´ then
newText.Body.Add(´´)
// Se não quizer anexar imagem, mas anexar um HTML
// Para envio de Mala Direta, então...
else
newText.Body.LoadFromFile(OpenDialog2.FileName);
for i := 0 to RichEdit1.Lines.Count-1 do
begin
newText.Body.Add(RichEdit1.Lines.Strings[i]+´
´);
end;
newText.Body.Add(´´);
newText.Body.Add(´</BODY>´);
newText.Body.Add(´</HTML>´);
----------------------------------------------------
Daí, o cliente vai clicar no ´Selecionar Modelo´, escolherá o HTML para a Mala Direta, e pronto... Ao enviar, aparecerá o modelo HTML no corpo da mensagem! Isso eu consegui fazer, só que na visualização, a imagem não aparece!
Tem idéia do que pode ser?
Grato.
GOSTEI 0
Lucas_spohr
26/09/2007
(AFFF, ODEIO ISSO...) esqueci de ´desativar html´, hehe
é este:
----------------------------------------------------
// Adiciona o TEXTO ao corpo da mensagem
newText := TIdText.Create(IdMessage.MessageParts);
newText.ContentType := ´text/html´;
newText.Body.Add(´<HTML>´);
newText.Body.Add(´<BODY>´);
if OpenPictureDialog1.FileName <> ´´ then
newText.Body.Add(´<IMG SRC=´cid:´+ ExtractFileName(OpenPictureDialog1.FileName) +´´>´)
// Se não quizer anexar imagem, mas anexar um HTML
// Para envio de Mala Direta, então...
else
newText.Body.LoadFromFile(OpenDialog2.FileName);
for i := 0 to RichEdit1.Lines.Count-1 do
begin
newText.Body.Add(RichEdit1.Lines.Strings[i]+´<BR>´);
end;
newText.Body.Add(´</P>´);
newText.Body.Add(´</BODY>´);
newText.Body.Add(´</HTML>´);
----------------------------------------------------
Daí, o cliente vai clicar no ´Selecionar Modelo´, escolherá o HTML para a Mala Direta, e pronto... Ao enviar, aparecerá o modelo HTML no corpo da mensagem! Isso eu consegui fazer, só que na visualização, a imagem não aparece!
Tem idéia do que pode ser?
Grato.
é este:
----------------------------------------------------
// Adiciona o TEXTO ao corpo da mensagem
newText := TIdText.Create(IdMessage.MessageParts);
newText.ContentType := ´text/html´;
newText.Body.Add(´<HTML>´);
newText.Body.Add(´<BODY>´);
if OpenPictureDialog1.FileName <> ´´ then
newText.Body.Add(´<IMG SRC=´cid:´+ ExtractFileName(OpenPictureDialog1.FileName) +´´>´)
// Se não quizer anexar imagem, mas anexar um HTML
// Para envio de Mala Direta, então...
else
newText.Body.LoadFromFile(OpenDialog2.FileName);
for i := 0 to RichEdit1.Lines.Count-1 do
begin
newText.Body.Add(RichEdit1.Lines.Strings[i]+´<BR>´);
end;
newText.Body.Add(´</P>´);
newText.Body.Add(´</BODY>´);
newText.Body.Add(´</HTML>´);
----------------------------------------------------
Daí, o cliente vai clicar no ´Selecionar Modelo´, escolherá o HTML para a Mala Direta, e pronto... Ao enviar, aparecerá o modelo HTML no corpo da mensagem! Isso eu consegui fazer, só que na visualização, a imagem não aparece!
Tem idéia do que pode ser?
Grato.
GOSTEI 0
Lucas_spohr
26/09/2007
up
GOSTEI 0
Paulo Samurai
26/09/2007
Olá amigo, eu recomendo que estude um pouco a fundo essa parte da smtp, tem muito material já postado aqui no forum e em outros sobre isso ;)
A imagem com ´cid:´ é um anexo que tem de ser enviado junto... para efeito de mala direta eu particularmente preferiria usar um link http mesmo :) (até para não judiar do cliente que vai receber o spam e da propria maquina que vai enviar :D, imagine 10000 mensagens de mala direta com 120K de imagem em anexo o tempo que não vai levar pra sair esse spam da máquina)
Alem disso, para ´preview no browser´ o html a ser enviado não pode usar o ´protocolo cid´, e sim um protocolo ´file´...
A imagem com ´cid:´ é um anexo que tem de ser enviado junto... para efeito de mala direta eu particularmente preferiria usar um link http mesmo :) (até para não judiar do cliente que vai receber o spam e da propria maquina que vai enviar :D, imagine 10000 mensagens de mala direta com 120K de imagem em anexo o tempo que não vai levar pra sair esse spam da máquina)
Alem disso, para ´preview no browser´ o html a ser enviado não pode usar o ´protocolo cid´, e sim um protocolo ´file´...
GOSTEI 0
Lucas_spohr
26/09/2007
hmm... vou ver...
mas vc tem idéia de alguma outra maneira de que eu poderia fazer essa Mala Direta?
É claro, usando indy, mas sem ser arquivo html... poderia ser um *.doc, etc, etc...
Obrigado!
mas vc tem idéia de alguma outra maneira de que eu poderia fazer essa Mala Direta?
É claro, usando indy, mas sem ser arquivo html... poderia ser um *.doc, etc, etc...
Obrigado!
GOSTEI 0
Paulo Samurai
26/09/2007
Se não for html, só mandar em anexo... mas a melhor maneira IMHO é com HTML, pois menor o tamanho do arquivo enviado... (mais fácil de passar pelos anti-spam´s) e mais rapido de enviar também.
[]´s
[]´s
GOSTEI 0