Fórum Envio de e-mail com Delphi 7 com assinatura e anexos #591026
01/02/2018
0
Boa tarde,
Estaou há algum tempo juntando códigos mas esta dificil....
Preciso enviar uma mail direto de meu prog. desenvolvido em D7, em minha tela existem os campos padrões (Para, CC, CO e assunto) um Memo para o texto, um list box e OpenDialog para adicionar anexos e uma assinatura préviamente feita (em .jpg) para ser colocada no fim do e-mail escrito sem ser em anexo.
Abaixo segue meu código, gostaria de adicionar a assinatura sem precisar que a jpg/html desta fique na internet, podendo estar estar no computador local ou em uma estação de trabalho na rede da empresa.
Estaou há algum tempo juntando códigos mas esta dificil....
Preciso enviar uma mail direto de meu prog. desenvolvido em D7, em minha tela existem os campos padrões (Para, CC, CO e assunto) um Memo para o texto, um list box e OpenDialog para adicionar anexos e uma assinatura préviamente feita (em .jpg) para ser colocada no fim do e-mail escrito sem ser em anexo.
Abaixo segue meu código, gostaria de adicionar a assinatura sem precisar que a jpg/html desta fique na internet, podendo estar estar no computador local ou em uma estação de trabalho na rede da empresa.
procedure TfrmMail.btnEnviarClick(Sender: TObject);
var IdSMTP : TIdSMTP;
IdMessage : TIdMessage;
xAnexo : Integer;
NomeArq : string;
CaminhoAssinatura : string;
Anexo : TIdAttachment;
arq: TextFile; { declarando a variável "arq" do tipo arquivo texto }
begin
try
begin
IdSMTP := TIdSMTP.Create (Nil);
IdMessage := TIdMessage.Create (Nil);
{ Configura a autenticacao de usuario no servidor }
IdSMTP.AuthenticationType := atLogin;
IdSMTP.Username := UserName;
IdSMTP.Password := Password;
{ Informações básicas para uma conexão }
IdSMTP.Host :=edServidor.Text;
IdSMTP.Port := edPorta.Text;
{ Tenta conectar no servidor, aguardando no máximo um minuto }
IdSMTP.Connect (60000);
Screen.Cursor:=crHourGlass;
{ Carrega imagem de assinatura dependendo du usuario logado }
dtmDados.qrArquivosUser.Close;
dtmDados.qrArquivosUser.ParamByName('pCodUser').Value:=UserCod;
dtmDados.qrArquivosUser.Open;
CaminhoAssinatura:=dtmDados.qrArquivosUserNOME_ARQ.Value;
{ Nome e endereço de quem está enviando }
IdMessage.From.Address := AddrMail;
IdMessage.From.Name := MailNameUser;
{ Destinatários }
IdMessage.Recipients.EMailAddresses := edtMailPara.Text;
{ Destinatários em cópia }
IdMessage.CCList.EMailAddresses := edtMailCC.Text;
{ Destinatários em cópia oculta }
IdMessage.BccList.EMailAddresses := ''
{ Endereço para resposta, isto é, se um destinatário der um "reply", a resposta será enviada para este endereço }
IdMessage.ReplyTo.EMailAddresses := AddrMail;
{ Assunto da mensagem }
IdMessage.Subject := edtMailAssunto.Text;
// Teste novo mail
IdMessage.ContentType:='multipart/alternative';
IdMessage.ContentDisposition:='inline';
IdMessage.Encoding:=meMIME;
AssignFile(arq, 'C:\\temp\\Index.html');
Rewrite(arq);
Writeln(arq, '<html><body><b>'+Memo1.Lines[1]+'</b></body></html>'+#13#10+
'<html><body><b>'+Memo1.Lines[2]+'</b></body></html>'+#13#10+
'<html><body><b>'+Memo1.Lines[3]+'</b></body></html>'+#13#10+
'<html><body><b>'+Memo1.Lines[4]+'</b></body></html>'+#13#10+
'<html><body><b>'+Memo1.Lines[5]+'</b></body></html>'); { [ 8 ] Grava uma linha no arquivo }
CloseFile(arq); { [ 8 ] Fecha o arquivo texto "tabuada.txt". }
// Parte 0
WITH TIdText.Create(IdMessage.MessageParts) DO
BEGIN
//Body.Text := Memo1.Lines;
Body.Text := '';
ContentType := 'multipart/related';
ContentTransfer := '7bit';
ContentType := 'text/plain';
END;
// Parte 1 HTML
WITH TIdText.Create(IdMessage.MessageParts) DO
BEGIN
ContentType:='multipart/related';
Body.Clear;
END;
// Dentro da parte 1 em HTML
WITH TIdText.Create(IdMessage.MessageParts) DO
BEGIN
Body.Clear;
Body.LoadFromFile('C:\\temp\\Index.html');
ContentTransfer := '7bit';
ContentType := 'text/html';
// parent part nao existe no indy 9
END;
{ Anexar Assinatura }
Anexo := TIdAttachment.Create(IdMessage.MessageParts, 'C:\\Users\\FFP\\Desktop\\a.jpg');
Anexo.ContentType:='image/jpg';
Anexo.ContentDisposition:='inline';
{ Anexa Arquivos que foram carregado no LtbAnexos }
for xAnexo := 0 to LtbAnexos.Items.Count-1 do
BEGIN
NomeArq:=LtbAnexos.Items.Strings[xAnexo];
TIdAttachment.Create(IdMessage.MessageParts, TFileName(LtbAnexos.Items.Strings[xAnexo]));
END;
{ Envia o e-mail }
IdSMTP.Send (IdMessage);
Application.MessageBox('E-mail enviado com Sucesso', 'Aviso', MB_OK);
end;
except
on e:exception do
begin
ShowMessage(e.message);
end;
end;
{ Desconecta }
IdSMTP.Disconnect ();
FreeAndNil (IdMessage);
FreeAndNil (IdSMTP);
Close;
end;
Fabricio Pereira
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)