Envio de e-mail com imagem (Indy)
Ola galera sou novo aqui no devmedia
Estou criando um programa para enviar e-mails usando o D7 e os componentes indy 9
Eu preciso colocar no corpo da mensagem uma imagem bmp ou jpg tanto faz.
Eu uso o Rxrichedit para criar a mensagem mas na hora que eu envio o e-mail ela nao aparece na hora da visualizacão no outlok ou hotmail
meu codigo para enviar o e-mail esta desse jeito:
no botao onde eu insiro a imagem no Rxrichedit esta assim:
Se alguem puder me ajudar!! :wink:
Estou criando um programa para enviar e-mails usando o D7 e os componentes indy 9
Eu preciso colocar no corpo da mensagem uma imagem bmp ou jpg tanto faz.
Eu uso o Rxrichedit para criar a mensagem mas na hora que eu envio o e-mail ela nao aparece na hora da visualizacão no outlok ou hotmail
meu codigo para enviar o e-mail esta desse jeito:
begin AntiCongelamento:=TIdAntiFreeze.Create(nil); try AntiCongelamento.OnlyWhenIdle:=false; AntiCongelamento.ApplicationHasPriority:=true; AntiCongelamento.Active:=True; Result := True; try ClienteSMTP:=TIdSMTP.Create(nil); try with ClienteSMTP do begin host := ED_SERVIDOR_SMTP.Text; username := ED_USUARIO_EMAIL.Text; Password := ED_SENHA_EMAIL.Text; // AuthenticationType := atLogin; try Connect; Authenticate; except // Servidor não encontrado ou // nome de usuário ou senha inválidos!!! Result := False; raise; end; // Conectado e autenticado Mensagem:=TIdMessage.Create(nil); try with Mensagem do begin Encoding := meMIME; AttachmentEncoding := ´MIME´; From.Address := ED_EMAIL_REMETENTE.Text; From.Name := ED_NOME_REMETENTE.Text; // Adiciona os emails do campo Para //if (Length(destinatario) > 0)then //for i:=0 to High(destinatario) do Recipients.Add.Address := FDataModule.CAUX.FieldByName(´EMAIL´).AsString; // Adiciona os emails do campo Com Cópia // if (Length(destinatarios_CC) > 0)then // for i:=0 to High(destinatarios_cc) do // CCList.Add.Address := destinatarios_cc[i]; // Adiciona os emails do campo Com Cópia e Oculto // if (Length(destinatarios_CCO) > 0)then // for i:=0 to High(destinatarios_cco) do // BccList.Add.Address := destinatarios_cco[i]; Subject := ED_ASSUNTO.Text; Body.Text := MM_TEXTO.Text; Priority := mpNormal; // Insere os arquivos anexos na mensagem // if (Length(arquivo_anexo) > 0) then // for i:=0 to High(arquivos_anexos) do for i := 0 to LB_ANEXOS.Items.Count - 1 do begin if FileExists(LB_ANEXOS.Items.strings[i])then TIdAttachmentFile.Create(Mensagem.MessageParts,LB_ANEXOS.Items.strings[i]); end; end; // Envia a mensagem try Send(Mensagem); except // Erro ao enviar a mensagem // Possiveis erros: // * Mensagem acima do tamanho permitido pelo servidor // * Mensagem possui conteúdo proibido pelo servidor Result := False; raise; end; finally Mensagem.Free; end; // Desconecta do servidor Disconnect; end; finally ClienteSMTP.Free; end; except end; finally AntiCongelamento.Free; end; end;
no botao onde eu insiro a imagem no Rxrichedit esta assim:
procedure TFEnviaEmail.SpeedButton3Click(Sender: TObject); var Pict: TPicture; begin with OpenPictureDialog1 do begin if Execute then begin Pict := TPicture.Create; try Pict.LoadFromFile(FileName); Clipboard.Assign(Pict); MM_TEXTO.PasteFromClipboard; finally Pict.Free; end; end; end; end;
Se alguem puder me ajudar!! :wink:
Lxlmaxlxl
Curtidas 0
Respostas
Lxlmaxlxl
24/10/2007
Por favor se alguem poder me ajudar !!!!
jah eh a segunda vez que eu posto aki e ninguem me ajuda :cry:
estou precisando muito disso eu soh preciso conseguir enviar uma imagem por email usando o delphi 7
no program eu vejo imagem mas quando eu envio ela nao aparece no email
desde jah agradeço ...
jah eh a segunda vez que eu posto aki e ninguem me ajuda :cry:
estou precisando muito disso eu soh preciso conseguir enviar uma imagem por email usando o delphi 7
no program eu vejo imagem mas quando eu envio ela nao aparece no email
desde jah agradeço ...
GOSTEI 0
Massuda
24/10/2007
Pesquise aqui o fórum por IdSMTP... você deve encontrar vários tópicos sobre esse assunto.
GOSTEI 0
Lxlmaxlxl
24/10/2007
Eu já pesquisei cara mas nenhum explica como enviar a imagem por e-mail, todos falam de como enviar o e-mail.
Mas com uma imagem junto até agora eu nao axei nada!!!! :(
Se alguem puder me ajudar !!!!!
Mas com uma imagem junto até agora eu nao axei nada!!!! :(
Se alguem puder me ajudar !!!!!
GOSTEI 0
Massuda
24/10/2007
Normalmente a imagem vai como anexo em um email formatado usando HTML. Eis um exemplo básico...Além disso, se você estiver usando o Indy 9 que veio com o Delphi, é recomendável atualizar seu Indy. Baixe o Indy 9.0.18 :arrow: [url=http://www.indyproject.org/Sockets/Download/Files/Indy9.en.aspx]desta página[/url]; essa é a última versão oficial; existe outra ´não-oficial´, mais recente, que você pode obter via CVS ou de um dos sites de snapshot do Indy. Instruções para instalação, você encontra no meio :arrow: [url=http://forum.devmedia.com.br/viewtopic.php?t=57069]deste tópico[/url]. Não recomendo usar Indy 10.
var lMessage: TIdMessage; lTextPart: TIdText; lImagePart: TIdAttachment; begin // ... some code here to initialize your SMTP server. // It could be done somewhere as well lMessage := TIdMessage.Create(Self); lMessage.From.Address := ´myemail@mydomain.com´; lMessage.Subject := ´My test email´; lMessage.Recipients.Add.Address := ´someoneemail@somedomain.com´; lMessage.Body.Clear; lTextPart := TIdText.Create(lMessage.MessageParts); // costuma-se por aqui uma versão texto (não-HTML) do // texto HTML que você pretende enviar lTextPart.Body.Text := ´This is a plain text message´; lTextPart.ContentType := ´text/plain´; lTextPart := TIdText.Create(lMessage.MessageParts); // aqui vai o seu HTML lTextPart.Body.Text := ´<html><body>´ + ´<b>This is a HTML message with picture</b>´ + // troque seus c:\suaimagem.jpg por um nome "simbólico" ´<img src="htmlbodyIMG0000.JPG" >´ + ´</body></html>´; lTextPart.ContentType := ´text/html´; lImagePart := TIdAttachment.Create(lMessage.MessageParts, // aqui vai o nome de arquivo de sua imagem... ´c:\suaimagem..JPG´); lImagePart.ContentType := ´image/jpg´; // ...e isso associa sua imagem com o símbolo que usou no HTML lImagePart.Headers.Add(´Content-ID: <htmlbodyIMG0000.JPG>´); // ... A code to send a message end;
GOSTEI 0
Massuda
24/10/2007
Outra coisa...
Eu uso o Rxrichedit para criar a mensagem...
Isso significa que você está formatando a mensagem no formato RTF. Nem todo programa de email suporta esse formato, melhor seria usar HTML. Infelizmente, não sei como fazer para converter de RTF para HTML.GOSTEI 0
Tremonti
24/10/2007
Massuda,
Usei exatamente o código acima.
Porém a imagem não aparece no corpo do e-mail.
Ela vai em anexo somente.
Obrigado...
Segue código completo:
Usei exatamente o código acima.
Porém a imagem não aparece no corpo do e-mail.
Ela vai em anexo somente.
Obrigado...
Segue código completo:
var lMessage : TIdMessage; lTextPart : TIdText; lImagePart : TIdAttachment; begin lMessage := TIdMessage.Create(Self); lMessage.From.Address := ´t e s t e @diskbiju.com.br´; lMessage.Subject := ´Feliz Aniversário´; lMessage.Recipients.Add.Address := ´t e s t e @yahoo.com.br´; lMessage.Body.Clear; lTextPart := TIdText.Create(lMessage.MessageParts); // costuma-se por aqui uma versão texto (não-HTML) do // texto HTML que você pretende enviar lTextPart.Body.Text := ´This is a plain text message´; lTextPart.ContentType := ´text/plain´; lTextPart := TIdText.Create(lMessage.MessageParts); // aqui vai o seu HTML lTextPart.Body.Text := ´<html><body>´ + // troque seus c:\suaimagem.jpg por um nome "simbólico" ´<img src="fernando.jpg" >´ + ´</body></html>´; lTextPart.ContentType := ´text/html´; lImagePart := TIdAttachment.Create(lMessage.MessageParts, // aqui vai o nome de arquivo de sua imagem... ´c:\Aniver.JPG´); lImagePart.ContentType := ´image/jpg´; // ...e isso associa sua imagem com o símbolo que usou no HTML lImagePart.Headers.Add(´Content-ID: <fernando.jpg>´); try if idSMTP1.Connected then idSMTP1.Disconnect; idSMTP1.Connect(); idSMTP1.Send(lMessage); if idSMTP1.Connected then idSMTP1.Disconnect; except on E:Exception do MessageDlg(´ERROR: ´ + E.Message, mtWarning, [mbok],0); end; ShowMessage( ´OK!´ );
GOSTEI 0
Massuda
24/10/2007
:arrow: http://forum.devmedia.com.br/viewtopic.php?t=81650
GOSTEI 0
Luizito
24/10/2007
Da uma olhada em : http://www.usercontrol.net/content/view/15/18/
Indy 10 com RAD Studio.
Abraço.
Indy 10 com RAD Studio.
Abraço.
GOSTEI 0