GARANTIR DESCONTO

Fórum Mala Direta com INDY #346714

26/09/2007

0

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!


Lucas_spohr

Lucas_spohr

Responder

Posts

26/09/2007

Paulo Samurai

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


Responder

Gostei + 0

26/09/2007

Lucas_spohr

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.


Responder

Gostei + 0

26/09/2007

Lucas_spohr

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


Responder

Gostei + 0

26/09/2007

Lucas_spohr

up


Responder

Gostei + 0

26/09/2007

Paulo Samurai

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


Responder

Gostei + 0

26/09/2007

Lucas_spohr

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!


Responder

Gostei + 0

26/09/2007

Paulo Samurai

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar