Fórum Envio de e-mail com imagem (Indy) #347878
24/10/2007
0
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
Curtir tópico
+ 0Posts
26/10/2007
Lxlmaxlxl
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
26/10/2007
Massuda
Gostei + 0
26/10/2007
Lxlmaxlxl
Mas com uma imagem junto até agora eu nao axei nada!!!! :(
Se alguem puder me ajudar !!!!!
Gostei + 0
26/10/2007
Massuda
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
26/10/2007
Massuda
Gostei + 0
19/06/2008
Tremonti
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
20/06/2008
Massuda
Gostei + 0
16/07/2008
Luizito
Indy 10 com RAD Studio.
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)